【发布时间】:2013-07-26 13:52:19
【问题描述】:
我遇到了这个问题:
PDF rendering using CGContextDrawPDFPage : cannot find CropBox
但这个问题实际上并没有得到回答。
回顾:我无法显示一个特定的 pdf 文件,裁剪标记可见,但在其他阅读器的 Safari 上不可见。我尝试在渲染中使用kCGPDFCropBox 而不是kCGPDFMediaBox,但生成的矩形具有相同的值。与kCGPDFTrimBox 的结果相同,例如:
CGRect pageRect = CGPDFPageGetBoxRect(pdfPage, kCGPDFMediaBox);
更新:
origin=(x=0, y=0) size=(width=595, height=842)
对于 pageRect 和 kCGPDFMediaBox 和
origin=(x=42.9783, y=61.4606) size=(width=511.299, height=719.97)
对于带有kCGPDFCropBox的pageRect
使用第二个,页面被裁剪,但不是我想要的(留下打印和裁剪标记以及剪切内容)。其他查看器仍然可以正常使用此文件
【问题讨论】:
-
请提供有问题的PDF以供查阅。
-
您没有一些不重要的 PDF,您也有这个问题吗?所需信息是 a) 在相关页面的 PDF 字典中定义了哪些框,以及 b) 在何处以及如何定义这些裁剪标记。
-
您是否在裁剪框级别剪辑您的内容?请参阅我对您上面提到的问题的回答。
-
您尝试过 iPDFdev 博客中的代码吗?在他对另一个问题的回答中提到了这一点。您还应该发布 2 个屏幕截图,显示效果好坏,以便我们看到差异。机密信息可以编辑。
-
确保裁剪框正确的最简单方法是在 Mac 或 Windows 上的 Adobe Reader 中打开它(是的,还有其他不错的查看器,但 Adobe Reader 很常见,我知道它很好)。您在 Adobe Reader 中看到的是裁剪框定义的区域。因此,如果这很好(符合您的口味),您所要做的就是弄清楚如何在您的代码中正确显示它(可能使用 iPDFdev 的提示)。如果这看起来不太好,您的 PDF 没有定义好的裁剪框,您需要更大的锤子 :)
标签: ios objective-c pdf core-graphics