ios - 从 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)
解决方案
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)!)
推荐阅读
- java - 通过注释类创建带有限定符的@MockBean?
- javascript - TypeScript 中是否有任何已定义的 HashTable 类,如 C#
- r - stats4::mle 的正确使用
- django - 哪些查询集可以帮助我根据两个选择字段生成结果?
- ionic3 - 无法在函数中设置未定义离子的属性
- angular - 类的公共方法在 TypeScript/Angular 中不可见
- azure-devops - 如何在 VSTS / Azure Devops 仪表板中显示 PowerApp?
- c++ - 类型扣除时间
- node.js - NodeJS 流不等待异步
- mime-types - .tex 文件的正确 mimetype 是什么?