问题场景

用itext写PDF,在加目录(可以参考我的文章)的过程当中遇到PDF的拆分与合并,记录下。

CODE

需要导入的包:itext-pdfa-5.5.6.jar、itext-xtra-5.5.6.jar、itext-5.5.6.jar、itext-asian.jar

package itext.contents;import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfCopy;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;import java.io.FileOutputStream;
import java.io.IOException;/*** Created on 2017/8/23* Author: youxingyang.*/
public class TestSplitAndMergePdf {/*** 复制pdf文档* @param sourceFile 源文件* @param targetFile 目标文件* @param ranges   复制规则     "1-7"表示复制1到7页、"8-"表示复制从第八页之后到文档末尾*/public static void copyPdf(String sourceFile ,String targetFile, String ranges)throws Exception{PdfReader pdfReader = new PdfReader(sourceFile);PdfStamper pdfStamper = new PdfStamper(pdfReader , new FileOutputStream(targetFile));pdfReader.selectPages(ranges);pdfStamper.close();}/*** 多个PDF合并功能* @param files     多个PDF的路径* @param savePath  生成的新PDF绝对路径*/public static void mergePdfFiles(String[] files, String savePath)  {if (files.length > 0) {try {Document document = new Document(new PdfReader(files[0]).getPageSize(1));PdfCopy copy = new PdfCopy(document, new FileOutputStream(savePath));document.open();for (String file : files) {PdfReader reader = new PdfReader(file);int n = reader.getNumberOfPages();for (int j = 1; j <= n; j++) {document.newPage();PdfImportedPage page = copy.getImportedPage(reader, j);copy.addPage(page);}}document.close();} catch (IOException | DocumentException e) {e.printStackTrace();}}}public static void main(String[] args) throws Exception {String sourceFile = "E://TESTPDF/2016-08-24.pdf";String targetFile = "E://TESTPDF/2016-08-24-part1.pdf";String targetFile1 = "E://TESTPDF/2016-08-24-part2.pdf";copyPdf(sourceFile, targetFile, "1-10");copyPdf(sourceFile, targetFile1, "11-");String[] files = {targetFile, "E://TESTPDF/contents.pdf", targetFile1};mergePdfFiles(files, "E://TESTPDF/2016-08-24-Add.pdf");}
}

ITEXT PDF文件的拆分与合并相关推荐

  1. shell换行合并多个文件_如何合并多个pdf文件?这里有合并PDF最简单的方法

    如何合并多个pdf文件?今天在整理一些PDF文件的时候,由于文件的数量比较多,我就想着将这些PDF文件合并起来,好在平时也了解了一些PDF合并的方法,很快就完成了文件的合并.想到应该还有很多朋友还不知 ...

  2. PDF文件怎么拆分?看完就会了!

    pdf是咱们办公党十分熟悉的一种文件格式了吧,相信咱们都和它打过交道.在平时的工作交接中,我们总是需要将这些文件发送给客户或者同事.只是在发送的时候,我们也会常常遇到一些问题,那就是文件太大了发送不过 ...

  3. 实用常识 | 将PDF文件页面拆分成两个页面(老白嫖怪了)

    续<实用常识 | 分享一个好用的插件解决浏览器图片下载问题(老白嫖怪了)> 正值Yi情肆虐于我燕赵大地,时至年关Bing毒多处零散爆发.老弟今年12岁整,本命年,恰是小升初的关键时刻,学校 ...

  4. PDF编辑器哪个好,PDF文件怎么拆分成多个PDF

    我们现在使用的PDF文件都是有好几页构成的,但是当我们需要不同范围的PDF文件的时候应该怎么办呢,小伙伴们都知道PDF文件的编辑是需要PDF编辑器的,那么PDF编辑器哪个好呢,小编就以小编使用的一款编 ...

  5. 使用PHP将pdf文件和图片进行合并

    在laravel框架下开发,laravel版本为: artisan --version Laravel Framework 5.5.40 使用composer安装fpdf和fpdi的扩展,先在comp ...

  6. pdf文件在线拆分如何拆分?

    PDF文件有时会很大,我们就会拆分,PDF文件在线拆分如何拆分?拆分能很好地保留一些文件,质量还是一样,所以在线拆分是很好的方法. 1在百度中去搜索关键词迅捷pdf在线转换器,然后开始分割 2进入后, ...

  7. PDF文件怎么拆分?分享一个好用的拆分方法

    怎么把PDF文件拆分开来使用呢?PDF文件大家在日常中的使用需求还是挺大的,因为我们一般的传输文件都会是这种格式的文件,当然了,PDF文件不仅是只用来传输文件,还可以很好的阅读浏览,当我们使用一个内容 ...

  8. Ubuntu下命令行方式对PDF文件进行缩放、合并、拆分

    安装软件: sudo aptitude install ghostscript 然后执行命令: gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibili ...

  9. java代码实现pdf按页拆分以及合并

    1 配置pom文件 我用的是5.4.3的版本 <dependency><groupId>com.itextpdf</groupId><artifactId&g ...

  10. python 知乎 合并 pdf_实例4:用Python提取不同PDF文件中的页面合并进新的PDF文件...

    公司船务部一个重要任务就是需要准备每单货物的发票,从系统导出发票时是默认存为一个PDF文档,在打印的时候,有多少个文件,就需要点多少次"打印".如果能够将当天的发票PDF档合并在一 ...

最新文章

  1. Nature Plants:根系微生物可以远程提高植物应对地上部环境胁迫的能力
  2. 最新调查:等这一波COBOL程序员退休,很多关键岗位就后继无人了
  3. 飞机大战boss入场代码_他又来了,BOSS直聘和国足谁先出线卡塔尔?
  4. 扫描仪图标无法显示计算机,win7“我的电脑”中不显示扫描仪和摄像头的原因和解决方法...
  5. 据中心水冷系统备品备件管理新思路
  6. GO语言的进阶之路-Golang高级数据结构定义
  7. linux中,一个目录的权限是777,普通用户为什么删除不了它呢?
  8. docker 部署Gitlab
  9. 技术篇-HBase Coprocessor 的实现与应用
  10. sql语句聚合等疑难问题收集
  11. 等保二级和等保三级的区别
  12. 蓝牙协议分析工具Wireshark/Frontline/Ellisys的使用
  13. 阿里云短信API使用
  14. dilated conv的理解
  15. 关于用户表空间配额的问题
  16. Ubuntu 20.04换国内源 清华源 阿里源 中科大源 163源
  17. 人类第一张黑洞照片背后的功臣,竟然是她!
  18. Intellij IDEA File Cache Conflict
  19. 真的是神坑啊,Eureka服务无法注册的问题
  20. 微信扫码提示在浏览器中打开的遮罩代码解决方式

热门文章

  1. 基于Java spring的实验室设备管理系统的设计与实现
  2. 怎么彻底卸载cad2017_cad2017没卸载干净怎么办?
  3. tomcat 官网下载
  4. [linux]linux mint zsh安装和配置
  5. 2020全国各地男女身高排行出炉,从数据看南北差异到底有多大?
  6. Y的十年职业生涯小结(2012-2022)
  7. 2022-2027年中国暖气片行业市场全景评估及发展战略规划报告
  8. linux默认的分区是fat,linux下开机自动挂载FAT分区
  9. Ai实现毛茸茸的字体
  10. 2020十大高薪岗位出炉,程序员霸榜