【发布时间】:2018-05-16 06:57:00
【问题描述】:
我想从 UIScrollView 的内容创建一个 PDF 文件。
func createPdfFromView(aView: UIView, saveToDocumentsWithFileName fileName: String) {
let pdfData = NSMutableData()
let height = 1754.0
let width = 1240.0
UIGraphicsBeginPDFContextToData(pdfData, CGRect(x:-30, y:15,width:width,height:height) , nil)
UIGraphicsBeginPDFPage()
guard let pdfContext = UIGraphicsGetCurrentContext() else { return }
aView.layer.render(in: pdfContext)
UIGraphicsEndPDFContext()
if let documentDirectories = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first {
let documentsFileName = documentDirectories + "/" + fileName
debugPrint(documentsFileName)
pdfData.write(toFile: documentsFileName, atomically: true)
}
}
我希望代码会根据滚动视图中内容的大小生成 PDF。
该代码目前仅生成静态 PDF。如果滚动视图中的内容大于 PDF 页面,则内容被截断。
【问题讨论】:
-
UIScrollView中的内容(实际上是 any 滚动视图)仅在操作系统认为有必要时才会呈现(想象一个有 1,000 行的表格视图)。因此,简单地告诉一个图层进行渲染并不能达到您的期望。已经有很多很多示例了-我建议搜索swift pdf from uiscrollview,看看是否找不到适合您的东西需要(或为您指明正确的方向)。 -
你通过哪种观点?你能告诉我们通话地点吗?你传递的是滚动视图还是滚动视图的 contentView?
-
@HAS 是的,它是由 Spreadsheet 框架生成的电子表格。函数调用:
createPdfFromView(aView: spreadsheetView, saveToDocumentsWithFileName: "Spread.pdf") -
我还想从完整的电子表格视图中获取 PDF。如果您对此有解决方案,请帮助我
-
@JonasDeichelmann 我可以使用这个 Cocoapods 框架来实现这一点。在我的情况下,我想从 Spreadsheet 制作一个 PDF,以便这个框架帮助我添加具有不同列大小的表格和更多我想要的功能 cocoapods.org/pods/SimplePDF
标签: ios swift pdf uiscrollview scrollview