Java 无法将古吉拉特PDF(unicode)转换为文本

Java 无法将古吉拉特PDF(unicode)转换为文本,java,pdf,unicode,utf-8,pdfbox,Java,Pdf,Unicode,Utf 8,Pdfbox,我正在阅读古吉拉特邦选民名册的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

我正在阅读古吉拉特邦选民名册的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的

你试过iText吗?iText是一个成熟的基于java的PDF读取和生成解决方案。我不担保它,但如果事情不是按照你想要的方式,考虑这是另一个建议。乍一看,你已经给出了三个不匹配的来源,PDF为“11/218”,“30/218”的文本,和“1/315”的XML。现在有人应该如何帮助你解决角色迷路的问题?@mkl我提供了这些链接来说明问题的本质。根据我的说法,这些文件链接描述了问题的本质。我会找到相应的文件并更改链接。@Filipedelto根据您的建议,我尝试使用iText,但问题仍然没有解决。@IshanJain由于文件不一致,我无法比较以找到在转换为文本时丢失的某些字符或XML中丢失的信息。由于我看不懂古吉拉特语,我也看不出上下文中遗漏了什么。此外,你应该解释你的期望。