ITEXT PDF文件的拆分与合并
问题场景
用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文件的拆分与合并相关推荐
- shell换行合并多个文件_如何合并多个pdf文件?这里有合并PDF最简单的方法
如何合并多个pdf文件?今天在整理一些PDF文件的时候,由于文件的数量比较多,我就想着将这些PDF文件合并起来,好在平时也了解了一些PDF合并的方法,很快就完成了文件的合并.想到应该还有很多朋友还不知 ...
- PDF文件怎么拆分?看完就会了!
pdf是咱们办公党十分熟悉的一种文件格式了吧,相信咱们都和它打过交道.在平时的工作交接中,我们总是需要将这些文件发送给客户或者同事.只是在发送的时候,我们也会常常遇到一些问题,那就是文件太大了发送不过 ...
- 实用常识 | 将PDF文件页面拆分成两个页面(老白嫖怪了)
续<实用常识 | 分享一个好用的插件解决浏览器图片下载问题(老白嫖怪了)> 正值Yi情肆虐于我燕赵大地,时至年关Bing毒多处零散爆发.老弟今年12岁整,本命年,恰是小升初的关键时刻,学校 ...
- PDF编辑器哪个好,PDF文件怎么拆分成多个PDF
我们现在使用的PDF文件都是有好几页构成的,但是当我们需要不同范围的PDF文件的时候应该怎么办呢,小伙伴们都知道PDF文件的编辑是需要PDF编辑器的,那么PDF编辑器哪个好呢,小编就以小编使用的一款编 ...
- 使用PHP将pdf文件和图片进行合并
在laravel框架下开发,laravel版本为: artisan --version Laravel Framework 5.5.40 使用composer安装fpdf和fpdi的扩展,先在comp ...
- pdf文件在线拆分如何拆分?
PDF文件有时会很大,我们就会拆分,PDF文件在线拆分如何拆分?拆分能很好地保留一些文件,质量还是一样,所以在线拆分是很好的方法. 1在百度中去搜索关键词迅捷pdf在线转换器,然后开始分割 2进入后, ...
- PDF文件怎么拆分?分享一个好用的拆分方法
怎么把PDF文件拆分开来使用呢?PDF文件大家在日常中的使用需求还是挺大的,因为我们一般的传输文件都会是这种格式的文件,当然了,PDF文件不仅是只用来传输文件,还可以很好的阅读浏览,当我们使用一个内容 ...
- Ubuntu下命令行方式对PDF文件进行缩放、合并、拆分
安装软件: sudo aptitude install ghostscript 然后执行命令: gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibili ...
- java代码实现pdf按页拆分以及合并
1 配置pom文件 我用的是5.4.3的版本 <dependency><groupId>com.itextpdf</groupId><artifactId&g ...
- python 知乎 合并 pdf_实例4:用Python提取不同PDF文件中的页面合并进新的PDF文件...
公司船务部一个重要任务就是需要准备每单货物的发票,从系统导出发票时是默认存为一个PDF文档,在打印的时候,有多少个文件,就需要点多少次"打印".如果能够将当天的发票PDF档合并在一 ...
最新文章
- Nature Plants:根系微生物可以远程提高植物应对地上部环境胁迫的能力
- 最新调查:等这一波COBOL程序员退休,很多关键岗位就后继无人了
- 飞机大战boss入场代码_他又来了,BOSS直聘和国足谁先出线卡塔尔?
- 扫描仪图标无法显示计算机,win7“我的电脑”中不显示扫描仪和摄像头的原因和解决方法...
- 据中心水冷系统备品备件管理新思路
- GO语言的进阶之路-Golang高级数据结构定义
- linux中,一个目录的权限是777,普通用户为什么删除不了它呢?
- docker 部署Gitlab
- 技术篇-HBase Coprocessor 的实现与应用
- sql语句聚合等疑难问题收集
- 等保二级和等保三级的区别
- 蓝牙协议分析工具Wireshark/Frontline/Ellisys的使用
- 阿里云短信API使用
- dilated conv的理解
- 关于用户表空间配额的问题
- Ubuntu 20.04换国内源 清华源 阿里源 中科大源 163源
- 人类第一张黑洞照片背后的功臣,竟然是她!
- Intellij IDEA File Cache Conflict
- 真的是神坑啊,Eureka服务无法注册的问题
- 微信扫码提示在浏览器中打开的遮罩代码解决方式