Java巧用Apache PDFBox:拆分原PDF第三页与第五页并组装成新文档
在Java中,你可以使用Apache PDFBox库来实现这个需求。以下是一个简单的示例代码: ```java import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; import java.io.File; import java.io.IOException; public class PdfSplitAndMerge { public static void main(String[] args) { try (PDDocument originalDocument = PDDocument.load(new File("original.pdf"))) { // 拆分PDF文件 PDPage page3 = originalDocument.getDocumentCatalog().getPages().get(2); PDPage page5 = originalDocument.getDocumentCatalog().getPages().get(4); // 创建新的PDF文档 PDDocument newDocument = new PDDocument(); // 将拆分出来的页面添加到新文档 newDocument.addPage(page3); newDocument.addPage(page5); // 保存新的PDF文件 newDocument.save("new.pdf"); System.out.println("New PDF created successfully."); } catch (IOException e) { System.err.println("Error occurred while splitting and merging the PDF: " + e.getMessage()); } } } ``` 在这个示例中,我们首先加载原始的PDF文件,然后获取并保存第三页(索引为2,因为Java数组索引是从0开始的)和第五页。接着创建一个新的PDF文档,并将这两页添加到新文档中。我们将新文档保存为"new.pdf"。 注意:在实际使用前,请确保已通过Maven或Gradle等工具引入Apache PDFBox依赖。 ```xml <!-- Maven --> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.24</version> </dependency> ``` ######[AI写代码神器 | 428点数解答 | 2024-02-19 09:17:46]
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)422
- PDF.js 动态导入模块失败:原因剖析与解决方案全揭秘(字节豆包 | 573点数解答 | 2025-07-30 16:04:03)140
- 解决 Java 中 HTTP 请求方法名含非法字符异常:示例与注意要点(阿里通义 | 321点数解答 | 2024-12-03 17:34:09)371
- 2025版PHP项目资料管理系统需求文档:全方位打造高效协作与安全存储平台 (字节豆包 | 1332点数解答 | 2025-07-18 10:36:24)162
- "Resolving 'Incompatible Types' Error with org.apache.pdfbox.pdmodel.pddocument"( | 372点数解答 | 2024-02-18 18:01:15)222
- 解决 Apache PDFBox 中 “incompatible types. found: 'org.apache.pdfbox.pdmodel.pddocument'” 报错的方法 ( | 274点数解答 | 2024-02-18 18:01:41)212
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)324
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1201
- 谷歌 2016 代码版权声明及 Apache 2.0 许可证解读(字节豆包 | 93点数解答 | 2024-11-11 19:53:55)256
- [ROIR 2016 Day 1]:揭秘 Petya 参赛获分对应奖品最大价值计算 (GPT | 389点数解答 | 2025-01-10 11:15:31)306
- "Java Code: Uncovering Stock Statistics through CSV File Reading"(字节豆包 | 66点数解答 | 2024-11-13 15:31:04)333
- Python实现简单文档内容查询:精准定位所需内容索引(GPT | 1189点数解答 | 2024-10-21 21:45:05)340