Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.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
Java 列顺序错误-使用PDFbox提取文本_Java_Pdf_Pdfbox - Fatal编程技术网

Java 列顺序错误-使用PDFbox提取文本

Java 列顺序错误-使用PDFbox提取文本,java,pdf,pdfbox,Java,Pdf,Pdfbox,我试图剥离PDF文档的文本,但列的顺序不正确。我把最后一列作为第一列 我怎样才能重新排序呢?请参阅文档。问题在于,您的文档首先绘制最右边的列,然后从左向右绘制其他列;因此,您的PDFBox文本提取代码将按该顺序返回内容。您可以要求PDFBox按位置进行排序,而不是使用现有的顺序,但这不会有帮助,因为这种排序方式看不到文档的列结构,并且会从上到下(跨列边界!)进行提取然后在假设的文本行中从左到右。如果提取文本的PDF具有固定的文本列位置,则可以尝试按区域、逐列提取。否则,您必须在一定程度上进行布局

我试图剥离PDF文档的文本,但列的顺序不正确。我把最后一列作为第一列


我怎样才能重新排序呢?请参阅文档。

问题在于,您的文档首先绘制最右边的列,然后从左向右绘制其他列;因此,您的PDFBox文本提取代码将按该顺序返回内容。您可以要求PDFBox按位置进行排序,而不是使用现有的顺序,但这不会有帮助,因为这种排序方式看不到文档的列结构,并且会从上到下(跨列边界!)进行提取然后在假设的文本行中从左到右。如果提取文本的PDF具有固定的文本列位置,则可以尝试按区域、逐列提取。否则,您必须在一定程度上进行布局分析,这超出了PDFBox的重点。不过,您可以使用PDFBox生成此类布局分析所需的数据,“仅仅”需要实现识别布局的智能。由于存在分隔列的线,这里看起来不太复杂;由于我们不知道您通常需要从哪些文档中提取,因此不清楚这种方法是否有用。我认为我需要分析布局,将垂直线作为参考,但这并不容易,因为文档都是不可预测的,您是否阅读了PDFBox常见问题解答?“为什么提取的文本出现在错误的序列中?”@DiegoHenrique确实很重要。。。我甚至花了一些时间(用来识别文本流模式)来识别部分列的正确顺序。。。此外,您会发现提取表格数据本身就是一个挑战。。。没有机器可读的Diário官方版本吗?