如何使用Java将pdf文件转换为word文件

如何使用Java将pdf文件转换为word文件,java,pdf,ms-word,Java,Pdf,Ms Word,如何使用Java将pdf文件转换为word文件 而且,它是否像看上去那样简单?试试看 我已经深入研究了这件事,我发现为了得到正确的结果,你必须使用微软Word。甚至像LibreOffice这样受资助的项目也难以进行适当的转换,因为单词格式相当复杂,并且随着版本的变化而变化。只有Word女士记录了这一点 因此,我使用JavaAPI实现了将转换委托给MS Word的功能。此外,它允许您将转换移动到可以使用RESTAPI联系的其他机器。你可以找到详细信息。用谷歌搜索它,你就会找到答案。你也应该使用st

如何使用Java将pdf文件转换为word文件

而且,它是否像看上去那样简单?

试试看


我已经深入研究了这件事,我发现为了得到正确的结果,你必须使用微软Word。甚至像LibreOffice这样受资助的项目也难以进行适当的转换,因为单词格式相当复杂,并且随着版本的变化而变化。只有Word女士记录了这一点


因此,我使用JavaAPI实现了将转换委托给MS Word的功能。此外,它允许您将转换移动到可以使用RESTAPI联系的其他机器。你可以找到详细信息。

用谷歌搜索它,你就会找到答案。你也应该使用stackoverflow的搜索引擎…你可以使用Apace poi。哪里看起来容易?@Holger,我有,但我需要一些答案。发布你的代码。然后我会给出答案。下载jar:非常感谢,但是关于图像和数学字符呢?我需要直接将其转换为Word文件吗?您的PDF具有图像和数学字符,但将其转换为文本文件无法解决此问题。哦,因为OCR太难完成此过程,而且提取图像内容需要很长时间。我使用JPedal jar,只是通过控制台
运行jar,无法解析com.documents4j.job.AbstractConverterBuilder类型。它是从必需的.class文件中间接引用的
,而该类型在javadoc引用中不存在,就像您的类路径不完整一样。javadoc只包含官方API类。
public class PDFTextReader
{
   static String pdftoText(String fileName) {
        PDFParser parser;
        String parsedText = null;
        PDFTextStripper pdfStripper = null;
        PDDocument pdDoc = null;
        COSDocument cosDoc = null;
        File file = new File(fileName);
        if (!file.isFile()) {
            System.err.println("File " + fileName + " does not exist.");
            return null;
        }
        try {
            parser = new PDFParser(new FileInputStream(file));
        } catch (IOException e) {
            System.err.println("Unable to open PDF Parser. " + e.getMessage());
            return null;
        }
        try {
            parser.parse();
            cosDoc = parser.getDocument();
            pdfStripper = new PDFTextStripper();
            pdDoc = new PDDocument(cosDoc);
            parsedText = pdfStripper.getText(pdDoc);
        } catch (Exception e) {
            System.err
                    .println("An exception occured in parsing the PDF Document."
                            + e.getMessage());
        } finally {
            try {
                if (cosDoc != null)
                    cosDoc.close();
                if (pdDoc != null)
                    pdDoc.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return parsedText;
    }
    public static void main(String args[]){

         try {

            String content = pdftoText(PDF_FILE_PATH);

            File file = new File("/sample/filename.txt");

            // if file doesnt exists, then create it
            if (!file.exists()) {
                file.createNewFile();
            }

            FileWriter fw = new FileWriter(file.getAbsoluteFile());
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write(content);
            bw.close();

            System.out.println("Done");

        } catch (IOException e) {
            e.printStackTrace();
        }
    } 
}