JAVA合并pdf,拆分pdf文档
毕业材料整理的时候要合并pdf文档,把一些文档按页码拆分出来,我本来想用wps弄的,但是它要vip,就这?就vip?哼,身为一个计算机毕业的,这种小事与其再去网上找别的软件解决,不如自己代码解决。(其实也是用的人家写好的代码)
下载itextpdf.jar包
百度云链接:https://pan.baidu.com/s/1DJyi2HXEqTD2etqpHZFz_A
提取码:wrwx
其中包括两个jar包。
新建java项目
在eclipse中新建一个java项目,把包导入到项目中,具体步骤参考:Eclipse中导入jar包
详细代码
包括两部分,一部分是按照页码提取pdf,一部分是合并pdf。
splitPDF是抽取页面,包括四个参数:需要抽的原文件路径,抽取输出文件路径,抽取开始页码,抽取结束页码。
mergePdfFiles是合并页面,包括两个参数:需要合并的文件路径(可以有多个pdf文件),合并后输出文件的路径
package pdf;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;import com.itextpdf.*;
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;public class fenye {public static void main(String args[]) throws IOException, DocumentException{try {//抽取页面splitPDF("D:\\桌面\\翻译任务\\IEC-61158-2-2003.pdf", "D:\\桌面\\翻译任务\\output1.pdf", 231,243);splitPDF("D:\\桌面\\翻译任务\\IEC-61158-2-2003.pdf", "D:\\桌面\\翻译任务\\output2.pdf", 260,261);//合并页面String[] files = {"C:\\Users\\Administrator\\Desktop\\毕业设计.pdf", "C:\\Users\\Administrator\\Desktop\\毕业论文中期检查表.pdf"};String savepath = "C:\\Users\\Administrator\\Desktop\\K.pdf";mergePdfFiles(Arrays.asList(files), savepath);}catch(Exception e) {e.printStackTrace();}}/*** 合并原pdf为新文件** @param files pdf绝对路径集* @param newfile 新pdf绝对路径* @return* @throws IOException* @throws DocumentException*/public static void mergePdfFiles(List<String> files, String newfile) throws IOException, DocumentException {Document document = new Document(new PdfReader(files.get(0)).getPageSize(1));PdfCopy copy = new PdfCopy(document, new FileOutputStream(newfile));document.open();for (int i = 0; i < files.size(); i++) {PdfReader reader = new PdfReader(files.get(i));int n = reader.getNumberOfPages();for (int j = 1; j <= n; j++) {document.newPage();PdfImportedPage page = copy.getImportedPage(reader, j);copy.addPage(page);}}document.close();}public static void splitPDF(String bytes, String newFile, int start, int end) {Document document = null;PdfCopy copy = null;try {PdfReader reader = new PdfReader(bytes);//获取pdf页数int n = reader.getNumberOfPages();if (end == 0) {end = n;}document = new Document(reader.getPageSize(1));copy = new PdfCopy(document, new FileOutputStream(newFile));document.open();for (int j = start; j <= end; j++) {document.newPage();PdfImportedPage page = copy.getImportedPage(reader, j);copy.addPage(page);}document.close();} catch (Exception e) {e.printStackTrace();System.err.println("split pdf file error:" + e.getMessage());}}}
参考:java端使用IText下载PDF
JAVA合并pdf,拆分pdf文档相关推荐
- C# 合并及拆分Word文档
C# 合并及拆分Word文档 本文简要分析一下如何如何使用C#简单实现合并和拆分word文档.平时我们在处理多个word文档时,可能会想要将两个文档合并为一个,或者是将某个文档的一部分添加到另一个文档 ...
- 使用Java合并多个word文档
此案例需要用到jacob 下载地址 https://download.csdn.net/download/panhaigang123/10599733 将解压好的jacob放入如下图中 impor ...
- java pdf合并_Java 合并、拆分PDF文档
本文将介绍如何在Java程序中合并及拆分PDF文档,合并文档时,包括合并多个不同PDF文档为一个文档,以及合并PDF文档的不同页面为一页:拆分文档是,包括将PDF文档按每一页拆分,以及按指定页数范围来 ...
- [.NET开发] C# 合并、拆分PDF文档
在整理文件时,将多个同类型文档合并是实现文档归类的有效方法,也便于文档管理或者文档传输.当然,也可以对一些比较大的文件进行拆分来获取自己想要的部分文档.可以任意地对文档进行合并.拆分无疑为我们了提供极 ...
- json 文档拆分工具_如何把PDF多页文档拆为单页?快看高手私藏实用的技巧
如何把PDF多页文档拆为单页?有时一份PDF文件页面过多,当我们只想提取部分页面内容时,就需要进行PDF拆分的操作.但很多小伙伴都不知道PDF如何拆分页面,想要拆分PDF文件,首先你得拥有一个PDF拆 ...
- java 将doc格式的文档转化为pdf格式(实现Word文件预览)
doc格式的文档要实现预览功能,首先要将文档转化为pdf格式的文档 doc文档转pdf文档步骤 导入jar包 将aspose-words-jdk16-14.6.0.0.jar包导入项目中: 创建一个格 ...
- Java使用freemarker生成word文档并转pdf文档
Java使用freemarker生成word文档后转pdf 先来看看效果图 进入正题 项目需求: 为订单后生成对应的pdf文档,文档内包含图片. 方案一:使用freemarker和itext把html ...
- Java使用jacob完成office文档pdf转换
Java使用jacob完成office文档pdf转换 #简单介绍jacob jacob是java使用微软工具的一个工具 下载地址 http://sourceforge.net/projects/jac ...
- 纯java pdf转换成html,JAVA实现PDF转HTML文档的示例代码
本文是基于PDF文档转PNG图片,然后进行图片拼接,拼接后的图片转为base64字符串,然后拼接html文档写入html文件实现PDF文档转HTML文档. 引入Maven依赖 org.apache.p ...
- pdf转换html java,使用JAVA怎么将PDF转换为HTML文档
使用JAVA怎么将PDF转换为HTML文档 发布时间:2021-05-25 18:26:18 来源:亿速云 阅读:85 作者:Leah 使用JAVA怎么将PDF转换为HTML文档?针对这个问题,这篇文 ...
最新文章
- 企业×××远程接入的优劣分析
- linux学习总结之磁盘管理
- 【LINUX】Oracle数据库 linux磁盘头数据损坏修复
- 【图文详解】JAVA字面量和变量
- 论文学习18-Relation extraction and the influence of automatic named-entity recognition(联合实体关系抽取模型,2007)
- C++内存管理变革(3):另类内存管理
- VS2008无法识别的版本3.5
- JavaSE基础——异常、File文件类
- java 接口类型_Java-从接口类型而不是类声明
- java system.gc 作用_JVM源码分析之SystemGC完全解读
- 2020-04-09
- Mac SecureCRT 8.0.2破解版
- 【DDR3_Electrical Characteristics and AC Timing】_ Setup,Hold and Slew Rate Derating
- [生存志] 第21节 历代大事件概览 唐朝
- 人工智能和计算机程序有什么区别,人工智能和机器学习之间有什么区别?
- 两小时狂赚1000万!这一切怎么“成功”完成?
- [svn]log命令
- MindSpore Quantum 量子计算编程与实践:轻松上手量子卷积神经网络
- css属性选择器诸如Class^=,Class*= ,Class$=释义
- 高等数学(第七版)同济大学 习题8-6 个人解答