Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Itext 7-无法获取字段的制表符顺序_Itext_Itext7 - Fatal编程技术网

Itext 7-无法获取字段的制表符顺序

Itext 7-无法获取字段的制表符顺序,itext,itext7,Itext,Itext7,是否可以使用iText7获取PDF字段的制表符顺序 您可以在Acrobat中定义选项卡顺序,但在iText7库中似乎无法获得该选项卡顺序 我正在编写一个应用程序,从PDF文件中提取字段,并希望根据PDF中定义的制表符顺序对这些字段进行排序。页面上字段或更多注释的顺序由页面字典中的制表符条目确定。其值指定为: 可选;PDF 1.5指定页上注释所用标签顺序的名称见12.5注释。可能的值应为R行顺序、C列顺序和S结构顺序。从PDF 2.0开始,可能的值还包括注释数组顺序和W小部件顺序。Annotati

是否可以使用iText7获取PDF字段的制表符顺序

您可以在Acrobat中定义选项卡顺序,但在iText7库中似乎无法获得该选项卡顺序


我正在编写一个应用程序,从PDF文件中提取字段,并希望根据PDF中定义的制表符顺序对这些字段进行排序。

页面上字段或更多注释的顺序由页面字典中的制表符条目确定。其值指定为:

可选;PDF 1.5指定页上注释所用标签顺序的名称见12.5注释。可能的值应为R行顺序、C列顺序和S结构顺序。从PDF 2.0开始,可能的值还包括注释数组顺序和W小部件顺序。Annotations数组顺序是指页面字典的Annots条目中枚举的注释的顺序,请参见表31-页面对象中的条目。小部件顺序意味着使用相同的数组顺序,但进行两次传递,第一次仅拾取小部件注释,第二次拾取所有其他注释

ISO 32000-2,表31-页面对象中的条目

因此,要实现根据PDF中定义的选项卡顺序提取要排序的字段的任务,必须读取相关页面的该值,并根据该值相应地分析注释坐标、结构树或注释数组


顺便说一下,对于有多个小部件的字段,这意味着它们也有多个选项卡位置;因此,对于某些文档,根据PDF中定义的选项卡顺序导出要排序的字段可能是不可能的。

谢谢@mkl的回答。在iText7中,这似乎不是一项容易的任务。其他pdf库,如iTextSharp.LGPLv2.Core,它们有一个名为getAborder的方法,可以轻松获取字段的制表符顺序。在该方法中,iText 2.x、4.x和5.x返回的是制表符值为a时的正确顺序值。如果是任何其他可能的制表符值,则该值可能是错误的。可能注释数组顺序也是默认的。