使用 /CCITTFaxDecode 过滤器从 PDF 中提取图像
我有一个通过扫描软件生成的 pdf 文件。该 pdf 每页有 1 个 TIFF 图像。我想从每个页面中提取 TIFF 图像。
我正在使用 iTextSharp,并且已成功找到图像,并且可以从 PdfReader.GetStreamBytesRaw
方法取回原始字节。问题是,正如我之前的许多人所发现的那样,iTextSharp 不包含 PdfReader.CCITTFaxDecode
方法。
我还知道什么?即使没有 iTextSharp,我也可以在记事本中打开 pdf 并使用 /Filter /CCITTFaxDecode
找到流,并且我从 /DecodeParams
知道它正在使用 CCITTFaxDecode 组 4。
有人知道吗?那里知道如何从我的 pdf 中获取 CCITTFaxDecode 过滤器图像吗?
I have a pdf that was generated from scanning software. The pdf has 1 TIFF image per page. I want to extract the TIFF image from each page.
I am using iTextSharp and I have successfully found the images and can get back the raw bytes from the PdfReader.GetStreamBytesRaw
method. The problem is, as many before me have discovered, iTextSharp does not contain a PdfReader.CCITTFaxDecode
method.
What else do I know? Even without iTextSharp I can open the pdf in notepad and find the streams with /Filter /CCITTFaxDecode
and I know from the /DecodeParams
that it is using CCITTFaxDecode group 4.
Does anyone out there know how I can get the CCITTFaxDecode filter images out of my pdf?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
实际上,vbcrlfuser的答案确实对我有帮助,但代码对于当前版本的BitMiracle.LibTiff.NET来说不太正确,因为我可以下载它。在当前版本中,等效代码如下所示:
使用上述代码,我终于在 C:\test.tif 中获得了一个有效的 Tiff 文件。谢谢你,vbcrlfuser!
Actually, vbcrlfuser's answer did help me, but the code was not quite correct for the current version of BitMiracle.LibTiff.NET, as I could download it. In the current version, equivalent code looks like this:
Using the above code, I finally got a valid Tiff file in C:\test.tif. Thank you, vbcrlfuser!
这个库... http://www.bitmiracle.com/libtiff/ 并且下面的示例应该让您顺利完成 99% 的任务
This library... http://www.bitmiracle.com/libtiff/ and this example below should get you 99% of the way there
这是Python的实现:
Here is python implementation:
已经为此编写了扩展 (c#)。
It has been written extension for this (c#).