使用OpenPDF合并Java中的PDF

时间:2020-01-09 10:35:34  来源:igfitidea点击:

在这篇文章中,我们将看到一个使用OpenPDF库合并PDF的Java程序。

OpenPDF是具有LGPL和MPL许可证的开源软件。要了解有关OpenPDF库和PDF示例的更多信息,请查看此文章。使用OpenPDF教程在Java中生成PDF。

使用OpenPDF合并PDF

  • 要合并文档,我们需要使用PDFCopy类来复制PDF文档。
  • 使用PDFReader打开源PDF,并使用PDFCopy类的getImportedPage()方法从PDF获取页面。

以下Java程序显示了如何使用OpenPDF合并两个PDF文档。

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
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;

public class PDFMerge {
  public static final String MERGED_PDF = "F://theitroad//result//OpenPDF//Merged.pdf";
  public static void main(String[] args) {
    try {
      // Source PDFs as a list
      List<String> fileList = Arrays.asList("F://theitroad//PDF1.pdf", "F://theitroad//PDF2.pdf");
      Document doc = new Document();
      // Output stream to target PDF document
      PdfCopy copy = new PdfCopy(doc, new FileOutputStream(MERGED_PDF));
      doc.open();
      // Iterate through PDF files. 
      for(String filePath : fileList) {
        PdfReader pdfreader = new PdfReader(filePath);
        int n = pdfreader.getNumberOfPages();
        PdfImportedPage page;
        // go through pages of PDF to copy 
        // all the pages to the  target PDF
        for (int i = 1; i <= n; i++) {
          // grab page from input document
          page = copy.getImportedPage(pdfreader, i);
          // add content to target PDF
          copy.addPage(page);
        }
        copy.freeReader(pdfreader);
      }
      doc.close();
      copy.close();
    } catch (DocumentException | IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
}