pdfbox按页拆分

现在系统需要拆分pdf,我使用pdfbox包,进行处理。

代码如下:

https://img2.mukewang.com/5b76da8e0001ae0104180365.jpg

已经实现将一个大pdf按页拆分为多个pdf。

但是,现在还有两个问题:

1.在拆分时,怎么实现设置页数拆分(eg:每5页拆分为一个小pdf)

2.load时,是将整个文件加载到内存中;如果文件很大,该怎么处理


犯罪嫌疑人X
浏览 824回答 1
1回答

一只名叫tom的猫

document = PDDocument.load(file, MemoryUsageSetting.setupTempFileOnly());不把文件加载到内存。指定页数拆分pdf:不使用splitter进行拆分,使用getPages,然后新建一个临时对象,往里边添加指定数量的页数       &nbsp;File&nbsp;file&nbsp;=&nbsp;new&nbsp;File(fileStr); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document&nbsp;=&nbsp;PDDocument.load(file,&nbsp;MemoryUsageSetting.setupTempFileOnly()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getPages(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PDDocument&nbsp;doc&nbsp;=&nbsp;new&nbsp;PDDocument();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;startPageNum&nbsp;-&nbsp;1;&nbsp;i&nbsp;<&nbsp;endPageNum;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doc.addPage(document.getPage(i)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doc.save(outputStream);
打开App,查看更多内容
随时随地看视频慕课网APP