0

我有一个 PDF 文件,其中每一页都是 (LZW) TIFF 文件。我知道这一点,因为我创造了它。我希望能够加载它并将其保存为一堆 TIFF 文件。

我可以使用 CGPDFDocumentCreateWithURL 打开 PDF 文件,并获得一个页面。我什至可以将页面绘制到屏幕上。

我想做的是将页面绘制到 bitmapContext 中,这样我就可以使用 CGBitmapContextCreateImage 将图像放入 CGImageRef 中。但是,为了创建位图上下文,我需要知道图像的大小和分辨率。我似乎无法找到如何获取 CGPDFDocument 或 CGPDFPage 来告诉我该页面上图像对象的分辨率。

有没有我没有意识到的更简单的方法来做到这一点?

谢谢。

4

1 回答 1

1

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)获取图像内容流(即字节)并将它们写入将内容流转换为 PdfImage iirc 后,以您选择的格式磁盘。

希望ghostscript选项适用于节省编写另一个实用程序...

于 2009-01-17T13:54:09.363 回答