1

我已经使用 Java 成功地将 JPEG 转换为 Pdf,但不知道如何使用 Java 将 Pdf 转换为 Word,下面给出了将 JPEG 转换为 Pdf 的代码。

谁能告诉我如何使用 Java 将 Pdf 转换为 Word (.doc/.docx)?

import java.io.FileOutputStream;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.Document;

public class JpegToPDF {
    public static void main(String[] args) {
        try {
            Document convertJpgToPdf = new Document();
            PdfWriter.getInstance(convertJpgToPdf, new FileOutputStream(
                    "c:\\java\\ConvertImagetoPDF.pdf"));
            convertJpgToPdf.open();
            Image convertJpg = Image.getInstance("c:\\java\\test.jpg");
            convertJpgToPdf.add(convertJpg);
            convertJpgToPdf.close();
            System.out.println("Successfully Converted JPG to PDF in iText");
        } catch (Exception i1) {
            i1.printStackTrace();
        }
    }
}
4

4 回答 4

3

实际上,您需要两个库。这两个库都是开源的。第一个是iText,它用于从 PDF 文件中提取文本。第二个是POI,用于创建 word 文档。

代码很简单:

//Create the word document
XWPFDocument doc = new XWPFDocument();

// Open the pdf file
String pdf = "myfile.pdf";
PdfReader reader = new PdfReader(pdf);
PdfReaderContentParser parser = new PdfReaderContentParser(reader);

// Read the PDF page by page
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
    TextExtractionStrategy strategy = parser.processContent(i, new SimpleTextExtractionStrategy());
    // Extract the text
    String text=strategy.getResultantText();
    // Create a new paragraph in the word document, adding the extracted text
    XWPFParagraph p = doc.createParagraph();
    XWPFRun run = p.createRun();
    run.setText(text);
    // Adding a page break
    run.addBreak(BreakType.PAGE);
}
// Write the word document
FileOutputStream out = new FileOutputStream("myfile.docx");
doc.write(out);
// Close all open files
out.close();
reader.close();

注意:使用使用的提取策略,您将丢失所有格式。但是您可以通过插入自己的更复杂的提取策略来解决此问题。

于 2013-08-09T15:22:11.847 回答
1

您可以使用 7-pdf 库

看看这个可能会有所帮助:

http://www.7-pdf.de/sites/default/files/guide/manuals/library/index.html

PS:当给定的文件是非RGB图像时,itext会出现一些问题,试试这个!!

于 2013-08-09T15:14:19.320 回答
0

您还可以尝试另一个名为Free Spire.PDF for Java的库来将 PDF 转换为 Word。以下是一些代码片段供您参考。

import com.spire.pdf.*;

public class PDFToWord {
    public static void main(String[] args) {
        //create a PdfDocument object
        PdfDocument doc = new PdfDocument();

        //load a sample PDF file
        doc.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.pdf");

        //save as .doc file
        doc.saveToFile("output/ToDoc.doc",FileFormat.DOC);

        //save as. docx file
        doc.saveToFile("output/ToDocx.docx",FileFormat.DOCX);
        doc.close();
    }
}
于 2020-12-22T06:45:46.367 回答
0

尽管它远非纯 Java 解决方案,但 OpenOffice/LibreOffice 允许通过 TCP 端口连接到它;可以使用它来转换文档。如果这看起来是一个可接受的解决方案,JODConverter可以帮助您。

于 2016-07-19T17:03:49.307 回答