java reader 组合_Java IText 拼接合并PDF的三种方法
使用itextpdf操作合并拼接了pdf,实现了三种方法,三种方法都使用原文档作为模板,保证输出文档的可靠性。
Mave POM
com.itextpdf
itextpdf
5.5.13
方法一:
PDFJoin.mergepdf(fileList,"d:/pdfjoin/all.pdf");
IText自带的merge,合并pdf
方法二:
public static void mergepdf(List fileList, String savepath) {
Document document = null;
try {
document = new Document(new PdfReader(fileList.get(0)).getPageSize(1));
PdfCopy copy = new PdfCopy(document, new FileOutputStream(savepath));
document.open();
for (int i = 0; i < fileList.size(); i++) {
PdfReader reader = new PdfReader(fileList.get(i));
copy.addDocument(reader);
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
} finally {
if (document != null) {
document.close();
}
}
}
读取所有文档然后追加到新的文档
方法三:
public static void mergepdf(List fileList, String savepath) {
Document document = null;
try {
document = new Document(new PdfReader(fileList.get(0)).getPageSize(1));
PdfCopy copy = new PdfCopy(document, new FileOutputStream(savepath));
document.open();
for (int i = 0; i < fileList.size(); i++) {
PdfReader reader = new PdfReader(fileList.get(i));
int n = reader.getNumberOfPages();
for (int j = 1; j <= n; j++) {
document.newPage();
PdfImportedPage page = copy.getImportedPage(reader, j);
copy.addPage(page);
}
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
} finally {
if (document != null) {
document.close();
}
}
}
读取PDF文档的页,然后一页一页追加到新的文档。
总结:方法一很简单,官方的可靠,而且性能相差不多,但根据我的测试,后面方法三的速度会稍微快一点点,这个我页奇怪,也许只是偶然或者测试不够充分。
java reader 组合_Java IText 拼接合并PDF的三种方法相关推荐
- C#实现将excel转换成pdf的三种方法
文章目录 1.使用免费版的spire 2.使用Microsoft.Office.Interop.Excel 3.使用Aspose.Cells 本人经过一上午的搜索,总结了C#将excel转pdf的三种 ...
- java 获取键盘点击_Java中获取键盘输入值的三种方法介绍
程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这 ...
- java list移除符合条件的元素_java List删除指定元素的三种方法
java List删除指定元素有3种方法,分别是普通for循环,增强for循环以及原生的Iterator迭代器循环来删除list中指定的某个元素,非常的简单. 1:普通for循环遍历list,并删除指 ...
- web java获取当前时间_Java 获取当前系统时间的三种方法
准备工作: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; 方式一: /** ...
- java输出数组中的元素_Java快捷输出数组元素的三种方法
1.简介 Java中快捷输出数组中各个元素笔者目前所知的就三种方法,今天就简单的做个记录.大家如果有什么更好的方法,麻烦留言评论. 2.代码 public class ArrayPrint { pub ...
- 将ppt转换成pdf的三种方法分享
在我们工作中,总免不了将一些ppt幻灯片里的内容复制到pdf文档中,一些同仁遇到这种现象常常不知道如何下手,有的甚至直接将ppt文本内容复制到word文档中,然后保存成pdf格式,这样打开肯定会导致排 ...
- java 当前时间string_Java 获取当前系统时间的三种方法
准备工作: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; 方式一: /** ...
- java 当月最后一天_java中取得当月最后一天的四种方法
java中取得当月最后一天的四种方法 第一种,使用Calendar的roll方法,在限制某个日期字段不改变的形式下,改变其他日期字段的值. 第二种,使用Calendar的getActualMaximu ...
- java set 操作_java:Set循环遍历的俩种方法使用
java:Set循环遍历的俩种方法使用 package collection; import java.util.*; public class NewSet { public static void ...
- 合并石子(三种方法)
合并石子 题目 在一个操场上一排地摆放着N堆石子.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分.请设计一个程序,计算出将N堆石子合并成 ...
最新文章
- 华人小哥用苹果音箱「隔空」测心律,论文登上Nature子刊
- linux 为什么编译内核,Linux内核编译与安装
- CTFHub-Web-信息泄露
- 谈谈汽车诊断之KWP2000/ISO14229/ISO15765/SAEJ1939
- python环境配置,windows系统,anaconda集成开发环境
- NSLog 输出格式集合
- python控制台动画,如何使用Python 3.x在控制台应用程序中创建ASCII动画?
- 计算机内存外存共同点,存储器:内存和外存
- C51单片机流水灯C代码
- laravel文档——文件夹结构
- yolov 论文发表在什么期刊上_joe期刊是什么期刊_joe是什么意思_joe牌子
- Latex 中文配置解析
- 第九组 通信3班 063 防火墙配置
- ue4 中动画控制,利用conduit节点
- 一树桃红,在生命的枝头葱茏
- 100000+人体验过后都说:这TM绝对是最变态的英语学习方法……
- iOS 最新 APP提交上架流程~(打包 ipa)
- Leo写的前言 自由与规则—— 程序员羊皮卷 连载 8
- 【简洁实用】好用的杀毒软件 【网络安全防护】
- php 画布旋转,gdip图形库,画布如何进行按照指定的角度进行旋转
热门文章
- 【使用指南】ComponentOne Enterprise .NET开发控件集
- 不加群提取群成员_QQ群排名优化技术教程
- Macromedia flash制作落叶飘下动画
- _ie6png图片的修复
- ssq历史50【参数化】出现排序,最近未出排序,排行图
- NX二次开发-BlockUI对话框嵌套MFC对话框制作进度条
- 微信小程序游戏开发│石头剪刀布游戏(附源码)
- 无源蜂鸣器c语言编程,电磁式蜂鸣器驱动原理与简单蜂鸣器编程及电路设计案例...
- win10计算机休眠快捷键,win10睡眠快捷键,win10睡眠按啥键唤醒
- android画板的实验报告,android实验报告模板_实验一