首页 > 解决方案 > 从 PDFDocument iOS 获取页面大小

问题描述

我在获取 PDFDocument 中的页面大小时遇到​​问题。以下代码获取大小(宽度和高度),但结果不一致。它甚至可以在被测试的同一个 PDFDocument 中从页面到页面不一致。一个具体的例子是我有一个由 11"x17" 页面(矩形,横向)组成的 pdf 文档。有时,下面的代码给了我正确的尺寸,但宽度和高度是向后的,有时它会给宽度和高度相同的尺寸,从而形成一个正方形。有没有更好的方法从 PDFDocument 中获取页面的宽度和高度。最终,我正在从 PDFDocument 创建页面的 UIImage。那里的任何建议也会有所帮助。请帮忙。

let page = pdfDocument?.page(at: pageIndex)
let pageRect = page?.bounds(for: .artBox)
let dpi: CGFloat = 300.00 / 72.0
let renderer = UIGraphicsImageRenderer(size: CGSize(width: (pageRect?.size.width)! * dpi, height: (pageRect?.size.height)! * dpi))
print("dpi =", dpi)
print("renderer width and height =", (pageRect?.size.width)! * dpi, "renderer height =", (pageRect?.size.height)! * dpi)

标签: iosswiftpdfviewcgpdfdocument

解决方案


mediaBox 给出页面的大小,而 artBox 给出页面上绘图的大小。以下代码将为您提供 PDFDocument 页面的大小/尺寸。

let page = pdfDocument?.page(at: pageIndex)
let pageRect = page?.bounds(for: .mediaBox)

print("pdf page width =", (pageRect?.size.width)!, "pdf page height =", (pageRect?.size.height)!)

推荐阅读