资源简介
把大的PDF文件拆分成指定大小文件,但是因为每页的文件大小不一定,就不能通过固定页数来拆分文件,这样子的话就需要我们通过计算来将文件拆分这指定大小的文件
代码片段和文件信息
package com.mysoft.util;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.*;
/**
* 文件拆分
* @author 86185
*
*/
public class SplitFileUtil {
/**
* pdf文件拆分
* @param path 文档路径
* @param pdfFileName 文件名
* @param filePageSize·每个文件的最大页数
*/
public static void splitPdfFile(String pathString pdfFileNameint filePageSize) {
// 文档路径
// String path = “C:\\Users\\86185\\Desktop\\readFile\\“;
// 待拆分文件名
// String pdfFileName = “684331701425410048.pdf“;
// 每个文件最大页数
// int filePageSize = 25;
// 待拆分文件的总页数
int totalPage;
// 拆分后的文件数量
int splitFileNum;
int pageIndex = 1;
PdfReader reader = null;
try {
String orignName = pdfFileName.split(“\\.“)[0];
reader = new PdfReader(path + pdfFileName);
totalPage = reader.getNumberOfPages();
splitFileNum = totalPage % filePageSize == 0 ? totalPage / filePageSize : totalPage / filePageSize + 1;
for (int i = 0; i < splitFileNum; i++) {
String newFileName = path + orignName + “_“ + (i + 1) + “.pdf“;
// 新建一个PDF文件
Document document = null;
PdfWriter writer = null;
try {
document = new Document();
writer = PdfWriter.getInstance(document new FileOutputStream(newFileName));
document.open();
PdfContentByte pdfContentByte = writer.getDirectContent();
for (int j = 0; j < filePageSize; j++) {
document.newPage();
pdfContentByte.addTemplate(writer.getImportedPage(reader pageIndex) 0 0);
pageIndex ++;
if (pageIndex > totalPage)
break;
}
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}finally {
//这个地方要特别注意资源关闭的顺序
if (document != null)
document.close();
if (writer != null)
writer.close();
}
}
} catch (IOException e1) {
e1.printStackTrace();
} finally {
if(reader!=null) reader.close();
}
}
/**
* pdf文件拆分
* @param file 拆分的文件
* @param filePageSize·每个文件的最大页数
* @return
*/
public static List splitPdfFile(File fileint filePageSize) {
List list = new ArrayList();//拆分的文件
String absolutePath = file.getAbsolutePath();//文档绝对路径
String pdfFileName = file.getName();// 待拆分文件名
String path = absolutePath.substring(0 absolutePath.lastIndexOf(pdfFileName));// 文档路径
// 待拆分文件的总页数
int totalPage;
// 拆分后的文件数量
int splitFileNum;
int pageIndex = 1;
PdfReader reader = null;
try {
String orignName = pdfFileName.split(“\\.“)[0];
reader = new PdfReader(path + pdfFileName);
totalPage = reader.getNumberOfPages();
splitFile
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9360 2020-05-21 10:33 使用itextpdf将PDF大文件拆分成若干份指定大小文件\SplitFileUtil.java
文件 2164148 2020-03-14 22:44 使用itextpdf将PDF大文件拆分成若干份指定大小文件\itextpdf-5.5.5.jar
目录 0 2020-08-14 09:03 使用itextpdf将PDF大文件拆分成若干份指定大小文件\
- 上一篇:中国最新详细地图shp文件
- 下一篇:jiajiahuifu_BAH.rar
相关资源
- vegan中文教程.pdf
- 一款基于微信小程序的音乐播放器
- 程序员必读的职业生涯规划书.pdf
- PLC课程设计(五层电梯).pdf
- 机器人 控制技术.pdf
- 5G车路协同创新应用白皮书-腾讯生态
- 基于STM32单片机的智能浇水系统.pdf
- 基于BOOST电路的有源功率因数校正设计
- BCG:解读中国互联网新篇章-迈向产业
- 旅游管理系统
- abaqus从入门到精通.pdf
- 用友U8 cloud V3.0发版说明产品功能介绍
- STM32L0x1参考手册.pdf
- BP世界能源展望2019年版中文版.pdf
- STM32的SPI通信总结(含DMA).pdf
- Advanced Analytics with Spark 2nd Edition.pdf
- HDMISpecification2.0.pdf
- 浪潮之巅完整版.pdf
- Wireshark数据抓包分析(网络协议篇)
- Writing Testbenches using systemverilog.pdf
- STC12单片机中文手册.pdf
- TheanoTutorial.pdf
- R61509.pdf
- Shell Programming in Unix Linux and OS X(4th)
-
pdfob
jectTest - Axure交互设计从入门到精通.pdf
- 日本安川MOTOMAN工业机器人HP6使用说明
- ICM-42605.pdf
- 阿里云大数据专业认证ACP级-题库.pd
- SCA103T 中文手册.pdf
评论
共有 条评论