是否可以在没有外部库的情况下从PDF中提取tiff文件?

时间:2011-08-13 13:45:12

标签: pdf jpeg tiff extraction image-extraction

我能够使用Ned Batchelder's python code(我转换为C ++)从pdf文件中提取jpgs。我想知道是否可以使用相同的技术来提取tiff文件,如果是这样,有没有人知道适当的偏移和标记来找到它们? 谢谢, 大卫

2 个答案:

答案 0 :(得分:3)

PDF文件可能包含不同的图像数据(毫不奇怪)。

最常见的情况是:

  • 传真数据(CCITT Group 3 and 4)
  • 带有解码参数和可选调色板的原始栅格数据,全部使用Deflate或LZW压缩进行压缩
  • JPEG数据

最近,我(作为PDF库的开发者)开始注意到越来越多的带有JBIG2图像数据的PDF。此外,JPEG2000有时可以放入PDF。

我应该说,您可能无需外部库就可以将JPEG / JBIG2 / JPEG2000数据提取到相应的*.jpeg / *.jp2 / *.jpx文件中,但要为各种奇怪的PDF做好准备由破碎的发电机发出。此外,PDF经常使用对象流,因此您需要为PDF实现复杂的解析器。

传真数据(即您可能称之为TIFF的内容)应至少打包成有效的TIFF。例如,您可以从开源libtiff借用一些代码。

然后是原始栅格数据。我认为在没有图书馆帮助的情况下尝试提取这些数据是没有意义的。当然,你可以做到这一点,但这需要数月的工作。

因此,如果您尝试仅从一组使用相同生成器创建的PDF中提取特定类型的图像数据,那么您的任务可能是可行的。在所有其他情况下,我建议节省时间,金钱和头发,并使用库来完成任务。

答案 1 :(得分:1)

PDF文件将Jpegs存储为实际的JPEGS(DCT和JPX编码),因此在大多数情况下,您可以将数据翻录出来。使用Tiffs,您正在寻找CCITT数据(但您需要为数据添加标题以使其成为Tiff)。我在http://www.jpedal.org/PDFblog/2010/09/understanding-the-pdf-file-format-images/http://www.jpedal.org/PDFblog/2011/07/extract-raw-jpeg-images-from-a-pdf-file/撰写了2篇关于PDF文件图片的博客文章,这可能有所帮助。