根据页码进行pdf拆分
代码
public static void splitPDF(InputStream inputStream,
OutputStream outputStream,int startPage,int endPage) {
Document document = new Document();
try {
PdfReader inputPDF = new PdfReader(inputStream);
int totalPages = inputPDF.getNumberOfPages();
for (int i =1;i < totalPages;i++){
startPage = endPage = i;
}
if(startPage > endPage ) {
startPage = endPage;
}
if(endPage > totalPages) {
endPage = totalPages;
}
PdfWriter writer = PdfWriter.getInstance(document, outputStream);
document.open();
PdfContentByte cb = writer.getDirectContent();
PdfImportedPage page;
while(startPage <= endPage) {
document.newPage();
page = writer.getImportedPage(inputPDF, startPage);
cb.addTemplate(page, 0, 0);
startPage++;
}
outputStream.flush();
document.close();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (document.isOpen())
document.close();
try {
if (outputStream != null)
outputStream.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
public static void main(String[] args) {
try {
File file = new File("F:\\微信文件传输记录\\监测网络中心.pdf");
PdfReader pdfReader = new PdfReader(new FileInputStream(file));
int numberOfPages = pdfReader.getNumberOfPages();
for (int i =1;i<=numberOfPages;i++){
String outUrl = "F:\\微信文件传输记录\\splitPdf\\output"+i+".pdf";
PdfSplitByPage.splitPDF(new FileInputStream(file),
new FileOutputStream(outUrl), i, i);
}
} catch (Exception e) {
e.printStackTrace();
}
}
itextpdf依赖
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.9</version>
</dependency>