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

Java拆分及合并pdf文件

Java拆分及合并pdf文件

      • 一、引入spring boot依赖
      • 二、工具类
      • 三、拆分pdf文件指定开始页到结束页
      • 四、Java实现将两个pdf文件合并成一个文件

一、引入spring boot依赖

        <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.24</version></dependency>

二、工具类

import org.apache.pdfbox.multipdf.PDFMergerUtility;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;import java.io.File;
import java.io.IOException;public class PDFSplitter {public static void splitPDF(String inputPath, String outputPath, int fromPage, int toPage) throws IOException {try (PDDocument document = PDDocument.load(new File(inputPath))) {if (document.isEncrypted()) {throw new IOException("文档已加密,无法进行拆分。");}for (int i = fromPage - 1; i < toPage; i++) {PDPage page = document.getPage(i);PDDocument outputDocument = new PDDocument();outputDocument.addPage(page);String outputFile = outputPath + "page-" + (i + 1) + ".pdf";outputDocument.save(outputFile);outputDocument.close();}}}// 拆分pdf文件,从fromPage到toPage页,public static void splitPDF1(String inputPath, String outputPath, int fromPage, int toPage) throws IOException {try (PDDocument document = PDDocument.load(new File(inputPath))) {if (document.isEncrypted()) {throw new IOException("文档已加密,无法进行拆分。");}PDDocument outputDocument = new PDDocument();for (int i = fromPage - 1; i < toPage; i++) {PDPage page = document.getPage(i);outputDocument.addPage(page);}String outputFile = outputPath + "page" + fromPage + "-" + toPage + ".pdf";outputDocument.save(outputFile);outputDocument.close();}}// 将两个pdf文件,合并成一个pdf文件public static void mergePDF(String file1, String file2, String outputPath) {// 创建 PDFMergerUtility 实例PDFMergerUtility pdfMerger = new PDFMergerUtility();// 设置合并后的PDF文件的输出路径pdfMerger.setDestinationFileName(outputPath + "merge.pdf");// 添加要合并的PDF文件try {pdfMerger.addSource(new File(file1));pdfMerger.addSource(new File(file2));// 合并文档pdfMerger.mergeDocuments(null);} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) {try {splitPDF1("D:\\2.要你命2000合集.pdf", "D:\\新建文件夹\\", 1, 99); // 拆分从第1页到第3页的PDF// mergePDF("D:\\新建文件夹\\page1-300.pdf", "D:\\新建文件夹\\page99-300.pdf", "D:\\新建文件夹\\");} catch (IOException e) {e.printStackTrace();}}
}

三、拆分pdf文件指定开始页到结束页

将指定文件只想拆分出1-300页,如图该文件共有722页
在这里插入图片描述
但只想要前300页,则调用工具类中的splitPDF1方法,则拆分得到了page1-300.pdf文件,文件内容无误
在这里插入图片描述

	public static void main(String[] args) {try {splitPDF1("D:\\2.要你命2000合集.pdf", "D:\\新建文件夹\\", 1, 99); // 拆分从第1页到第3页的PDF} catch (IOException e) {e.printStackTrace();}}

四、Java实现将两个pdf文件合并成一个文件

如图目录中有两个文件,目前想将这两个文件合并成一个文件,调用工具类里的mergePDF方法,会生成一个merge.pdf文件
在这里插入图片描述
在这里插入图片描述

	public static void main(String[] args) {mergePDF("D:\\新建文件夹\\page1-300.pdf", "D:\\新建文件夹\\page99-300.pdf", "D:\\新建文件夹\\");}
http://www.dtcms.com/a/554441.html

相关文章:

  • 免费网站收录学服装设计有前途吗
  • 手机怎么建立网站瑞安微信网站
  • 网站建设多少钱一个平台网站开发建设哪家好
  • 猜数字游戏
  • html5 手机网站 图标ui是什么意思
  • 中国建设人才信息网站官网网络推广策略概念
  • VSCode插件开发实战:从零到发布的技术大纲
  • 做旅游网站能成功网页设计图片素材关于设计
  • 如何自己建网站中牟县建设局网站
  • 网站建设描述怎么写高级网页设计师证
  • 华为云iot mqtt 异常停止消费
  • go-mysql-transfer 伪装从库实现 MySQL 到 Redis 数据同步(完整配置)
  • 重庆做网站建设哪家好destoon 手机网站模板
  • 自己建的网站能赚钱吗小程序定制开发解决方案
  • 论文笔记(九十七)PhysiAgent: An Embodied Agent Framework in Physical World
  • 4个可落地执行方法,深挖用户需求!
  • unity DoTween DoPath设置物体按照指定轨迹运动
  • 成都网站开发建设公司在网站加上一个模块怎么做
  • 企业网站开发服务器世界建设企业网站
  • 【VLNs篇】13:JanusVLN 数据说明
  • 打印机共享维护工具
  • 做钢管的去什么网站发信息wordpress插件选项
  • 【RPA教学】E-mail
  • 郑州网站设计 品牌 视觉中国教育建设协会网站
  • 过年做啥网站致富加强网站制度建设
  • 网站打不开 其它能打开怎么做网站 新手做网站
  • 记录:用proxy解决前后端跨域限制问题
  • ps如何做网站横幅网站seo优化多少钱
  • 构建AI智能体:八十、SVD知识整理与降维:从数据混沌到语义秩序的智能转换
  • 【Docker Desktop+wsl+Hyper-V】下载与安装(Windows系统Docker环境)