依赖:
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.1</version>
</dependency>
util,非常简单方便
package com.test;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageTree;
public class PdfSplit {
/**
* 文件所在文件夹
*/
public static final String PATH = "C:\\Users\\east\\Desktop\\";
/**
* 文件的名字
*/
public static final String NAME = "my";
/**
* 文件的后缀
*/
public static final String EXT = ".pdf";
public static void main(String[] args) throws IOException {
PDDocument document = PDDocument.load(new File(PATH+NAME+EXT));
PDPageTree tree = document.getPages();
Iterator<PDPage> iterator = tree.iterator();
List<PDDocument> pds = new ArrayList<>();
PDDocument pdDocument = new PDDocument();
int i = 0;
while(true) {
i ++ ;
if (iterator.hasNext()) {
/**
* 每100页一个文件,命名为 my_1.pdf/my_2.pdf
*/
if (i >= 100) {
i = 0;
pds.add(pdDocument);
pdDocument.save(PATH+NAME+"_"+pds.size()+EXT);
pdDocument.close();
pdDocument = new PDDocument();
}else {
PDPage page = iterator.next();
pdDocument.addPage(page);
}
}else {
//最后剩下不足100页的也保存起来
pds.add(pdDocument);
pdDocument.save(PATH+NAME+"_"+pds.size()+EXT);
pdDocument.close();
break;
}
}
document.close();
}
}
但是,郁闷的是,这个拆分完体积没有变小.不知怎么办