Vb.net itextsharp无法处理msoffice应用程序转换的pdf
我很困惑,为什么iTextsharp无法读取或从pdf(从msword、excel、powerpoint转换的pdf)获取图像Vb.net itextsharp无法处理msoffice应用程序转换的pdf,vb.net,itextsharp,Vb.net,Itextsharp,我很困惑,为什么iTextsharp无法读取或从pdf(从msword、excel、powerpoint转换的pdf)获取图像 下面是我所做的,我打开了msword文件,然后将msword文件转换为pdf,然后使用iTextsharp读取pdf文件,它无法识别pdf文件是否有图像或形状 我也试着从powerpoint转换成pdf,然后读取pdf文件,但它也不读取图像 代码如下: 图片下方…已编辑 这是无法提取的图像: 这是我不久前测试的图像,很好,我不知道为什么另一个图像不能被检测到,或者它有
下面是我所做的,我打开了msword文件,然后将msword文件转换为pdf,然后使用iTextsharp读取pdf文件,它无法识别pdf文件是否有图像或形状 我也试着从powerpoint转换成pdf,然后读取pdf文件,但它也不读取图像 代码如下: 图片下方…已编辑 这是无法提取的图像: 这是我不久前测试的图像,很好,我不知道为什么另一个图像不能被检测到,或者它有错误。 现在,我将代码更改为: 但也检测不到它的一个图像上的圆形
当前代码未找到或提取这些形状的原因: 笑脸图像和花朵图像在本质上完全不同:花朵图像是存储在PDF中的位图图像,作为子类型/image的/XObject(外部对象),而笑脸是存储在PDF中的向量图像,作为页面内容流的一部分(不一定是连续的)路径定义和绘图操作的顺序 您的代码只搜索作为外部对象存储的位图图像,而且它的搜索方式有些复杂:它首先使用低级方法扫描图像xobject,并且只有在找到这样的xobject时,才使用iText高级提取功能。如果它一开始只使用iText图像提取功能,那么它就不会那么复杂,同时它还可以识别内联位图图像 你可能想看一下第15章,尤其是其中的一章。虽然该代码的灵感可以改进您当前的代码,但它不会帮助您解决手头的问题 使用iText: 不幸的是,你的问题并不完全清楚你实际上想要实现什么
PdfReader.Catalog,
在其中选择PdfName.StructTreeRoot
的值,并深入研究)
例如,对于示例的第1页(PDF对象4 0中)(顶部为“1233”,下面为笑脸),您将发现一个包含字典的数组:
<<
/Pg 4 0 R
/K [0]
/S /P
/P 24 0 R
>>
此部分位于/MCID 1的BDC和EMC之间,包含您寻求的图形操作。如果你想得到他们所代表的图形的一些信息,你必须对他们进行分析
这是一个关于所有这些的非常低级的视图,可能需要一个更高级的API来检索它
iText确实有一个高级API,用于使用parser
namespace类PdfReaderContentParser
以及一些类似ImageInfoTextExtractionStrategy的aproposRenderListener
实现的文本和位图图像处理的类似操作。
但不幸的是,PdfReaderContentParser
尚未正确预处理向量图形相关运算符
因此,要使用iText实现这一点,您必须扩展底层的PdfContentStreamProcessor
,以添加缺少的预处理(这是可以做到的,因为该解析器类使用单独的侦听器来实现各个操作,并且您可以轻松地为图形操作符注册新的侦听器);或者您必须检索页面内容并自己解析
3。正在提取图像。
由于PDF中的矢量图像使用特定于PDF的矢量图形操作符,因此首先必须确定要导出图像的格式。除非您对原始PDF操作符感兴趣,否则您很可能需要一些库来帮助您创建所需格式的文件
一旦确定,您首先按照前面的说明提取有问题的图形操作符,然后将它们提供给该库,以创建您选择的可导出图像。当前代码未找到或提取这些形状的原因: 笑脸形象和花朵形象在本质上是完全不同的
<<
/Pg 4 0 R
/K [0]
/S /P
/P 24 0 R
>>
<<
/Pg 4 0 R
/K [1]
/Alt ()
/S /Figure
/P 22 0 R
>>
/P <</MCID 1>> BDC 0.31 0.506 0.741 rg
108.6 516.6 m
108.6 569.29 160.18 612 223.8 612 c
287.42 612 339 569.29 339 516.6 c
339 463.91 287.42 421.2 223.8 421.2 c
160.18 421.2 108.6 463.91 108.6 516.6 c
h
f*
[...]
108.6 516.6 m
108.6 569.29 160.18 612 223.8 612 c
287.42 612 339 569.29 339 516.6 c
339 463.91 287.42 421.2 223.8 421.2 c
160.18 421.2 108.6 463.91 108.6 516.6 c
h
S
EMC