【发布时间】:2017-06-13 09:17:21
【问题描述】:
我有一个很长的NSAttributedString,我正在尝试将其绘制为 PDF,使用 draw func 制作单页 PDF 非常简单:
func createPDFFilea(atext: NSAttributedString) -> NSMutableData {
let pdfData = NSMutableData()
let paperRect = CGRect(x: 0, y: 0, width: 595.2, height: 841.8);
UIGraphicsBeginPDFContextToData(pdfData, paperRect, nil)
UIGraphicsBeginPDFPage()
atext.draw(in: paperRect)
UIGraphicsEndPDFContext()
return pdfData
}
但是如果文本超过paperRect就会丢失,如何管理呢?
PS。这里有一个类似的解决方案,带有一个简单的 NSString 用于 obj-C
http://www.coderzheaven.com/2016/09/07/create-pdf-in-ios/
但我不知道在 Swift 中得到它,而且官方的苹果文档似乎也只适用于 obj-C
https://developer.apple.com/library/content/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/GeneratingPDF/GeneratingPDF.html
【问题讨论】:
-
我最近不得不做同样的事情 - 我有一个多节表格要打印,它可能分成多个页面。我的解决方案是一次向 UIWebView 添加一行,并使用“webViewDidFinishLoad”检查页面大小——一旦超过页面,我使用以前的 html 文本,并创建一个新的 UIWebView。完成所有网页后,创建多页 PDF 是一项简单的任务