PDFBox-PDFTextStripper';是否保证读取顺序;什么位置?
我正在使用PdfTextStripper(PDFBox 1.8.2)处理pdf文件中的每个文本位置。我已经测试了很多文件,我注意到它按照阅读顺序处理文本。但是,如果pdf有页脚(我以pdf格式导出的docx),则这种情况并不适用。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
有一个属性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
)关闭文章珠子的使用