一、环境准备
在使用JavaWord转PDF之前,需要保证操作系统已经安装了Microsoft Office Word和Adobe Acrobat,同时需要在项目中引入iText和poi两个jar包。
//iText jar包引入 com.itextpdf itextpdf 5.5.13 //poi jar包引入 org.apache.poi poi 3.17
二、代码实现Word转PDF
这里介绍两种实现Word转PDF的方式,一种是使用iText方式,另一种是使用poi方式。
1.使用iText实现Word转PDF
使用iText方式,主要是通过解析Word中的内容,将解析出来的内容写入PDF文件。
public void wordToPdf(String sourcePath, String targetPath) throws Exception {
// 1.创建word文档输入流对象
FileInputStream wordFileStream = new FileInputStream(sourcePath);
// 2.创建word文档对象
XWPFDocument document = new XWPFDocument(wordFileStream);
// 3.创建PDF文档输出流对象
FileOutputStream pdfFileStream = new FileOutputStream(targetPath);
// 4.创建PDF文档对象
PdfWriter writer = PdfWriter.getInstance(document, pdfFileStream);
writer.setInitialLeading(12);
// 5.打开PDF文档
document.open();
// 6.解析word文档内容
List paragraphList = document.getParagraphs();
for (XWPFParagraph paragraph : paragraphList) {
String text = paragraph.getText();
document.add(new Paragraph(text));
}
// 7.关闭PDF文档
document.close();
pdfFileStream.close();
wordFileStream.close();
}
2.使用poi实现Word转PDF
使用poi方式,需要首先将Word文档转化为html格式,然后再通过解析html文件内容,将内容写入PDF文件。
public void wordToPdf(String sourcePath, String targetPath) throws Exception {
// 1.创建word文档输入流对象
FileInputStream wordFileStream = new FileInputStream(sourcePath);
// 2.创建word文档对象
HWPFDocument document = new HWPFDocument(wordFileStream);
// 3.创建word文档内容输出流对象
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
wordToHtmlConverter.processDocument(document, byteArrayOutputStream);
// 4.创建html文档字符串
String html = byteArrayOutputStream.toString();
// 5.创建PDF文档输出流对象
FileOutputStream pdfFileStream = new FileOutputStream(targetPath);
ByteArrayOutputStream pdfWriterByteStream = new ByteArrayOutputStream();
Document pdfDocument = new Document();
PdfWriter pdfWriter = PdfWriter.getInstance(pdfDocument, pdfWriterByteStream);
// 6.打开PDF文档
pdfDocument.open();
// 7.解析html文档内容
ByteArrayOutputStream htmlStream = new ByteArrayOutputStream();
htmlStream.write(html.getBytes());
XMLWorkerHelper.getInstance().parseXHtml(pdfWriter, pdfDocument, new ByteArrayInputStream(htmlStream.toByteArray()));
// 8.关闭PDF文档
pdfDocument.close();
pdfFileStream.write(pdfWriterByteStream.toByteArray());
pdfFileStream.flush();
pdfFileStream.close();
wordFileStream.close();
}
三、转换效果展示
下面分别展示使用iText和poi方式实现的Word转PDF效果。
1.iText方式实现Word转PDF效果
2.poi方式实现Word转PDF效果
四、总结
本篇文章主要介绍了JavaWord转PDF的实现方法,包括环境准备、iText方式实现和poi方式实现,并展示了转换效果。希望对需要将Word文档转换为PDF格式的读者有所帮助。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/287408.html
微信扫一扫
支付宝扫一扫