我正在尝试阅读古吉拉特邦选民名册的 PDF 文件(示例文件)。我需要以结构化格式提取所有信息。我正在使用 Apache 的 pdfbox 从 PDF 文件中提取文本。
我面临的问题是某些字符在转换中丢失了,并且转换后的文本中有很多噪音。请在此处找到转换后的文件。
编码
import java.io.*;
import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.util.*;
public class Main {
public static void main(String[] args){
PDDocument pd;
BufferedWriter wr;
try {
File input = new File("myPDF_manual.pdf");
File output = new File("newPaperTestFile.txt"); // The text file where you are going to store the extracted data
pd = PDDocument.load(input);
PDFTextStripper stripper = new PDFTextStripper();
wr = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(output)));
stripper.writeText(pd, wr);
if (pd != null) {
pd.close();
wr.close();
System.out.println(" file processed.");
}
} catch (Exception e){
e.printStackTrace();
}
}
}
我还尝试了使用 PDFTextStripper 类的 getText() 方法的代码,但结果是一样的。
我还尝试使用适用于 linux 的 pdftohtml 命令行实用程序将 pdf 转换为 xml。但也有一些信息仍然丢失。xml文件可以在这里找到
请建议我解决此问题的任何解决方案。解决方案不需要特定于 Java。