话不多说直接上代码:

package com.example.mq1.util;import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfDocumentBase;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfMargins;import java.awt.geom.Point2D;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;public class PDFUtil {/*** 合并指定的pdf* @param outFile* @param singlePdfNames* @throws Exception*/public static void pdfMerge(String outFile, String ...singlePdfNames) throws Exception {String outputFile = outFile;FileInputStream stream = null;InputStream[] streams = new InputStream[singlePdfNames.length];int index = 0; //非要这么用,就是玩for (String fileName : singlePdfNames){streams[index] = new FileInputStream(new File(fileName));index++;}//合并PDF文档PdfDocumentBase doc = PdfDocument.mergeFiles(streams);//保存文档doc.save(outputFile);doc.close();}/*** pdf按每页拆分* @param sourceFile* @param pageSplitNums* @param outputDir*/public void pdfSingleSplit(String sourceFile, Integer pageSplitNums, String outputDir){//加载文档PdfDocument doc = new PdfDocument();doc.loadFromFile(sourceFile);//调用方法split()拆分,每一页拆分成一个pdf文件doc.split(outputDir + "/splitDocument-{0}.pdf", 0);doc.close();}/*** pdf多页拆分* @param sourceFile 分割的源文件* @param pageSplitNums 以此参数指定的页数为间隔拆分*/public static void pdfMultiSplit(String sourceFile, Integer pageSplitNums, String outputDir){//加载需要拆分的PDF文档PdfDocument doc = new PdfDocument();doc.loadFromFile(sourceFile);//新建第1个PDF文档1PdfDocument newpdf1 = new PdfDocument();PdfPageBase page = null;int start = 0;int temp = start;while (true){try {if ((temp - start) == pageSplitNums){newpdf1.saveToFile(outputDir + "segment"+ start +".pdf");start = temp;newpdf1 = new PdfDocument();//新new一个空文档}page = newpdf1.getPages().add(doc.getPages().get(temp).getSize(), new PdfMargins(0));//越界时,由捕捉到异常处理doc.getPages().get(temp).createTemplate().draw(page, new Point2D.Float(0,0));temp ++;} catch (Exception e) {newpdf1.saveToFile(outputDir + "segment"+ start +".pdf");break;}}}
}

pom:

     <repositories><repository><id>com.e-iceblue</id><url>http://repo.e-iceblue.cn/repository/maven-public/</url></repository></repositories><dependency><groupId> e-iceblue </groupId><artifactId>spire.pdf</artifactId><version>3.11.6</version></dependency>

感觉还算实用的话,给个赞吧 ≥ω≤

java实现pdf的拆分和合并相关推荐

  1. JAVA学习路01——使用JAVA将“.txt”文件拆分、合并

    一段ToyCode,作用是将".txt"文件拆分并合并. package com.xxxxx; import java.io.BufferedInputStream; import ...

  2. PDF 补丁丁 (修改PDF书签;拆分、合并、制作PDF;提取图片) 0.3.0.8 正式版

    PDF 补丁丁 0.3.0.8 正式版 新版本已经发布,请到博客首页下载. 软件简介 PDF补丁丁是一个用于修改PDF文件信息的工具.它具有以下功能: ■ 修改文档(带"*"号部分 ...

  3. JAVA合并pdf,拆分pdf文档

    毕业材料整理的时候要合并pdf文档,把一些文档按页码拆分出来,我本来想用wps弄的,但是它要vip,就这?就vip?哼,身为一个计算机毕业的,这种小事与其再去网上找别的软件解决,不如自己代码解决.(其 ...

  4. 使用Apache PDFBox实现拆分、合并PDF

    文章目录 使用Apache PDFBox实现拆分.合并PDF 问题背景 Apache PDFBox介绍 拆分PDF 合并PDF 拆分 + 合并 完整代码 参考: 使用Apache PDFBox实现拆分 ...

  5. java生成pdf怎么合并行或者列_Java基础之PDF文件的合并

    1.首先下载一个jar包:pdfbox-app-1.7.1.jar 2.代码如下: package com; import java.io.File; import java.io.IOExcepti ...

  6. PDF文件拆分合并器PDF Merge PDF Splitter + Mac

    PDF Merge & PDF Splitter + Mac是专为Mac用户所提供的PDF文件拆分合并器,PDF Merge & PDF Splitter + Mac版能够为您将快速多 ...

  7. PDF怎么拆分/合并? 3款 PDF 拆分和合并工具分享

    以PDF格式传输文档已广泛使用很长时间,也是传输文档的最常见方式之一.但是,当涉及到从众多PDF文件中提取特定页面并将它们放在一起以制作新的PDF文档时,我们将需要专用软件来合并和拆分多个PDF. 现 ...

  8. java删减pdf内容合并_[Java教程]Java基础之PDF文件的合并

    [Java教程]Java基础之PDF文件的合并 0 2017-07-28 00:00:45 1.首先下载一个jar包:pdfbox-app-1.7.1.jar 2.代码如下:package com;i ...

  9. PDF文档免费合并拆分软件及操作说明

    PDF文档免费合并拆分软件及操作说明 一.下载PDFMergeSplit软件,点击下面的下载链接进行压缩包下载. 软件下载链接:点击打开链接进行花费csdn积分下载 二.下载完成之后,进行压缩包解压操 ...

  10. java操作PDF文件,可支持分页、合并、图片转PDF等

    java操作PDF,有一个很好用的工具--pdfbox.只需要引入依赖,即可使用. <dependency><groupId>org.apache.pdfbox</gro ...

最新文章

  1. ASP.NET 2.0应用程序安全强化纵览
  2. js深度解析url地址
  3. 老李分享:https协议
  4. 参数传值(数组赋值)
  5. 用PDB库调试Python程序
  6. FreeRTOS任务基础知识
  7. spring boot中 使用http请求
  8. java动态代理二cglib
  9. 睡眠音频分割及识别问题(一)
  10. Linux 下 Open××× 安装和 Windows Open××× GUI 安装笔记
  11. 2015年第46周五
  12. Unity Animator动画状态机 深入理解(一)
  13. 第八章 (二)贪心法
  14. deb官方源、国内源
  15. 多视图多行为对比学习推荐系统
  16. java 求和、差、乘、商
  17. “剧情+综艺” 助推国潮文化破圈
  18. Spring Cloud 升级之路 - 2020.0.x - 1. 背景知识、需求描述与公共依赖
  19. post请求或get请求通过url传递参数
  20. 前端基本功---JS数据类型知多少

热门文章

  1. jvm虚拟机及创建对象流程
  2. 计算机开机网络连接启动慢,四个小技巧轻松解决电脑开机后网络连接慢问题
  3. A problem occurred starting process 'command 'xxx
  4. 网络视频会议软件哪个好?欢迎大家补位!
  5. 多元线性回归:客户价值预测
  6. linux包含两种设备文件,在Linux系统中/dev的目录详解
  7. 最新架构amd服务器cpu,2015年或新变化?AMD将专注高性能架构
  8. 邮箱密码暴力破解器(代码)
  9. 大龄程序员都去哪了?
  10. 【cooper】深度学习入门:基于Python的理论与实现(鱼书)_个人读书笔记