我有一个PDF文件,其中每个页面都是(LZW)TIFF文件。我知道这是因为我创造了它。我希望能够加载它并将其保存为一堆TIFF文件。
我可以用CGPDFDocumentCreateWithURL打开PDF文件,然后获取一个页面。我甚至可以将页面绘制到屏幕上。
我想要做的是将页面绘制成一个bitmapContext,这样我就可以使用CGBitmapContextCreateImage将图像转换为CGImageRef。但是,为了创建位图上下文,我需要知道图像的大小和分辨率。我似乎无法找到如何获取CGPDFDocument或CGPDFPage来告诉我该页面上图像对象的分辨率。
有没有更简单的方法来做到这一点,我没有意识到?
感谢。
答案 0 :(得分:1)
Ghostscript会在这里为您效劳:
gs -sDEVICE=tiff32nc -sOutputFile = foo-Page%d.tif foo.pdf
对于2页文档foo.pdf,你应该得到:
从内存中我认为GS的输出分辨率是包含页面的输出分辨率,不一定是嵌入文件的分辨率(除非它们与开头的内容相同)。
如果是这种情况,并且您希望恢复最初的图像,则可以使用iText(java)或iTextSharp(。net)到get to the image在将内容流转换为PdfImage iirc之后,将内容流(即字节)以您选择的格式写入磁盘。
希望ghostscript选项适用于保存编写另一个实用程序......