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文件详解相关推荐

  1. pdf按照页码分割 java_java使用itext按页码拆分pdf文件

    java使用itext按页码拆分pdf文件,代码实现如下: /** * @author viralpatel.net * * @param inputStream Input PDF file * @ ...

  2. php分割金额_PHP实现红包金额拆分算法案例详解

    这次给大家带来PHP实现红包金额拆分算法案例详解,PHP实现红包金额拆分算法的注意事项有哪些,下面就是实战案例,一起来看一下.<?php // 新年红包金额拆分试玩 class CBonus { ...

  3. android 阅读 翻页,极速PDF安卓版如何翻页、阅读模式修改等操作详解

    如今手机几乎代替电脑,曾经用电脑操作的办公软件也逐渐被APP替代.近几年安卓市场上线的极速PDF因其小巧.速度快,也被广大用户下载使用.但使用这款APP阅读PDF文档时如何将左右翻页改成上下翻页,屏幕 ...

  4. codeblocks全屏模式怎么退出_极速PDF安卓版如何翻页、阅读模式修改等操作详解...

    如今手机几乎代替电脑,曾经用电脑操作的办公软件也逐渐被APP替代.近几年安卓市场上线的极速PDF因其小巧.速度快,也被广大用户下载使用.但使用这款APP阅读PDF文档时如何将左右翻页改成上下翻页,屏幕 ...

  5. 分割函数python_python strip() 函数和 split() 函数的详解及实例

    一直以来都分不清楚strip和split的功能,实际上strip是删除的意思:而split则是分割的意思.因此也表示了这两个功能是完全不一样的,strip可以删除字符串的某些字符,而split则是根据 ...

  6. json解析详解 java_Java解析Json数据的两种方式详解

    JSON数据解析的有点在于他的体积小,在网络上传输的时候可以更省流量,所以使用越来越广泛,下面介绍使用JsonObject和JsonArray的两种方式解析Json数据. 使用以上两种方式解析json ...

  7. predicate java_java代码之美(13)--- Predicate详解

    Predicate详解 遇到Predicate是自己在自定义Mybatis拦截器的时候,在拦截器中我们是通过反射机制获取对象的所有属性,再查看这些属性上是否有我们自定义的UUID注解. 如果有该注解, ...

  8. 如何在服务器上部署pdf文件,详解如何在云服务器上部署Laravel.pdf

    详详解解如如何何在在云云服服务务器器上上部部署署Laravel 学习PHP和Laravel 已经有一段时间了,但是所有的代码都是跑在 地的虚拟主机上的,于是去腾讯云申请了一个月的免费云主机 ,想把项目 ...

  9. fianl属性 java_Java反射如何有效的修改final属性值详解

    前言 以前写过一篇 Java 反射修改 final 属性值,本文将在这里重新温习一下Java反射如何有效的修改final属性值,下面话不多说了,来一起看看详细的介绍: 假设有个类 class Pers ...

最新文章

  1. 每个程序员都需要学习 JavaScript 的7个理由
  2. 中国开源大爆发进行时,你没掉队吧?
  3. “上海名媛群”事件,我来说几句
  4. 转:ASP自动解压RAR文件
  5. 信息学奥赛一本通 1173:阶乘和 | OpenJudge NOI 1.6 15 | 洛谷 P1009 [NOIP1998 普及组] 阶乘之和
  6. 新建一个java程序并运行
  7. 【一起学爬虫】PyQuery详解
  8. STM32程序下载1:通过keil-ST-Link方式下载
  9. 黑客帝国般的Linux屏保cmatrix的安装和使用
  10. css border边距 在盒子内部呈现,不占用外部Px
  11. 天翼网关 ddns设置_UCloud物理云网关百G级集群设计实践
  12. 随手写的一个小程序,将gz压缩文件读取到内存中 并用base64编码 及相关解码
  13. 企业级BOM系统与外部系统集成的几种方案
  14. 阿里云天池竞赛——二手车价格预测项目(个人练习+源代码)
  15. 【雷达通信】相控阵天气雷达探测晴空回波能力分析Matlab源码
  16. python | plt.scatter画圆形或者方框——没有填充色、边框颜色设置
  17. Yahoo.cn邮箱的IMAP设置方法
  18. Swing学习----------QQ登录界面制作(一)
  19. sony android mp3播放器,入手一年,详细聊聊 索尼ZX505、艾利和SR15 两款安卓播放器的使用体验...
  20. 钱颖一:人的创造力从哪里来?(转)

热门文章

  1. 腾讯IEG后台开发(已拿到offer)
  2. BAT——学习之路——入门
  3. python3从零学习-5.4.5、文件及目录的比较模块filecmp
  4. Qt 制作电子表格时候应该注意的地方
  5. discuz 上传php,Discuz教程:附件上传与php的哪些参数有关
  6. iOS 15之后, 微信支持双开甚至多开了?
  7. 《系统相关》双系统安装(Windows+Ubuntu)
  8. 数据透视表之在数据透视表中进行计算
  9. 中国安全市场进入战国时代(转)
  10. 简单制作两个网站的布局(只做了首页)