pdf按照页码分割 java_java使用itext按页码拆分pdf文件详解
java使用itext按页码拆分pdf文件,代码实现如下:
/**
* @author viralpatel.net
*
* @param inputStream Input PDF file
* @param outputStream Output PDF file
* @param fromPage start page from input PDF file
* @param toPage end page from input PDF file
*/
public static void splitPDF(InputStream inputStream,
OutputStream outputStream, int fromPage, int toPage) {
Document document = new Document();
try {
PdfReader inputPDF = new PdfReader(inputStream);
int totalPages = inputPDF.getNumberOfPages();
//make fromPage equals to toPage if it is greater
if(fromPage > toPage ) {
fromPage = toPage;
}
if(toPage > totalPages) {
toPage = totalPages;
}
// Create a writer for the outputstream
PdfWriter writer = PdfWriter.getInstance(document, outputStream);
document.open();
PdfContentByte cb = writer.getDirectContent(); // Holds the PDF data
PdfImportedPage page;
while(fromPage <= toPage) {
document.newPage();
page = writer.getImportedPage(inputPDF, fromPage);
cb.addTemplate(page, 0, 0);
fromPage++;
}
outputStream.flush();
document.close();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (document.isOpen())
document.close();
try {
if (outputStream != null)
outputStream.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
使用示例如下,将一个20页的pdf文件拆分成1-12和13-20页两个pdf文件:
public static void main(String[] args) {
try {
MergePDF.splitPDF(new FileInputStream("C:\\input.pdf"),
new FileOutputStream("C:\\output1.pdf"), 1, 12);
MergePDF.splitPDF(new FileInputStream("C:\\input.pdf"),
new FileOutputStream("C:\\output2.pdf"), 13, 20);
} catch (Exception e) {
e.printStackTrace();
}
}
pdf按照页码分割 java_java使用itext按页码拆分pdf文件详解相关推荐
- pdf按照页码分割 java_java使用itext按页码拆分pdf文件
java使用itext按页码拆分pdf文件,代码实现如下: /** * @author viralpatel.net * * @param inputStream Input PDF file * @ ...
- php分割金额_PHP实现红包金额拆分算法案例详解
这次给大家带来PHP实现红包金额拆分算法案例详解,PHP实现红包金额拆分算法的注意事项有哪些,下面就是实战案例,一起来看一下.<?php // 新年红包金额拆分试玩 class CBonus { ...
- android 阅读 翻页,极速PDF安卓版如何翻页、阅读模式修改等操作详解
如今手机几乎代替电脑,曾经用电脑操作的办公软件也逐渐被APP替代.近几年安卓市场上线的极速PDF因其小巧.速度快,也被广大用户下载使用.但使用这款APP阅读PDF文档时如何将左右翻页改成上下翻页,屏幕 ...
- codeblocks全屏模式怎么退出_极速PDF安卓版如何翻页、阅读模式修改等操作详解...
如今手机几乎代替电脑,曾经用电脑操作的办公软件也逐渐被APP替代.近几年安卓市场上线的极速PDF因其小巧.速度快,也被广大用户下载使用.但使用这款APP阅读PDF文档时如何将左右翻页改成上下翻页,屏幕 ...
- 分割函数python_python strip() 函数和 split() 函数的详解及实例
一直以来都分不清楚strip和split的功能,实际上strip是删除的意思:而split则是分割的意思.因此也表示了这两个功能是完全不一样的,strip可以删除字符串的某些字符,而split则是根据 ...
- json解析详解 java_Java解析Json数据的两种方式详解
JSON数据解析的有点在于他的体积小,在网络上传输的时候可以更省流量,所以使用越来越广泛,下面介绍使用JsonObject和JsonArray的两种方式解析Json数据. 使用以上两种方式解析json ...
- predicate java_java代码之美(13)--- Predicate详解
Predicate详解 遇到Predicate是自己在自定义Mybatis拦截器的时候,在拦截器中我们是通过反射机制获取对象的所有属性,再查看这些属性上是否有我们自定义的UUID注解. 如果有该注解, ...
- 如何在服务器上部署pdf文件,详解如何在云服务器上部署Laravel.pdf
详详解解如如何何在在云云服服务务器器上上部部署署Laravel 学习PHP和Laravel 已经有一段时间了,但是所有的代码都是跑在 地的虚拟主机上的,于是去腾讯云申请了一个月的免费云主机 ,想把项目 ...
- fianl属性 java_Java反射如何有效的修改final属性值详解
前言 以前写过一篇 Java 反射修改 final 属性值,本文将在这里重新温习一下Java反射如何有效的修改final属性值,下面话不多说了,来一起看看详细的介绍: 假设有个类 class Pers ...
最新文章
- 每个程序员都需要学习 JavaScript 的7个理由
- 中国开源大爆发进行时,你没掉队吧?
- “上海名媛群”事件,我来说几句
- 转:ASP自动解压RAR文件
- 信息学奥赛一本通 1173:阶乘和 | OpenJudge NOI 1.6 15 | 洛谷 P1009 [NOIP1998 普及组] 阶乘之和
- 新建一个java程序并运行
- 【一起学爬虫】PyQuery详解
- STM32程序下载1:通过keil-ST-Link方式下载
- 黑客帝国般的Linux屏保cmatrix的安装和使用
- css border边距 在盒子内部呈现,不占用外部Px
- 天翼网关 ddns设置_UCloud物理云网关百G级集群设计实践
- 随手写的一个小程序,将gz压缩文件读取到内存中 并用base64编码 及相关解码
- 企业级BOM系统与外部系统集成的几种方案
- 阿里云天池竞赛——二手车价格预测项目(个人练习+源代码)
- 【雷达通信】相控阵天气雷达探测晴空回波能力分析Matlab源码
- python | plt.scatter画圆形或者方框——没有填充色、边框颜色设置
- Yahoo.cn邮箱的IMAP设置方法
- Swing学习----------QQ登录界面制作(一)
- sony android mp3播放器,入手一年,详细聊聊 索尼ZX505、艾利和SR15 两款安卓播放器的使用体验...
- 钱颖一:人的创造力从哪里来?(转)