Pdf轉Word案例(java)

Pdf轉Word案例(java)

需要導入aspose-pdf.jar 需要先手動下載jar包到本地,然后通過systemPath在pom文件中引入。

下載地址:https://releases.aspose.com/java/repo/com/aspose/aspose-pdf/25.4/

        <dependency><groupId>com.aspose</groupId><artifactId>aspose-pdf</artifactId><version>25.4</version><scope>system</scope><systemPath>C:/Users/aaa/Downloads/aspose-pdf-25.4.jar</systemPath></dependency>

主要功能總結

功能描述
PDF 創建與編輯創建、添加文本/圖像/表格等
格式轉換PDF ? Word/Excel/HTML/Image
合并與拆分合并多個 PDF 或按頁拆分
安全保護加密/解密、權限設置
表單處理動態表單字段的創建與填充
內容提取提取文本、圖像、元數據
高級操作水印、注釋、頁眉頁腳、壓縮優化

如果需要word轉pdf,需要使用aspose-words.jar包。


1. 創建 PDF 文件

import com.aspose.pdf.Document;
import com.aspose.pdf.Page;
import com.aspose.pdf.TextFragment;public class CreatePdf {public static void main(String[] args) {// 創建空 PDF 文檔Document doc = new Document();// 添加頁面Page page = doc.getPages().add();// 添加文本TextFragment text = new TextFragment("Hello, Aspose.PDF!");text.getTextState().setFontSize(14);page.getParagraphs().add(text);// 保存 PDFdoc.save("output.pdf");}
}

2. PDF 轉 Word (DOCX)

import com.aspose.pdf.Document;
import com.aspose.pdf.SaveFormat;public class PdfToWord {public static void main(String[] args) {Document doc = new Document("input.pdf");doc.save("output.docx", SaveFormat.DocX);}
}

3. PDF 轉 HTML

import com.aspose.pdf.Document;
import com.aspose.pdf.HtmlSaveOptions;
import com.aspose.pdf.SaveFormat;public class PdfToHtml {public static void main(String[] args) {Document doc = new Document("input.pdf");HtmlSaveOptions options = new HtmlSaveOptions();doc.save("output.html", options);}
}

4. PDF 轉圖像(PNG/JPEG)

import com.aspose.pdf.Document;
import com.aspose.pdf.devices.JpegDevice;
import com.aspose.pdf.devices.Resolution;public class PdfToImage {public static void main(String[] args) {Document doc = new Document("input.pdf");// 設置分辨率(300 dpi)Resolution resolution = new Resolution(300);JpegDevice device = new JpegDevice(resolution);// 將每一頁轉為 JPEGfor (int i = 1; i <= doc.getPages().size(); i++) {device.process(doc.getPages().get_Item(i), "page_" + i + ".jpg");}}
}

5. 合并多個 PDF 文件

import com.aspose.pdf.Document;
import com.aspose.pdf.facades.PdfFileEditor;public class MergePdf {public static void main(String[] args) {PdfFileEditor editor = new PdfFileEditor();// 合并兩個 PDF 文件editor.concatenate("input1.pdf", "input2.pdf", "merged.pdf");}
}

6. 拆分 PDF 文件

import com.aspose.pdf.facades.PdfFileEditor;public class SplitPdf {public static void main(String[] args) {PdfFileEditor editor = new PdfFileEditor();// 按頁碼拆分(例如:拆分前3頁)editor.extract("input.pdf", 1, 3, "split.pdf");}
}

7. 添加水印

import com.aspose.pdf.*;
import com.aspose.pdf.facades.WatermarkArtifact;public class AddWatermark {public static void main(String[] args) {Document doc = new Document("input.pdf");// 添加水印文本WatermarkArtifact watermark = new WatermarkArtifact();watermark.setText("Confidential");watermark.getTextState().setFontSize(48);watermark.getTextState().setFont(FontRepository.findFont("Arial"));watermark.setOpacity(0.5);// 添加到每一頁for (Page page : doc.getPages()) {page.getArtifacts().add(watermark);}doc.save("output.pdf");}
}

8. 加密/解密 PDF

import com.aspose.pdf.Document;
import com.aspose.pdf.facades.DocumentPrivilege;public class EncryptPdf {public static void main(String[] args) {Document doc = new Document("input.pdf");// 設置密碼和權限doc.encrypt("user_pass", "owner_pass", DocumentPrivilege.getPrint(), CryptoAlgorithm.AESx256);doc.save("encrypted.pdf");}
}

9. 提取 PDF 文本

import com.aspose.pdf.Document;
import com.aspose.pdf.TextAbsorber;public class ExtractText {public static void main(String[] args) {Document doc = new Document("input.pdf");TextAbsorber absorber = new TextAbsorber();// 提取所有頁面文本doc.getPages().accept(absorber);String extractedText = absorber.getText();System.out.println(extractedText);}
}

10. 添加表單字段

import com.aspose.pdf.*;public class AddFormField {public static void main(String[] args) {Document doc = new Document();Page page = doc.getPages().add();// 添加文本框TextBoxField textBox = new TextBoxField(page, new Rectangle(100, 600, 200, 650));textBox.setPartialName("text_field");textBox.setValue("Default Text");doc.getForm().add(textBox);doc.save("form.pdf");}
}

11. 添加頁眉/頁腳

import com.aspose.pdf.*;public class AddHeaderFooter {public static void main(String[] args) {Document doc = new Document("input.pdf");// 添加頁眉TextFragment header = new TextFragment("Header Text");header.getTextState().setFontSize(12);header.setHorizontalAlignment(HorizontalAlignment.Center);// 添加到每一頁for (Page page : doc.getPages()) {page.getParagraphs().add(header);}doc.save("output.pdf");}
}

12. 壓縮 PDF

import com.aspose.pdf.Document;
import com.aspose.pdf.optimization.OptimizationOptions;public class CompressPdf {public static void main(String[] args) {Document doc = new Document("input.pdf");OptimizationOptions options = new OptimizationOptions();options.setRemoveUnusedObjects(true);options.setLinkDuplcateStreams(true);doc.optimizeResources(options);doc.save("compressed.pdf");}
}

13. 處理 PDF 注釋

import com.aspose.pdf.*;public class AddAnnotation {public static void main(String[] args) {Document doc = new Document();Page page = doc.getPages().add();// 添加高亮注釋HighlightAnnotation highlight = new HighlightAnnotation(page, new Rectangle(100, 600, 200, 650));highlight.setTitle("Important Note");highlight.setColor(Color.getYellow());page.getAnnotations().add(highlight);doc.save("annotated.pdf");}
}

注意事項

  1. 許可證:未應用許可證時,生成的文件會包含評估水印。通過以下代碼激活:

    com.aspose.pdf.License license = new com.aspose.pdf.License();
    license.setLicense("Aspose.PDF.Java.lic");
    
  2. 依賴管理:建議通過 Maven/Gradle 管理依賴,確保使用最新版本。

  3. 文檔參考:完整 API 文檔見 Aspose.PDF for Java Documentation。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/78822.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/78822.shtml
英文地址,請注明出處:http://en.pswp.cn/web/78822.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

探索 C++ 語言標準演進:從 C++23 到 C++26 的飛躍

引言 C 作為一門歷史悠久且廣泛應用的編程語言&#xff0c;其每一次標準的演進都備受開發者關注。從早期的 C98 到如今的 C23&#xff0c;再到令人期待的 C26&#xff0c;每一個版本都為開發者帶來了新的特性和改進&#xff0c;推動著軟件開發的不斷進步。本文將深入探討 C23 …

如何有效防御服務器DDoS攻擊

分布式拒絕服務&#xff08;DDoS&#xff09;攻擊通過大量惡意流量淹沒服務器資源&#xff0c;導致服務癱瘓。本文將提供一套結合代碼實現的主動防御方案&#xff0c;涵蓋流量監控、自動化攔截和基礎設施優化。 1. 實時流量監控與告警 目標&#xff1a;檢測異常流量并觸發告警…

【Bootstrap V4系列】學習入門教程之 組件-折疊(Collapse)

Bootstrap V4系列 學習入門教程之 組件-折疊&#xff08;Collapse&#xff09; 折疊&#xff08;Collapse&#xff09;How it works一、Example二、Horizontal 水平的三、Multiple targets 多個目標四、Accordion example 手風琴示例 折疊&#xff08;Collapse&#xff09; 通…

C24-數組

數組的引入:方便對同一類型的數據進行管理(一個班級里的45個同學、一個籃子里的12個蘋果)數組的定義: 數據類型 數組名[常量表達式(也就是元素的個數)];int a[10]; //這里定義了一個能存放10個元素的整形數組數組初始化 完全初始化 int arr[3]{5,6,8};部分初始化 int arr[10]{…

手持小風扇方案解說---【其利天下技術】

春去夏來&#xff0c;酷暑時節&#xff0c;小風扇成為外出必備的解暑工具&#xff0c;近年來&#xff0c;隨著無刷電機的成本急劇下降&#xff0c;小風扇也逐步從有刷變無刷化了。 數量最大的如一箱無刷馬達&#xff0c;其次三相低壓無刷電機也大量被一些中高端風扇大量采用。…

C++函數棧幀詳解

函數棧幀的創建和銷毀 在不同的編譯器下&#xff0c;函數調用過程中棧幀的創建是略有差異的&#xff0c;具體取決于編譯器的實現&#xff01; 且需要注意的是&#xff0c;越高級的編譯器越不容易觀察到函數棧幀的內部的實現&#xff1b; 關于函數棧幀的維護這里我們要重點介…

CPU-GPU-NPU-TPU 概念

1.CPU 中央處理器&#xff08;Central Processing Unit&#xff0c;簡稱CPU&#xff09;作為計算機系統的運算和控制核心&#xff0c;是信息處理、程序運行的最終執行單元。CPU自產生以來&#xff0c;在邏輯結構、運行效率以及功能外延上取得了巨大發展。 2.GPU GPU&#xff0…

Java學習手冊:ORM 框架性能優化

一、優化實體類設計 減少實體類屬性 &#xff1a;僅保留必要的字段&#xff0c;避免持久化過多數據。例如&#xff0c;對于一個用戶實體類&#xff0c;如果某些信息&#xff08;如詳細地址&#xff09;不是經常使用&#xff0c;可以將其拆分到單獨的實體類中。使用合適的數據類…

XMP-Toolkit-SDK 編譯與示例程序

一、前言 最近在調研圖片的元數據讀寫方案&#xff0c;需要了解 XMP 空間以及如何在 XMP 空間中讀寫元數據&#xff0c;本文做一個相關內容的記錄。 XMP-Toolkit-SDK 以及 XMP標準簡介 XMP-Toolkit-SDK 是 Adobe 提供的一套開源軟件開發工具包&#xff08;SDK&#xff09;&a…

計算機硬件(南橋):主板芯片組FCH和PCH的區別

在計算機主板設計中&#xff0c;FCH&#xff08;Fusion Controller Hub&#xff09;和PCH&#xff08;Platform Controller Hub&#xff09;分別是AMD和Intel對主板芯片組中“南橋”&#xff08;Southbridge&#xff09;部分的命名。盡管兩者功能相似&#xff0c;但受不同廠商架…

數據庫系統概論-基礎理論

數據庫系統概述&#xff1a; 1、記錄&#xff1a;計算機中表示和存儲數據的一種格式或方法。 2、數據庫&#xff08;DataBase, DB&#xff09;&#xff1a;數據庫是長期儲存在計算機內、有組織、可共享的大量數據集合。可為各種用戶共享。 3、數據庫管理系統&#xff08;Dat…

在 R 中,清除包含 NA(缺失值)的數據

在 R 中&#xff0c;清除包含 NA&#xff08;缺失值&#xff09;的數據可以通過多種方式實現&#xff0c;具體取決于你希望如何處理這些缺失值。以下是幾種常見的方法&#xff0c;包括刪除包含 NA 的行、刪除包含 NA 的列&#xff0c;或者用特定值填充 NA。 1. 刪除包含 NA 的…

晶體布局布線

1Clock時鐘電路 時鐘電路就是類似像時鐘一樣準確運動的震蕩電路&#xff0c;任何工作都是依照時間順序&#xff0c;那么產生這個時間的電路就是時鐘電路&#xff0c;時鐘電路一般是由晶體振蕩器、晶振、控制芯片以及匹配電容組成 2.時鐘電路布局 晶體電路布局需要優先考慮&…

機器學習之嵌入(Embeddings):從理論到實踐

機器學習之嵌入(Embeddings)&#xff1a;從理論到實踐 摘要 本文深入探討了機器學習中嵌入(Embeddings)的概念和應用。通過具體的實例和可視化展示&#xff0c;我們將了解嵌入如何將高維數據轉換為低維表示&#xff0c;以及這種轉換在推薦系統、自然語言處理等領域的實際應用…

Python初學者筆記第九期 -- (列表相關操作及列表編程練習題)

第17節課 列表相關操作 無論是內置函數、對象函數&#xff0c;用起來確實很方便&#xff0c;但是作為初學者&#xff0c;你必須懂得它們背后的運行邏輯&#xff01; 1 常規操作 &#xff08;1&#xff09;遍歷 arr [1,2,3,4] # 以索引遍歷:可以在遍歷期間修改元素 for ind…

云計算與大數據進階 | 25、可擴展系統構建

在進入這個進階版系列之前&#xff0c;讓我們先回顧一下云計算與大數據系統的基本設計原則&#xff0c;總結起來有如下幾條&#xff1a; (1)基礎架構&#xff1a;更多采用商品現貨硬件&#xff08;如PC架構&#xff09;?&#xff0c;而很少使用定制化高端&#xff08;如小型主…

C——函數遞歸

在 C 語言里&#xff0c;函數遞歸是一種函數調用自身的編程技術。下面開始逐一介紹。 一、什么是遞歸&#xff1f; 遞歸其實是?種解決問題的?法&#xff0c;在C語?中&#xff0c;遞歸就是函數??調???。 寫?個史上最簡單的C語?遞歸代碼&#xff1a; #include <st…

IdeaVim配置指南

一、什么是 IdeaVim&#xff1f; IdeaVim 是 JetBrains 系列 IDE&#xff08;如 IntelliJ IDEA, WebStorm, PyCharm 等&#xff09;中的一個插件&#xff0c;讓你在 IDE 里使用 Vim 的按鍵習慣&#xff0c;大大提升效率。 安裝方法&#xff1a; 在 IDE 中打開 設置(Settings) →…

Notepad++中XML格式化插件介紹

Notepad++中XML格式化插件介紹 背景安裝指南安裝步驟驗證安裝成功安裝失敗可嘗試使用說明XML文件格式正確時格式化錯誤格式檢查XML Tools插件核心功能盤點常見問題格式化后沒變化中文顯示亂碼拯救雜亂XML格式!Notepad++這個神器插件,必須接收!背景 接手別人寫的XML,縮進亂成…

自動化創業機器人:現狀、挑戰與Y Combinator的啟示

自動化創業機器人&#xff1a;現狀、挑戰與Y Combinator的啟示 前言 AI驅動的自動化創業機器人&#xff0c;正逐步從科幻走向現實。我們設想的未來是&#xff1a;商業分析、PRD、系統設計、代碼實現、測試、運營&#xff0c;全部可以在monorepo中由AI和人類Co-founder協作完成…