0
点赞
收藏
分享

微信扫一扫

itext5.5合并PDF


我们有时候需要将多个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();
		}
	}

}

 

举报

相关推荐

0 条评论