因为最近公司有新的需求需要把多个pdf在本地合成一个pdf展示,在网上翻阅了很多文章写的不全面又或者要积分,故此对比了很多方法决定使用下面的方法,亲测可用合并速度快,不模糊;
1. 合并多个pdf
注:需要下载 pdfbox.jar
设置下载资源最少设置2个积分,没积分的同学可以去官网下载 https://pdfbox.apache.org/download.cgi
//合并代码 适用于Android和java
public void merge(){
PDDocument doc1 = null;
PDDocument doc2 = null;
try {
//workpath 地址为合并pdf地址 (java可以直接设置为pc地址如:D:/xxxx)
String workpath = Environment.getExternalStorageDirectory().getAbsolutePath();
//file1 为第一份pdf文件
File file1 = new File(workpath + "/a.pdf");
doc1 = PDDocument.load(file1);
//file2 为第二份pdf文件
File file2 = new File(workpath + "/b.pdf");
doc2 = PDDocument.load(file2);
//实例化 PDFMergerUtility class
PDFMergerUtility PDFmerger = new PDFMergerUtility();
//输出目标路径
PDFmerger.setDestinationFileName(workpath + "/ab.pdf");
//添加两个源文件
PDFmerger.addSource(file1);
PDFmerger.addSource(file2);
//合并两个文件
PDFmerger.mergeDocuments(null);
}catch(Exception e){
e.printStackTrace();
}finally {
//关闭文件流
try {
if(doc1!=null) {
doc1.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if(doc2!=null) {
doc2.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}