1

我正在尝试将一些 HTML 转换为 PDF 文档以保存在我的后端。但是,我无法设置打印渲染器的纸张大小。即使我更改了“paperRect”,纸张尺寸也始终保持为 A4 - 我需要纸张尺寸为 A6。有任何想法吗?

let pageFrame = CGRect(x: 0.0, y: 0.0, width: 595.2, height: 600)

// Set the page frame.
self.setValue(NSValue(cgRect: pageFrame), forKey: "paperRect")
4

2 回答 2

0

Try to use UIGraphicsPDFRenderer instead of UIPrintPageRenderer. You can make pages with custom sizes, using the function beginPage(withBounds:pageInfo:)

let pdf = renderer.pdfData { (context) in
    context.beginPage(withBounds: CGRect(x: 0.0, y: 0.0, width: 595.2, height: 600), pageInfo: [:])

    drawYourHTML(on: context) // Implement this function like what you want

}
于 2018-02-09T09:48:36.200 回答
0

你通过设置正确地做到了paperRect。但是,您可能已经调用了UIGraphicsBeginPDFPage()配置每个页面的默认值,即使用 A4 纸张大小等默认值。尝试UIGraphicsBeginPDFPageWithInfo(paperRect, nil)改用,因为您已经获得了paperRect.

参考:https ://developer.apple.com/documentation/uikit/1623915-uigraphicsbeginpdfpagewithinfo

于 2020-07-18T07:08:49.170 回答