欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現(xiàn)一鍵將Word文檔轉(zhuǎn)為PDF

 更新時間:2025年02月09日 12:44:31   作者:五行星辰  
在開發(fā)中,經(jīng)常會碰到需要把 Word 文檔轉(zhuǎn)換成 PDF 格式的需求,Java 有不少好用的庫能實現(xiàn)這個功能,本文為大家介紹了兩個常用的方法,需要的可以了解下

在開發(fā)中,經(jīng)常會碰到需要把 Word 文檔轉(zhuǎn)換成 PDF 格式的需求,像生成報告、合同啥的。Java 有不少好用的庫能實現(xiàn)這個功能,下面就給大家介紹兩種常見的方法,分別使用 Apache POI 和 Docx4J 結(jié)合 iText 庫來實現(xiàn) Word 轉(zhuǎn) PDF。

方法一:使用 Apache POI 和 iText

1. 引入依賴

如果你用 Maven 管理項目,在 pom.xml 里添加以下依賴:

<dependencies>
    <!-- Apache POI 處理 Word 文檔 -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.2.3</version>
    </dependency>
    <!-- iText 生成 PDF 文檔 -->
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itextpdf</artifactId>
        <version>5.5.13.3</version>
    </dependency>
</dependencies>

2. 代碼示例

import com.itextpdf.text.*;
import com.itextpdf.text.pdf.PdfWriter;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
 
import java.io.*;
 
public class WordToPdfWithPOI {
    public static void main(String[] args) {
        try {
            // 讀取 Word 文檔
            FileInputStream fis = new FileInputStream("input.docx");
            XWPFDocument document = new XWPFDocument(fis);
 
            // 創(chuàng)建 PDF 文檔
            Document pdfDoc = new Document();
            PdfWriter.getInstance(pdfDoc, new FileOutputStream("output.pdf"));
            pdfDoc.open();
 
            // 遍歷 Word 文檔的段落
            for (XWPFParagraph paragraph : document.getParagraphs()) {
                StringBuilder text = new StringBuilder();
                // 遍歷段落中的文本運行對象
                for (XWPFRun run : paragraph.getRuns()) {
                    text.append(run.getText(0));
                }
                // 將段落文本添加到 PDF 文檔中
                Paragraph pdfParagraph = new Paragraph(text.toString());
                pdfDoc.add(pdfParagraph);
            }
 
            // 關閉文檔和流
            pdfDoc.close();
            document.close();
            fis.close();
 
            System.out.println("Word 轉(zhuǎn) PDF 成功!");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Word 轉(zhuǎn) PDF 失敗:" + e.getMessage());
        }
    }
}

3. 代碼解釋

讀取 Word 文檔:用 FileInputStream 讀取 input.docx 文件,再用 XWPFDocument 類把它加載到內(nèi)存。

創(chuàng)建 PDF 文檔:創(chuàng)建 Document 對象表示 PDF 文檔,用 PdfWriter 關聯(lián)輸出流,然后打開文檔準備寫入內(nèi)容。

遍歷 Word 文檔段落:遍歷 Word 文檔的每個段落,把段落里的文本提取出來,添加到 StringBuilder 里,再創(chuàng)建 Paragraph 對象添加到 PDF 文檔中。

關閉文檔和流:操作完成后,關閉 PDF 文檔、Word 文檔和輸入流。

方法二:使用 Docx4J

1. 引入依賴

在 pom.xml 里添加以下依賴:

<dependencies>
    <dependency>
        <groupId>org.docx4j</groupId>
        <artifactId>docx4j-JAXB-Internal</artifactId>
        <version>11.4.9</version>
    </dependency>
    <dependency>
        <groupId>org.docx4j</groupId>
        <artifactId>docx4j-JAXB-ReferenceImpl</artifactId>
        <version>11.4.9</version>
    </dependency>
    <dependency>
        <groupId>org.docx4j</groupId>
        <artifactId>docx4j</artifactId>
        <version>11.4.9</version>
    </dependency>
    <dependency>
        <groupId>org.docx4j</groupId>
        <artifactId>docx4j-export-fo</artifactId>
        <version>11.4.9</version>
    </dependency>
</dependencies>

2. 代碼示例

import org.docx4j.Docx4J;
import org.docx4j.convert.out.FOSettings;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
 
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
 
public class WordToPdfWithDocx4J {
    public static void main(String[] args) {
        try {
            // 加載 Word 文檔
            WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new File("input.docx"));
 
            // 創(chuàng)建 FOSettings 對象
            FOSettings foSettings = Docx4J.createFOSettings();
            foSettings.setWmlPackage(wordMLPackage);
 
            // 創(chuàng)建輸出流
            OutputStream os = new FileOutputStream(new File("output.pdf"));
 
            // 轉(zhuǎn)換并保存為 PDF
            Docx4J.toPDF(foSettings, os, Docx4J.FLAG_EXPORT_PREFER_XSL);
 
            // 關閉輸出流
            os.close();
 
            System.out.println("Word 轉(zhuǎn) PDF 成功!");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Word 轉(zhuǎn) PDF 失?。? + e.getMessage());
        }
    }
}

3. 代碼解釋

加載 Word 文檔:用 WordprocessingMLPackage.load 方法加載 input.docx 文件。

創(chuàng)建 FOSettings 對象:FOSettings 用于配置轉(zhuǎn)換設置,把加載的 Word 文檔設置進去。

創(chuàng)建輸出流:創(chuàng)建 FileOutputStream 用于輸出 PDF 文件。

轉(zhuǎn)換并保存為 PDF:調(diào)用 Docx4J.toPDF 方法進行轉(zhuǎn)換,并將結(jié)果保存到輸出流。

關閉輸出流:操作完成后,關閉輸出流。

嘿,朋友們!這兩種方法都能幫你用 Java 把 Word 文檔轉(zhuǎn)換成 PDF。你可以根據(jù)自己的需求和喜好選擇合適的方法。

到此這篇關于Java實現(xiàn)一鍵將Word文檔轉(zhuǎn)為PDF的文章就介紹到這了,更多相關Java Word轉(zhuǎn)PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 使用Mock進行業(yè)務邏輯層Service測試詳解

    使用Mock進行業(yè)務邏輯層Service測試詳解

    這篇文章主要介紹了使用Mock進行業(yè)務邏輯層Service測試詳解,mock是一種模擬對象的技術,用于在測試過程中替代真實的對象,通過mock,我們可以控制被模擬對象的行為和返回值,以便進行更加精確的測試,需要的朋友可以參考下
    2023-08-08
  • springmvc使用@notNull注解驗證請求參數(shù)方式

    springmvc使用@notNull注解驗證請求參數(shù)方式

    這篇文章主要介紹了springmvc使用@notNull注解驗證請求參數(shù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教<BR>
    2024-01-01
  • 用IntelliJ IDEA看Java類圖的方法(圖文)

    用IntelliJ IDEA看Java類圖的方法(圖文)

    這篇文章主要介紹了用IntelliJ IDEA看Java類圖的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • springboot?如何添加webapp文件夾

    springboot?如何添加webapp文件夾

    這篇文章主要介紹了springboot?如何添加webapp文件夾,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 基于spring boot實現(xiàn)一個全局異常處理器

    基于spring boot實現(xiàn)一個全局異常處理器

    在項目開發(fā)中,我們可以基于spring boot提供的切面特性,來很輕松的實現(xiàn)全局異常的處理,所以本文主要為大家介紹了如何基于spring boot實現(xiàn)一個全局異常處理器,有需要的可以參考下
    2023-09-09
  • Ubuntu16.04安裝部署solr7的圖文詳細教程

    Ubuntu16.04安裝部署solr7的圖文詳細教程

    這篇文章主要為大家詳細介紹了Ubuntu16.04安裝部署solr7的圖文詳細教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • java實現(xiàn)遠程桌面的實例代碼

    java實現(xiàn)遠程桌面的實例代碼

    下面小編就為大家分享一篇java實現(xiàn)遠程桌面的實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Java壓縮文件工具類ZipUtil使用方法代碼示例

    Java壓縮文件工具類ZipUtil使用方法代碼示例

    這篇文章主要介紹了Java壓縮文件工具類ZipUtil使用方法代碼示例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-11-11
  • Mybatis對mapper的加載流程深入講解

    Mybatis對mapper的加載流程深入講解

    這篇文章主要給大家介紹了關于Mybatis對mapper的加載流程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • MyBatis-Plus如何關閉SQL日志打印詳解

    MyBatis-Plus如何關閉SQL日志打印詳解

    在使用mybatisplus進行開發(fā)時,日志是一個非常有用的工具,它可以幫助我們更好地了解和調(diào)試我們的代碼,這篇文章主要給大家介紹了關于MyBatis-Plus如何關閉SQL日志打印的相關資料,需要的朋友可以參考下
    2024-03-03

最新評論