6

我想像这样在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);
    }
}

这就是我得到的:

在此处输入图像描述

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

第一个数组将包含:“N°”、“DATE OBSERVATIONS”、“TEXTE”

第二个数组将包含:“029/14”、“Le 1er sept 2014 remplace AVURNAV...”、“SETE A compter du lundi 7 juillet 2014 débuteront les trav...”

第三个数组将包含:“037/14”、“Le 15 octobre 2014 remplace AVURNAV ...”、“SETE Du 15 septembre 2014 au 15 juillet 2015, travaux ....”

等等

谢谢

4

1 回答 1

2

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

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

于 2015-07-09T22:08:12.527 回答