首先引用itextpdf依赖:

<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version>
</dependency>

测试类:

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 java.io.FileOutputStream;
import java.io.IOException;public class PDFTest {public static void main(String[] args) {splitPDFFile("e:/glossary_old.pdf", "e:/glossary01.pdf","e:/glossary_new.pdf", 2, -1);}/*** 截取pdfFile的第from页至第end页,组成一个新的文件名* @param respdfFile  需要分割的PDF1* @param respdfFile2  需要分割的PDF2* @param savepath  新PDF* @param from  起始页* @param end  结束页*/public static void splitPDFFile(String respdfFile, String respdfFile2, String savepath, int from, int end) {Document document = null;PdfCopy copy = null;try {PdfReader reader1 = new PdfReader(respdfFile2);PdfReader reader = new PdfReader(respdfFile);int n = reader.getNumberOfPages();if(end <= 0){end = n;}document = new Document(reader.getPageSize(1));copy = new PdfCopy(document, new FileOutputStream(savepath));document.open();document.newPage();//写入respdfFile2的第一页作为首页PdfImportedPage page1 = copy.getImportedPage(reader1, 1);copy.addPage(page1);//写入respdfFile的from到end页for(int j = from; j <= end; j++) {document.newPage();PdfImportedPage page = copy.getImportedPage(reader, j);copy.addPage(page);}document.close();} catch (IOException e) {e.printStackTrace();} catch(DocumentException e) {e.printStackTrace();}}
}

生成的文件内容是包含glossary01.pdf的首页和 glossary_old.pdf第2页到尾页的名为glossary_new.pdf的文件。

itextpdf截取pdf文件为新文件相关推荐

  1. python批量移动文件到新文件夹

    思路是先遍历原文件夹,然后把每个文件路径拼接好,最后直接移动 虽然基本上用不上,记录一下吧 使用的时候,直接替换absolute_path和newpath 里面的路径就可以了 import os im ...

  2. linux 的vi命令中将当前文件另存为新文件a.log,【转】20条Linux命令面试问答

    问:1 如何查看当前的Linux服务器的运行级别? 答: 'who -r' 和 'runlevel' 命令可以用来查看当前的Linux服务器的运行级别. 问:2 如何查看Linux的默认网关? 答: ...

  3. 根据文件后缀名移动文件 及 按照txt文件中的文件名移动需要的文件到新文件夹

    按照txt文件中的文件名移动需要的文件到新文件夹 import os import shutil ''' 程序目的:按照 目标文件名.txt 文件,从源文件夹 path1 中把 目标文件 挪到目标文件 ...

  4. Java复制一个文件到新文件夹中,并对新文件重命名

    需求:将图片A从文件夹A,复制到新文件B,没有新文夹B则新建一个B,并将图片A的名称改为B.路径:/Users/mgx/apache-tomcat-8.5.78/webapps/img/testimg ...

  5. python复制文件到新文件夹

    一个简单的小案例,主要复习一下基础命令. import multiprocessing import os,time ''' 获取旧文件夹里的文件名(列表格式), 新建一个文件夹保存复制过来的文件 创 ...

  6. 快速复制文件到新文件夹当中

    我们日常办公处理文件的时候,就需要经常对这些文件进行改名.复制等多种处理,那为了大家能够更快更方便的完成任务,这边给大家分享一个快速处理的方法. 1.可以批量的对文件进行改名.复制.翻译等等,那今天就 ...

  7. python处理excel系列一之根据文件名从一文件夹批量复制文件到新文件夹并进行处理

    用到的函数主要有shutil.copy().os.path.join().pd.merge(). import os import pandas as pd from pandas import Se ...

  8. Linux 如何创建新文件、修改文件权限、新文件读写 ?

    文章目录 Linux 如何创建新文件.修改文件权限.新文件读写 ? 场景 · 需求 · 说明: 一.创建新文件 1.1. 创建一个新文件: 1.2. 创建两个新文件: 1.3. 批量创建N+个新文件: ...

  9. Linux修改文件时间或创建新文件:touch

    每个文件在Linux下面都记录了许多的时间参数,其实是三个主要的变动时间 修改时间(modification time,mtime):当该文件的[内容数据]变更时,就会更新这个时间,内容数据是指文件的 ...

最新文章

  1. 多少血的教训,才能换来对自动驾驶的严格限定、真实了解和正确使用?
  2. C++高级程序员基本技能你都具备吗?
  3. linux - svn命令操作使用随笔svn import
  4. 粥做得好不好,全凭一个良心!
  5. SQL Server 2005新特性之使用with关键字解决递归父子关系
  6. fopen、fwrite使用
  7. php 生存分析,HPA数据库08.做生存分析
  8. java中getup用法_你还在 Java 代码中写 set/get 方法?赶快试试这款插件吧!
  9. 关于EntityManager(实体管理器)的常用方法
  10. Radius认证协议(一)
  11. mac下发html邮件的方法
  12. [RK3399][Android7.1] 调试笔记 --- DDR动态调节功能开启
  13. wps一直显示正在备份怎么办_wps一直显示正在保存
  14. Linux用账号密码登录redis
  15. 英语会话必须掌握的五种基本结构[转]
  16. DVWA通关--SQL注入(SQL Injection)
  17. 坐标变换的艺术—PMSM(两相)静止轴系的扩展反电势公式推导
  18. 单片机c语言设计数据,单片机C语言设计.doc
  19. VS/Qt C++ 入门项目飞机大战(内含全部源代码,素材,项目工程,项目祥解)可直接运行
  20. Simulink建模与仿真学习笔记之真值表(Truth Table)

热门文章

  1. 【Deep Learning】数据预处理(z-score标准化)
  2. 《摩诃般若波罗蜜多心经》新译 何新 译
  3. GoLang之接口转换的原理(8)
  4. Win11通过注册表修改文件默认打开方式
  5. 正则表达式-替换网址
  6. 【小程序】微信小程序如何获取微信公众号openid?
  7. STK Engine二次开发-WPF方式
  8. RHCSA——第八天
  9. iOS学习笔记38-新浪微博错误代码详解
  10. 人脸技术-人脸数据库汇总