1. 将2个pdf 文档合并成一个

<dependency><groupId>com.itextpdf</groupId><artifactId>itext7-core</artifactId><version>7.1.16</version><type>pom</type>
</dependency>
public class CE06E04Combine {private static final String FILE_NAME1 = "src/main/resources/pdf/A.pdf";private static final String FILE_NAME2 = "src/main/resources/pdf/B.pdf";private static final String DEST = "results/chapter06/AB.pdf";public static void main(String[] args) throws IOException {CE06E04Combine ce06E04Combine = new CE06E04Combine();ce06E04Combine.combinePDF(FILE_NAME1, FILE_NAME2,DEST);//ce06E04Combine.combinePDF(FILE_NAME1, FILE_NAME2);}/*** 合并2个文档* @param fileName1* @param fileName2* @return*/private void combinePDF(String fileName1,String fileName2){String desFileName = new File(fileName1).getParentFile().getAbsolutePath()+"/" + UUID.randomUUID()+".pdf";combinePDF(fileName1,fileName2,desFileName);}private void combinePDF(String fileName1, String fileName2, String desFileName)  {PdfDocument pdf = null;try {pdf = new PdfDocument(new PdfWriter(desFileName));} catch (FileNotFoundException e) {e.printStackTrace();}//定义合并文档PdfMerger merger = new PdfMerger(pdf);//添加第一个文档PdfDocument firstSourcePdf = null;try {firstSourcePdf = new PdfDocument(new PdfReader(fileName1));} catch (IOException e) {e.printStackTrace();}merger.merge(firstSourcePdf, 1, firstSourcePdf.getNumberOfPages());//添加第二个文档PdfDocument secondSourcePdf = null;try {secondSourcePdf = new PdfDocument(new PdfReader(fileName2));} catch (IOException e) {e.printStackTrace();}merger.merge(secondSourcePdf, 1, secondSourcePdf.getNumberOfPages());// 合并并关闭merger.close();firstSourcePdf.close();secondSourcePdf.close();pdf.close();}
}

2. 分割文件

public class CE06E04Spliter {//要分割的文件private static final String FILE_NAME = "src/main/resources/pdf/English Grammar in Use.pdf";//分割文件存放的位置private static final String DEST = "results/chapter06/";public static void main(String[] args) throws IOException {CE06E04Spliter ce06E04Spliter = new CE06E04Spliter();ce06E04Spliter.pdfSplitter(FILE_NAME,10,DEST);// ce06E04Spliter.pdfSplitter(FILE_NAME,30);//ce06E04Spliter.pdfSplitter(FILE_NAME,1,20);}/*** 在指定目录等分pdf* @param fileName  要分割的文档* @param pageNum   分割尺寸* @param desDir    分割后存储路径* @throws IOException*/private void pdfSplitter(String fileName,Integer pageNum,String desDir) throws IOException {PdfReader pdfReader = new PdfReader(fileName);PdfDocument pdf = new PdfDocument(pdfReader);String name;PdfWriter pdfWriter=null;PdfDocument pdfWriterDoc = null;for (int i = 1; i <= pdf.getNumberOfPages() ; i +=  pageNum) {name = desDir+"/"+i+".pdf";pdfWriter = new PdfWriter(name);pdfWriterDoc = new PdfDocument(pdfWriter);int start = i;int end = Math.min((start + pageNum-1), pdf.getNumberOfPages());//从页数第一页开始,pdf.copyPagesTo(start,end,pdfWriterDoc);pdfWriterDoc.close();pdfWriter.close();}//关闭pdf.close();pdfReader.close();}/*** 分割文档,分割后文仔默认存储在原来的文档路径下。* @param fileName* @param pageNum* @throws IOException*/private void pdfSplitter(String  fileName,Integer pageNum) throws IOException {String desDir = new File(fileName).getParentFile().getAbsolutePath();pdfSplitter(fileName,pageNum,desDir);}/*** 返回自定义片段大小的文件,UUID名称命名。* @param fileName* @param startPage* @param endPage* @throws IOException*/public void pdfSplitter(String fileName,int startPage, int endPage) throws IOException {//源文档PdfReader pdfReader = new PdfReader(fileName);PdfDocument pdf = new PdfDocument(pdfReader);//目标文档名String desDir = new File(fileName).getParentFile().getAbsolutePath()+"/"+UUID.randomUUID().toString()+".pdf";//生成目标文档PdfWriter pdfWriter = new PdfWriter(desDir);PdfDocument outPdfDocument = new PdfDocument(pdfWriter);//从页数第一页开始,pdf.copyPagesTo(startPage,endPage,outPdfDocument);//关闭outPdfDocument.close();pdfWriter.close();pdf.close();pdfReader.close();}
}

下一步研究一下PDF 转word。

再也不用怕文档太大太占内存了。

ITEXT7 实现 PDF文档的合并与拆分相关推荐

  1. 如何在线将多个PDF文档进行合并

    在日常办公中,很多时候需要进行PDF文档的合并,那么你知道可以在线免费进行处理吗?下面小编就把具体的处理方式分享给大家,希望对大家有所帮助. 1.首先在线浏览器中找到speedpdf的在线官网网址,并 ...

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

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

  3. 两个pdf文档怎么合并在一起

    两个pdf文档怎么合并在一起? 无论我们使用什么样的文件格式,如果所接触到的文件特别多的话,都要考虑将文件合并之后继续使用,这样有助于我们保存和传输.通常来讲我们在合并文件的时候,直接利用复制粘贴的方 ...

  4. 如何批量将多个 PDF 文档快速合并成一个文档

    概要:「我的ABC软件工具箱」提供了文档合并的功能,其中就包括了 PDF 拆分成单个文件.我们可以根据需要将文件夹中的多个 PDF 文档按照一定的顺序进行合并,这样可以把多个 PDF 文档整合形成一个 ...

  5. 使用IText7 生成PDF文档

    itext7 生成pdf操作过于复杂,特别是封面.目录页码以及页眉页脚的处理需要基于事件处理,因此写了个简单的类库用于简化操作,只用关注文档内容的构建而无需关注其他: 代码地址: https://gi ...

  6. .net中使用iText7合并pdf文档

    iText7 是 iText 强大的 PDF 工具包的最新版本,用于 PDF 生成.PDF 编程.处理和操作,以下是在.net中使用iText7实现pdf文档合并的简单过程: 添加NuGet包引用:添 ...

  7. java pdf合并_Java 合并、拆分PDF文档

    本文将介绍如何在Java程序中合并及拆分PDF文档,合并文档时,包括合并多个不同PDF文档为一个文档,以及合并PDF文档的不同页面为一页:拆分文档是,包括将PDF文档按每一页拆分,以及按指定页数范围来 ...

  8. 万彩办公大师多页PDF文档去掉空白部分合并到同一页

    前置条件:下载万彩办公大师. 方法如下: 1.先使用"PDF页面分割"工具将PDF的每一个页面的空白部分通过分割线选中分割出来,保存为"文档1".(分割之后空白 ...

  9. Latex提取与合并pdf文档(超实用)

    参考链接:LATEX合并PDF https://blog.csdn.net/feixingfei/article/details/78557025 LaTeX 提取,合并多个pdf页 https:// ...

  10. [.NET开发] C# 合并、拆分PDF文档

    在整理文件时,将多个同类型文档合并是实现文档归类的有效方法,也便于文档管理或者文档传输.当然,也可以对一些比较大的文件进行拆分来获取自己想要的部分文档.可以任意地对文档进行合并.拆分无疑为我们了提供极 ...

最新文章

  1. GARFIELD@04-09-2005
  2. 实现根据条件删除_Vue源码解析,keep-alive是如何实现缓存的?
  3. python编程入门第一课_python入门前的第一课 python怎样入门
  4. 五分钟轻松了解Hbase面向列的存储
  5. Vue 3.0暂缓发布,前端同学暂时舒了一口气
  6. 90后美女大学生,年薪30W的程序员,他们都决定去送外卖了!
  7. JavaZone年度大片《Java打劫》《Java风云》《Lady Java》《Java惊魂》
  8. nginx日志采集 mysql_shell + go + mysql nginx日志统计 (三) :数据的展示
  9. 关于单反相机中的APS-C
  10. android圆盘布局,Android绘制圆盘控件
  11. unity2018设置雾在哪_【zSpace实操】Unity2018发布设置
  12. 微信公众号运营都有哪些渠道,来提升公众号的粉丝量
  13. 停车还能360全方位影像_辅助停车,新手司机就选360全景吧!
  14. 基于python的2048游戏设计_用python写一个2048游戏
  15. mc服务器怎么传送到我位置,我的世界联机怎么传送到队友身边_我的世界联机怎么传送到队友位置哪里身边手机版_攻略...
  16. 单细胞分析可视化工具盘点
  17. 衢州学院的计算机专业是本科还是专科,浙江本科对比:选择衢州学院还是温州大学好?...
  18. 扣扣机器人唱歌_qq小冰唱歌指令下载-qq小冰唱歌关键词软件下载v6.7.1 安卓版-腾牛安卓网...
  19. wmts规范_【总结整理】WMS、WMTS、WFS
  20. 找不到引道分区_如何把丢失的数据找回来

热门文章

  1. 【蚂蚁链学习2】蚂蚁链智能合约初级语法(数组、结构体、散列函数、事件)
  2. linux实用技巧:ubuntu18.04安装配置ibus中文输入法
  3. 联想拯救者Legion Y7000P 2020款ubuntu20.04安装ros noetic与bloom-generate打包ros noetic为deb软件包
  4. nacos指定外网ip
  5. 【odoo】odoo使用阿里邮箱配置邮件系统
  6. PHP中一个好玩的性别判断扩展
  7. flink-metric原理与实战
  8. Java使用Spire.Doc实现Word转换Pdf
  9. property 的详细使用方法
  10. InstallShield Limited Edition Project下载及进行打包发布汇总