当前位置: 首页 > news >正文

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.xdnf.cn/news/319375.html

相关文章:

  • 【笔记】当个自由的书籍收集者从canvas得到png转pdf
  • Docker编排工具---Compose的概述及使用
  • SSA-CNN+NSGAII+熵权TOPSIS,附相关气泡图!
  • 面试高频算法:最长回文子串
  • Webug4.0靶场通关笔记19- 第24关邮箱轰炸
  • 《Python星球日记》 第42天:综合练习与数学建模
  • MVCC机制
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】7.3 动态报表生成(Jupyter Notebook/ReportLab)
  • 面试题 03.06 动物收容所
  • 如何高效实现「LeetCode25. K 个一组翻转链表」?Java 详细解决方案
  • SENSE2020BSI sCMOS科学级相机主要参数及应用场景
  • Azure OpenAI 聊天功能全解析:Java 开发者指南
  • 本地部署 MySQL + Qwen3-1.5B + Flask + Dify 工作流
  • 滑动窗口——长度最小子数组
  • var、let、const的区别
  • 高并发内存池(一):项目简介+定长内存池的实现
  • ACE-Step - 20秒生成4分钟完整歌曲,音乐界的Stable Diffusion,支持50系显卡 本地一键整合包下载
  • MySQL 8.0 OCP(1Z0-908)英文题库(1-10)
  • PyTorch常用命令(可快速上手PyTorch的核心功能,涵盖从数据预处理到模型训练的全流程)
  • 【RabbitMQ可靠性原理】
  • 亚远景-ASPICE vs ISO 21434:汽车软件开发标准的深度对比
  • YOLOv8的Python基础--函数篇2
  • WordPress:Locoy.php火车头采集
  • 【HTTP】《HTTP 全原理解析:从请求到响应的奇妙之旅》
  • 【MongoDB篇】MongoDB的副本集操作!
  • 数据清洗-电商双11美妆数据分析(二)
  • 5G赋能农业物联网:智能化种植的新纪元
  • JavaWeb:MySQL进阶
  • 趣味编程:梦幻万花筒
  • DBa作业