我有一个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的输出分辨率是所含Page的分辨率,而不一定是嵌入式文件的分辨率(除非它们的开头是相同的)。
如果是这种情况,并且您想按原本的方式恢复图像,则可以使用iText(java)或iTextSharp(。net)来get to the image内容流(即字节)并写入在将内容流转换为PdfImage iirc之后,将它们以您选择的格式输出到磁盘。
希望ghostscript选项适用于保存编写另一个实用程序...
关于c - 从PDF文件中获取CGImage,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/444815/