在使用该代码前需要添加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; } }
如果觉得《java使用itext开源包实现pdf文件合并 亲测可用 响应速度快的惊人》对你有帮助,请点赞、收藏,并留下你的观点哦!