簡體   English   中英

使用java將pdf轉換為word文檔

[英]Converting a pdf to word document using java

我已經成功地使用 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();
        }
    }
}

實際上,您需要兩個庫。 這兩個庫都是開源的。 第一個是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();

當心:使用所使用的提取策略,您將丟失所有格式。 但是您可以通過插入您自己的更復雜的提取策略來解決此問題。

您可以使用 7-pdf 庫

看看這個它可能有幫助:

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

PS:當給定的文件是非 RGB 圖像時,itext 有一些問題,試試這個!!

盡管它遠非純粹的 Java 解決方案,但 OpenOffice/LibreOffice 允許人們通過 TCP 端口連接到它; 可以使用它來轉換文檔。 如果這看起來是可接受的解決方案, JODConverter可以為您提供幫助。

您還可以嘗試另一個名為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();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM