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");}
}
注意事項
-
許可證:未應用許可證時,生成的文件會包含評估水印。通過以下代碼激活:
com.aspose.pdf.License license = new com.aspose.pdf.License(); license.setLicense("Aspose.PDF.Java.lic");
-
依賴管理:建議通過 Maven/Gradle 管理依賴,確保使用最新版本。
-
文檔參考:完整 API 文檔見 Aspose.PDF for Java Documentation。