Itext.jar合并PDF文件
package com.pdf; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.pdf.PdfCopy; import com.lowagie.text.pdf.PdfImportedPage; import com.lowagie.text.pdf.PdfReader; /** * 导入itext-1.3.1.jar,合并PDF文件 */ public class CreatePdf { /** * 得到生成的PDF文件(多个合并) * @param savepath 文件保存的路径 * @param rName 报表名称 * @param files 生成的文件 * @return String */ public String getPDF(String savepath, String rName, String[] files) { String getResultName = null; savepath = savepath + rName + ".pdf"; //如果是多个PDF文件进行合并 if (files.length > 1) { //多个PDF文件合并 mergePdfFiles(files, savepath); getResultName = savepath.subSequence(savepath.lastIndexOf("/"), savepath.length()).toString(); } else { if (reNameFile(files, savepath)) { getResultName = rName + ".pdf"; } } return getResultName; } /** * 多个PDF合并功能 * @param files 多个PDF的路径 * @param savepath 生成的新PDF路径 * @return boolean boolean */ public static boolean mergePdfFiles(String[]files,String savepath) { try { Document document = new Document(new PdfReader(files[0]).getPageSize(1)); PdfCopy copy = new PdfCopy(document, new FileOutputStream(savepath)); 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); } } document.close(); return true; } catch (IOException e) { e.printStackTrace(); return false; } catch (DocumentException e) { e.printStackTrace(); return false; } } /** * 文件重命名 */ public static boolean reNameFile(String []oldName,String newName) { File oldfile = null; if (oldName != null) { for (int i = 0;i < oldName.length;i++) { oldfile = new File(oldName[i]); } if (oldfile == null) { return false; } File newfile = new File(newName); if (oldfile.renameTo(newfile)) { return true; } } return false; } public static void main(String[] args) { String saveLocation = "D://temp/"; String reportName = "用户流量分布"; String files[] = new String[] {"D:/temp/aa.pdf","D:/temp/bb.pdf"}; new CreatePdf().getPDF(saveLocation, reportName, files); } }
?