我们有时候需要将多个PDF文件合 并成一个,这里只讨论使用java程式如何合并PDF.我们只需要使用到itext.jar就可以完成任务.
代码如下:代码很简单.就不多解释了.
PDF合并:MergePDFUtil.java类中的 代码如下:
package com.utils;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfCopy;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
/**
* 合并PDF
*/
public class MergePDFUtil {
public static void main(String[] args) throws Exception{
String[] files = { "D:\\a.pdf", "D:\\b.pdf" };
String savepath = "D:\\temp.pdf";
mergePdfFiles(files, savepath);
}
/* 合並pdf文件
* @param files 要合並文件数组(绝对路劲{ "D:\\a.pdf", "D:\\b.pdf" })
* @param newfile 合并后新产生的文件绝对路径如D:\\temp.pdf
*/
public static void mergePdfFiles(String[] files, String savepath) throws Exception{
try {
//创建一个与a.pdf相同纸张大小的document
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++) {
//一个一个的遍历现有的PDF
PdfReader reader = new PdfReader(files[i]);
int n = reader.getNumberOfPages();//PDF文件总共页数
System.out.println("n:"+n);
for (int j = 1; j <= n; j++) {
document.newPage();
PdfImportedPage page = copy.getImportedPage(reader, j);
copy.addPage(page);
}
}
document.close();
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
}
}