我已经使用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();
}
}
}
答案 0 :(得分: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();
注意:使用已使用的提取策略,您将丢失所有格式。但是你可以通过插入自己的,更复杂的提取策略来解决这个问题。
答案 1 :(得分:0)
您可以使用7-pdf库
看看这可能有所帮助:
http://www.7-pdf.de/sites/default/files/guide/manuals/library/index.html
PS:当给定文件是非RGB图像时,itext会出现一些问题,试试这个!!
答案 2 :(得分:0)
虽然它远不是纯Java解决方案,但OpenOffice / LibreOfffice允许通过TCP端口连接到它;可以使用它来转换文档。如果这看起来像是可接受的解决方案,JODConverter可以帮助您。
答案 3 :(得分: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();
}
}