如果設定較小的尺寸,下面的代碼會完美地改變界限。但是當設定更大的尺寸時,它將不起作用。不能放大 PDFPage 的大小嗎?
什么有效:
let page = PDFPage()
let rectBefore = page.bounds(for: .cropBox)
print("rectBefore \(rectBefore)")
page.setBounds(CGRect(x: 0, y: 0, width: 500, height: 500), for: .cropBox)
let rectAfter = page.bounds(for: .cropBox)
print("rectAfter \(rectAfter)")
// prints:
// rectBefore (0.0, 0.0, 612.0, 792.0)
// rectAfter (0.0, 0.0, 500.0, 500.0) -> Works as expected
什么不起作用:
let page = PDFPage()
let rectBefore = page.bounds(for: .cropBox)
print("rectBefore \(rectBefore)")
page.setBounds(CGRect(x: 0, y: 0, width: 1000, height: 1000), for: .cropBox)
let rectAfter = page.bounds(for: .cropBox)
print("rectAfter \(rectAfter)")
// prints:
// rectBefore (0.0, 0.0, 612.0, 792.0)
// rectAfter (0.0, 0.0, 612.0, 792.0) -> Didn't change
uj5u.com熱心網友回復:
PDFPage()給你一個默認8.5" x 11.0"頁面。
您不能使.cropBox(或任何PDFDisplayBox)大于頁面本身。
如果您想創建不同大小的頁面,您可能希望使用UIGraphicsPDFRenderer來創建資料,然后PDFDocument(data: theData)生成具有所需頁面大小的 PDF 檔案。
例如:
let pdfMetaData = [
kCGPDFContextCreator: "Test Creator",
kCGPDFContextAuthor: "Test Author"
]
let format = UIGraphicsPDFRendererFormat()
format.documentInfo = pdfMetaData as [String: Any]
// 1000 x 1000 point-size page
let pageWidth = 1000
let pageHeight = 1000
let pageRect = CGRect(x: 0, y: 0, width: pageWidth, height: pageHeight)
let renderer = UIGraphicsPDFRenderer(bounds: pageRect, format: format)
let pData = renderer.pdfData { (context) in
context.beginPage()
let attributes = [
NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 40)
]
let text = "1,000 x 1,000 (approx 13.8\" x 13.8\") pdf page"
text.draw(at: CGPoint(x: 0, y: 0), withAttributes: attributes)
}
if let pdd = PDFDocument(data: pData),
let pdfPage = pdd.page(at: 0)
{
print(pdfPage.bounds(for: .cropBox))
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/522863.html
