JFinal框架中对于PDF进行拆分
准备条件
导入处理PDF的jar包:(如有更多需要,自去官网)
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.4.3</version>
</dependency>
**处理PDF:**
public static void splitPDFByRange(String path, String fileName, String outputPath,
Integer startPage, Integer endPage){
String sep = java.io.File.separator;
Document document = null;
PdfCopy copy = null;
PdfReader reader = null;
try {
reader = new PdfReader(path + sep + fileName);
int numberOfPages = reader.getNumberOfPages();
if (endPage == 0) {
endPage = numberOfPages;
}
String savePath = outputPath + sep +
fileName.substring(0, fileName.lastIndexOf("."))
+ "_from_" + startPage + "_to_" + endPage + "_.pdf";
document = new Document(reader.getPageSize(1));
copy = new PdfCopy(document, new FileOutputStream(savePath));
document.open();
for (int i = startPage; i <= endPage; i++) {
document.newPage();
PdfImportedPage page = copy.getImportedPage(reader, i);
copy.addPage(page);
}
document.close();
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
} finally {
if (document != null)
document.close();
if (reader != null)
reader.close();
if (copy != null)
copy.close();
}
**controller中进行调用:**
PDFUtils.splitPDFByRange("上传路径", "PDF文件名", "输出路径", startPage, endPage);
最后编写前端界面就好了。
是不是很简单?
不足之处还请见谅!
参考链接