我正在尝试阅读古吉拉特邦选民名册(sample file)的PDF文件。我需要以结构化格式提取所有信息。我使用Apache的pdfbox从PDF文件中提取文本。
我面临的问题是某些字符在转换中会丢失,并且转换后的文本中会有很多噪音。请找到转换后的文件here。
代码
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()方法编写代码但结果相同。
我还尝试使用pdftohtml命令行实用程序将pdf转换为xml。但也有一些信息仍然丢失。可以找到xml文件here
请建议我任何解决方案来解决此问题。解决方案不需要特定于Java。