1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > java使用itext开源包实现pdf文件合并 亲测可用 响应速度快的惊人

java使用itext开源包实现pdf文件合并 亲测可用 响应速度快的惊人

时间:2019-09-06 08:00:34

相关推荐

java使用itext开源包实现pdf文件合并 亲测可用 响应速度快的惊人

在使用该代码前需要添加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; } }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。