我正在使用viewPrintFormatter()
from aWKWebView
打印一些 HTML。
我有一个CustomPrintPageRenderer
which 是一个子类,UIPrintPageRenderer
它设置它的paperRect
和printableRect
到595.2
x841.8
和footer
50。
我调用此代码从以下代码生成 PDF WKWebView
:
private func createPDF(_ formatter: UIViewPrintFormatter) {
// Our custom print renderer sets it's size and footer automatically
let render = CustomPrintPageRenderer.init()
render.addPrintFormatter(formatter, startingAtPageAt: 0)
// Create PDF context and draw
let pdfData = NSMutableData()
let rect = CGRect.init(x: 0, y: 0, width: 595.2, height: 841.8)
UIGraphicsBeginPDFContextToData(pdfData, rect, nil)
for i in 0..<render.numberOfPages {
UIGraphicsBeginPDFPage();
render.drawPage(at: i, in: UIGraphicsGetPDFContextBounds())
}
UIGraphicsEndPDFContext();
self.completion?(.success(pdfData as Data))
}
这一切在模拟器上运行得很好iPhone
,但是当我在模拟器上使用它时iPad
(具体来说,我正在测试 iPad Pro 11 英寸第二代),生成的 PDF 会爬到第二页。
将页面底部的 1 行文本移至第 2 页。
当 WKWebView 实际上没有使用任何框架因为它没有显示在屏幕上时,为什么这在 iPad 和 iPhone 上会有所不同。似乎 iPad 可能在其计算中忽略了页脚。
我能做些什么来解决这种行为?
会不会是苹果的bug?