gpt4 book ai didi

ios - 无法在 Swift 中生成多页 PDF

转载 作者:搜寻专家 更新时间:2023-10-31 22:12:19 25 4
gpt4 key购买 nike

我有一个包含静态和动态数据的 html 文件,我需要从该 html 文件生成一个 PDF 文件。我能够创建 PDF 文件,但它只打印第一页。我需要一个三页的 PDF 文件。我使用了以下两个函数来绘制和保存 PDF 文件。我的代码是:

func exportHTMLContentToPDF(HTMLContent: String) {

let printFormatter = UIMarkupTextPrintFormatter(markupText: HTMLContent)

let printPageRenderer = CustomPrintPageRenderer()

printPageRenderer.addPrintFormatter(printFormatter, startingAtPageAt: 0)

let pdfData = drawPDFUsingPrintPageRenderer(printPageRenderer: printPageRenderer)

pdfFilename = "\(AppDelegate.getAppDelegate().getDocDir())/FinalPdf.pdf"

pdfData?.write(toFile: pdfFilename, atomically: true)

print(pdfFilename)

}

func drawPDFUsingPrintPageRenderer(printPageRenderer: UIPrintPageRenderer) -> NSData! {

let data = NSMutableData()

UIGraphicsBeginPDFContextToData(data, CGRect.zero, nil)

UIGraphicsBeginPDFPage()

printPageRenderer.drawPage(at: 0, in: UIGraphicsGetPDFContextBounds())

UIGraphicsEndPDFContext()

return data

}

为此,我遵循了 app coda 教程。对于多个页面,它表示将 PDF 页面创建的开始和打印页面渲染器绘制到一个循环中。请帮助我创建多页 PDF。

最佳答案

使用下面的代码代替您当前的 drawPDFUsingPrintPageRenderer 函数:

func drawPDFUsingPrintPageRenderer(printPageRenderer: UIPrintPageRenderer) -> NSData! {
let data = NSMutableData()

UIGraphicsBeginPDFContextToData(data, CGRect.zero, nil)
printPageRenderer.prepare(forDrawingPages: NSMakeRange(0, printPageRenderer.numberOfPages))

let bounds = UIGraphicsGetPDFContextBounds()

for i in 0...(printPageRenderer.numberOfPages - 1) {
UIGraphicsBeginPDFPage()
printPageRenderer.drawPage(at: i, in: bounds)
}

UIGraphicsEndPDFContext();
return data
}

中提琴,多页。

关于ios - 无法在 Swift 中生成多页 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41748657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com