JavaWord转PDF详解

一、环境准备

在使用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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-23 13:07
下一篇 2024-12-23 13:07

相关推荐

  • Python基础教程第三版PDF下载

    熟练掌握Python编程语言可以让你轻松地用代码解决很多问题,Python基础教程第三版是一本适合初学者的Python教程。本文将从几个方面详细介绍Python基础教程第三版PDF…

    编程 2025-04-29
  • 使用Spire.PDF进行PDF文档处理

    Spire.PDF是一款C#的PDF库,它可以帮助开发者快速、简便地处理PDF文档。本篇文章将会介绍Spire.PDF库的一些基本用法和常见功能。 一、PDF文档创建 创建PDF文…

    编程 2025-04-29
  • Python零基础PDF下载

    本文将为大家介绍如何使用Python下载PDF文件,适合初学者上手实践。 一、安装必要的库 在Python中,我们需要使用urllib和requests库来获取PDF文件的链接,并…

    编程 2025-04-29
  • 智能风控 Python金融风险PDF

    在金融交易领域,风险控制是一项重要任务。智能风控是指通过人工智能技术和算法模型,对金融交易进行风险识别、风险预警、风险控制等操作。Python是一种流行的编程语言,具有方便、易用、…

    编程 2025-04-29
  • Python编程与数据分析应用PDF

    Python编程是一门功能强大的编程语言,其易读易写、可扩展性强等优点使得它在各个领域都有着广泛的应用。而数据分析也是当今各行各业的基本需求,Python语言通过优秀的数据分析库也…

    编程 2025-04-28
  • Python语言设计基础第2版PDF

    Python语言设计基础第2版PDF是一本介绍Python编程语言的经典教材。本篇文章将从多个方面对该教材进行详细的阐述和介绍。 一、基础知识 本教材中介绍了Python编程语言的…

    编程 2025-04-28
  • 文本数据挖掘与Python应用PDF

    本文将介绍如何使用Python进行文本数据挖掘,并将着重介绍如何应用PDF文件进行数据挖掘。 一、Python与文本数据挖掘 Python是一种高级编程语言,具有简单易学、代码可读…

    编程 2025-04-28
  • Python生成PDF文档

    Python是一门广泛使用的高级编程语言,它可以应用于各种领域,包括Web开发、数据分析、人工智能等。在这些领域的应用中,有很多需要生成PDF文档的需求。Python有很多第三方库…

    编程 2025-04-28
  • 使用Python为PDF添加书签

    Python是一种强大灵活的编程语言,它支持大量的库和模块,其中就包括pdf模块。使用Python处理PDF文件可以有效地提高处理效率和减轻工作量。其中,添加书签是PDF处理的常见…

    编程 2025-04-28
  • 电子琴入门教程pdf下载

    作为一名电子琴爱好者,了解电子琴的基础知识是必要的,而电子琴入门教程PDF的下载则是学习电子琴知识的好方法。 一、找到可靠的PDF下载网站 在互联网上能够找到很多电子琴入门教程的P…

    编程 2025-04-27

发表回复

登录后才能评论