2

这是我第一次在这个论坛上提问。对不起,如果我的英语不对,这不是我的母语。通常我总是在这个论坛或谷歌搜索上找到我的答案。但这一次,我没有找到。

这是我的问题(Mac OS X Lion):

我的PDF很少。为了进行测试,我使用“预览”旋转一些页面和/或使用 PDFKit([PDFPage setRotation:90])以编程方式旋转 PDF 的一些页面。我保存了这个新的 PDF。输出是带有一些旋转页面的 PDF。我以预览或其他方式重新打开,以确保一切正常。这很好,显示是正确的。到目前为止,一切都很好。

现在,我打开这个新创建的 PDF,并尝试获取 PDF 页面的旋转值(逐页)。我尝试使用 PDFKIT 方法 [PDFPage rotation] 或使用 CGPDF ... (CGPDFPageGetRotationAngle) 的 Quartz 方法,页面旋转的值总是 0。NSLog(@"值 :%d", 角度)

如何使用 PDFKIT 方法重现,只需使用 Apple 的“PDF Annotation Editor”代码。以横向和纵向打开带有某些页面的 PDF。显示将如预期的那样。但现在尝试在'rotation = [page rotation];'行读取值旋转 在 transformContextForPage:(PDFPage*)page 方法中,我总是得到 0。当预期值应该是 0 或 90 时,取决于页面。尝试将 Quartz 方法与 CGPDFPageGetRotationAngle 一起使用时出现同样的问题。

我错过了什么吗?这是一个错误吗?还是我对 PDF 页面旋转的理解是错误的?

谢谢

4

1 回答 1

1

在 PDF 中,您可以通过 2 种方式创建旋转页面:将页面大小设置为 8.5*11 英寸并将旋转页面属性设置为 90,或者简单地将页面大小设置为 11*8.5 英寸。视觉上没有区别。
Preview 的问题(我假设它背后还有 PDFKit)是当您将旋转设置为 90 时,它不会简单地将 Rotate 属性设置为 90,而是会切换页面宽度和高度并对页面内容应用转换流,以便页面内容显示为旋转。因为 [PDFPage rotation] 和 CGPDFPageGetRotationAngle 返回 Rotate 属性的值,所以在使用 Preview 和 PDFKit 旋转的页面上它们将始终返回 0。

于 2012-01-26T09:04:26.820 回答