Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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
PDFBox-PDFTextStripper';是否保证读取顺序;什么位置?_Pdf_Pdfbox_Text Extraction - Fatal编程技术网

PDFBox-PDFTextStripper';是否保证读取顺序;什么位置?

PDFBox-PDFTextStripper';是否保证读取顺序;什么位置?,pdf,pdfbox,text-extraction,Pdf,Pdfbox,Text Extraction,我正在使用PdfTextStripper(PDFBox 1.8.2)处理pdf文件中的每个文本位置。我已经测试了很多文件,我注意到它按照阅读顺序处理文本。但是,如果pdf有页脚(我以pdf格式导出的docx),则这种情况并不适用。pdfTextStripper首先处理页脚,然后处理文件正文 这是预期的行为吗?有没有办法指定订单?或者有什么方法可以识别它的页脚并在代码中进行调整吗?PdfTextStripper有一个属性SortByPosition(getSortByPosition&setSor

我正在使用PdfTextStripper(PDFBox 1.8.2)处理pdf文件中的每个文本位置。我已经测试了很多文件,我注意到它按照阅读顺序处理文本。但是,如果pdf有页脚(我以pdf格式导出的docx),则这种情况并不适用。pdfTextStripper首先处理页脚,然后处理文件正文


这是预期的行为吗?有没有办法指定订单?或者有什么方法可以识别它的页脚并在代码中进行调整吗?

PdfTextStripper
有一个属性SortByPosition
getSortByPosition
&
setSortByPosition
)。默认情况下,它是
false

如果此属性为
false,
PdfTextStripper将按照文本在PDF页面内容流中的显示顺序提取文本

此顺序可能会完全混乱(因为在内容流中,您使用的运算符可以将下一个打印文本定位到页面上的任何位置),但通常属于一起的文本节会保持在一起(因为此类节所需的操作通常作为块插入到该流中)

但是,页眉和页脚通常同时添加,因此在正文文本之前或之后显示在一起

如果此属性为
true,
PdfTextStripper
基本上从上到下、从左到右提取文本(除非阅读顺序定义为从右到左)。(好吧,好吧,它也尊重物品珠子,但你很难指望它们会被普遍使用。)

对于单列文本,这种顺序是好的,页眉在前,页脚在后,但除非使用适当的文章珠子,否则多列页面会被弄乱


顺便说一句,您可以使用属性
ShouldSeparateByBeads
getSeparateByBeads
setShouldSeparateByBeads
)关闭文章珠子的使用。

PdfTextStripper
有一个属性SortByPosition
getSortByPosition
&
setOrtByPosition
)。默认情况下,它是
false

如果此属性为
false,
PdfTextStripper将按照文本在PDF页面内容流中的显示顺序提取文本

此顺序可能会完全混乱(因为在内容流中,您使用的运算符可以将下一个打印文本定位到页面上的任何位置),但通常属于一起的文本节会保持在一起(因为此类节所需的操作通常作为块插入到该流中)

但是,页眉和页脚通常同时添加,因此在正文文本之前或之后显示在一起

如果此属性为
true,
PdfTextStripper
基本上从上到下、从左到右提取文本(除非阅读顺序定义为从右到左)。(好吧,好吧,它也尊重物品珠子,但你很难指望它们会被普遍使用。)

对于单列文本,这种顺序是好的,页眉在前,页脚在后,但除非使用适当的文章珠子,否则多列页面会被弄乱

顺便说一句,您可以使用属性
ShouldSeparateByBeads
getSeparateByBeads
&
setShouldSeparateByBeads
)关闭文章珠子的使用