java使用itext开源包实现pdf文件合并,亲测可用,响应速度快的惊人
在使用该代码前需要添加itext.jar的依赖,网上很多,maven仓库也很好下载,在此不再赘述。代码比较简单,只需要更改待合并文件的绝对路径,以及合并后文件的输出路径即可。自己测试了几次,七个文件,总大小超过40M,代码响应速度应该不超过2秒,比想象中快很多。import java.io.FileOutputStream;//以下为itext.jar中的依赖包import com.lo...
·
在使用该代码前需要添加itext.jar的依赖,网上很多,maven仓库也很好下载,在此不再赘述。代码比较简单,只需要更改待合并文件的绝对路径,以及合并后文件的输出路径即可。自己测试了几次,七个文件,总大小超过40M,代码响应速度应该不超过2秒,比想象中快很多。
import java.io.FileOutputStream;
//以下为itext.jar中的依赖包
import com.lowagie.text.Document;
import com.lowagie.text.pdf.PdfCopy;
import com.lowagie.text.pdf.PdfImportedPage;
import com.lowagie.text.pdf.PdfReader;
public class MergeFile {
public static void main(String[] args) {
//待合并的文件,如果有更多个,则在files数组中添加更多个(使用绝对路径)
String[] files = { "D:\\in1.pdf", "D:\\in2.pdf"};
//合并后的文件(使用绝对路径)
String newfile = "D:\\out.pdf";
mergePdfFiles(files, newfile);
}
public static boolean mergePdfFiles(String[] files, String newfile) {
boolean retValue = false;
Document document = null;
try {
document = new Document(new PdfReader(files[0]).getPageSize(1));
PdfCopy copy = new PdfCopy(document, new FileOutputStream(newfile));
document.open();
for (int i = 0; i < files.length; i++) {
PdfReader reader = new PdfReader(files[i]);
int n = reader.getNumberOfPages();
for (int j = 1; j <= n; j++) {
document.newPage();
PdfImportedPage page = copy.getImportedPage(reader, j);
copy.addPage(page);
}
}
retValue = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
document.close();
}
return retValue;
}
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)