依賴:
<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();
}
}
但是,鬱悶的是,這個拆分完體積沒有變小.不知怎麼辦