如何在pdf文件中提取表的内容?

Ber*_*and 5 java pdf text-extraction itext pdf-extraction

我想在pdf中提取表格的内容,如下所示:

在此输入图像描述

我用iText java PDF libray编写了这个java程序,它可以逐行读取PDF文件的内容,但我不知道如何获取表的内容

import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;

public class PDFReader {

    public static void main(String[] args) {

        // TODO, add your application code
        System.out.println("Lecteur PDF");
        System.out.println (ReadPDF("D:/test.pdf"));
    }
        private static String ReadPDF(String pdf_url)
    {
        StringBuilder str=new StringBuilder();
        try
        {

         PdfReader reader = new PdfReader(pdf_url);
        int n = reader.getNumberOfPages();
         for(int i=1;i<n;i++)
         {
            String str2=PdfTextExtractor.getTextFromPage(reader, i);
            str.append(str2);
           System.out.println(str);
         }
        }catch(Exception err)
        {
            err.printStackTrace();
        }
        return String.format("%s", str);
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

在此输入图像描述

但这不是我想要的,我想逐行和逐列提取表的内容,例如,保存java数组中的每一行

第一个数组将包含:"N°","DATE OBSERVATIONS","TEXTE"

第二个阵列将包含:"029/14","Le 1er sept 2014 remplace AVURNAV ...","SETE A compter du lundi 7 juillet2014débuterontlestrav ......"

第三个阵列将包含:"037/14","Le 15 octobre 2014 remplace AVURNAV ......","SETE Du 15 septembre 2014 au 15 juillet 2015,travaux ...."

等等

谢谢

3-1*_*264 2

如果您的 PDF 库不支持提取表格,您可能必须识别公共字段开始/结束字符序列才能将数据拆分为数组。例如,第一个字段是nnn/nn,第二个字段结束nnnn/nn,第三个字段结束,下一个第一个字段开始。

这是一个棘手的问题 - 我之前不得不使用基于坐标的方法来处理这个问题,但是您的 pdf 库可能不支持提取字母的位置以及实际文本。