我有一个 PDF 文件,其中每个页面都是 (LZW) TIFF 文件。我知道这一点,因为它是我创造的。我希望能够加载它并将其保存为一堆 TIFF 文件。
我可以使用 CGPDFDocumentCreateWithURL 打开 PDF 文件,并获取一个页面。我什至可以将页面绘制到屏幕上。
我想要做的是将页面绘制到 bitmapContext 中,以便我可以使用 CGBitmapContextCreateImage 将图像获取到 CGImageRef 中。但是,为了创建位图上下文,我需要知道图像的大小和分辨率。我似乎不知道如何获取 CGPDFDocument 或 CGPDFPage 来告诉我该页面上图像对象的分辨率。
是否有一种我没有意识到的更简单的方法?
谢谢。
最佳答案
Ghostscript将在这里为您工作:
gs -sDEVICE=tiff32nc -sOutputFile=foo-Page%d.tif foo.pdf
对于 2 页文档 foo.pdf,您应该得到:
- foo-Page1.tif
- foo-Page2.tif
根据内存,我认为 GS 的输出分辨率是包含页面的分辨率,不一定是嵌入文件的分辨率(除非它们一开始就相同)。
如果是这种情况,并且您想要恢复图像的原始分辨率,则可以使用 iText (java) 或 iTextSharp (.net) 至get to the image将内容流转换为 PdfImage iirc 后,将其以您选择的格式写入磁盘。
希望 Ghostscript 选项适用于节省编写另一个实用程序...
关于c - 从 PDF 文件中获取 CGImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/444815/