Vb.net 理解PDF DOM

Vb.net 理解PDF DOM,vb.net,pdf,vba,Vb.net,Pdf,Vba,我正在编写一个应用程序,它必须读取和解释存储在一些PDF文件中的数据。阅读部分已经完成,但我只能得到一页上所有单词的转储,而不是单词的格式。我的意思是,如果我必须提取一个表,我得到的是表中的数字,而不是定义表的标记 此外,还使用了一些格式,在括号内显示其中一些数字(表示这些数字为负数),但括号本身不是文本的一部分。因此,我无法区分PDF表格中的正数和负数 如何将PDF标记与文本一起获取?PDF在结构上是否类似于XML,带有用于标记表等的标记。?如果没有,那么,是否有资源描述PDF DOM的显著特

我正在编写一个应用程序,它必须读取和解释存储在一些PDF文件中的数据。阅读部分已经完成,但我只能得到一页上所有单词的转储,而不是单词的格式。我的意思是,如果我必须提取一个表,我得到的是表中的数字,而不是定义表的标记

此外,还使用了一些格式,在括号内显示其中一些数字(表示这些数字为负数),但括号本身不是文本的一部分。因此,我无法区分PDF表格中的正数和负数

如何将PDF标记与文本一起获取?PDF在结构上是否类似于XML,带有用于标记表等的标记。?如果没有,那么,是否有资源描述PDF DOM的显著特性

我使用的是VBA和Acrobat库(AcroExch等)。

没有HTML意义上的“PDF标记”等。PDF格式的表格不能与线条艺术区分开来,只能使用OCR,如果布局复杂,可能容易出错。它只是使用几何形状绘制,就像在基于矢量的图形程序中一样。

没有HTML意义上的“PDF标记”之类的东西。PDF格式的表格不能与线条艺术区分开来,只能使用OCR,如果布局复杂,OCR很容易出错。它只是使用几何图形绘制,就像在基于矢量的图形程序中一样。

“PDF的结构是否类似于带有标记表等的XML?”

不,一点也不。

而且也没有“DOM”这样的东西。谷歌搜索一个名为*PDF32000_2008.pdf*的文件。v1.7(ISO规范)的当前PDF规范就是该文件。您应该能够在Adobe网站上找到它。

“PDF的结构是否类似于XML,带有用于标记表等的标记?”

不,一点也不。


而且也没有“DOM”这样的东西。谷歌搜索一个名为*PDF32000_2008.pdf*的文件。v1.7(ISO规范)的当前PDF规范就是该文件。您应该能够在Adobe网站上找到它。

正如omz所说,PDF中的文本实际上没有结构。你可以看看说明书。然而,对于一些非常特定的文件,有一种称为PDF标签或PDF标记内容的东西,这是相当新的,它旨在为PDF文档提供某种结构。如果您专门针对这类文件,您可能会有所成就。查看Adobe规范第10章(文档交换)了解更多详细信息。

正如omz所述,PDF中的文本实际上并没有结构。你可以看看说明书。然而,对于一些非常特定的文件,有一种称为PDF标签或PDF标记内容的东西,这是相当新的,它旨在为PDF文档提供某种结构。如果您专门针对这类文件,您可能会有所成就。查看Adobe规范的第10章(文档交换)了解更多详细信息。

也许通过使用pdflib.com()中的优秀人员制作的文本提取工具包TET,您可以以更少的努力和更快的速度完成想要实现的目标


AFAIR,TET对表检测也有一些(有限的)支持….

也许您想要实现的目标可以通过使用TET来实现,TET是由pdflib.com()的优秀人员制作的文本提取工具包


AFAIR,TET对表检测也有一些(有限的)支持…

PDF实际上没有DOM。这实际上是一个用PostScript编写的程序。因此,大多数格式化工作都是通过函数调用来完成的,函数调用会改变PDF解释器中的状态。我删除了标记XML、HTML和DOM,因为它们与问题无关。@Marc B:嗯,不。。。PDF并不是“真正意义上的程序”。而且它也不是用后记写的。(Ghostscript的PDF解释器大部分是用PostScript编写的……但这与“PDF”本身完全不同)。PDF是一种二进制文件格式。它完全是声明性的。没有循环,没有条件,没有变量。PDF实际上没有DOM。这实际上是一个用PostScript编写的程序。因此,大多数格式化工作都是通过函数调用来完成的,函数调用会改变PDF解释器中的状态。我删除了标记XML、HTML和DOM,因为它们与问题无关。@Marc B:嗯,不。。。PDF并不是“真正意义上的程序”。而且它也不是用后记写的。(Ghostscript的PDF解释器大部分是用PostScript编写的……但这与“PDF”本身完全不同)。PDF是一种二进制文件格式。它完全是声明性的。没有循环,没有条件,没有变量。但是有一个可见的结构!而文本显然与其结构是分离的。我只想知道以某种方式表示特定文本的指令存储在何处/以何种形式,以及如何访问它们。“文本”在PDF中通常是单个字符,由
Tj
操作符在
Td
Tm
操作符之后逐个精确地放置在页面上“定位”它。使用的大多数字体都是粗体或斜体,由
Tf
操作员选择+大小。这并不完全正确。PDF文件内容可以“标记”(从1.4版开始)提供有关文档结构的信息。虽然PDF标记是可选的,并且不存在于所有PDF文档中,但它可以为您提供额外的信息,而不仅仅是解释页面流。请参阅,但有一个可见的结构!并且文本与其结构明显分开。我只想知道它们的位置/形式以特定方式表示特定文本的指令存储