【问题标题】:Merge 2 PDFs in Java在 Java 中合并 2 个 PDF
【发布时间】:2013-05-09 21:46:29
【问题描述】:

我在 iText 和将 2PDF 合并为 1 PDF 时遇到问题。

我想合并这些 PDF:

PDF1 - 一个站点:

这是 PDF1。

PDF2 - 一个站点:

这是 PDF2。

我需要什么:https://dl.dropboxusercontent.com/u/4001370/whatIneed.pdf

代码 1 - 两个站点:

一个站点一:这是 PDF1。
一站二:这是PDF2。

    PDFMergerUtility ut = new PDFMergerUtility();
    ut.addSource("C:\\Temp\\PDF1.pdf");
    ut.addSource("C:\\Temp\\PDF2.pdf");
    ut.setDestinationFileName("C:\\Temp\\Code1.pdf");
    ut.mergeDocuments();

代码 2 - 数字被覆盖:

这是 PDF (1/2)。

public class main {
public static void main(String[] args) throws IOException, DocumentException {
    PdfReader reader;
    PdfImportedPage page;


    LinkedList<File> fileList = new LinkedList<File>();
    fileList.add(new File("C:\\Temp\\PDF1.pdf"));
    fileList.add(new File("C:\\Temp\\PDF2.pdf"));


    File ergebnis = new File("C:\\Temp\\Code2.pdf");
    Document document2 = new Document(PageSize.A4);
    PdfWriter writer = PdfWriter.getInstance(document2, new FileOutputStream(ergebnis));

    document2.open();
    PdfContentByte canvas = writer.getDirectContent();

    // Header 
    reader = new PdfReader(fileList.get(0).getAbsolutePath());
    page = writer.getImportedPage(reader, 1);
    canvas.addTemplate(page, 0, 0);
    // Aufgabe
    reader = new PdfReader(fileList.get(1).getAbsolutePath());
    for(int i=1; i<=reader.getNumberOfPages(); i++){
        page = writer.getImportedPage(reader, i);
        canvas.addTemplate(page, 0, 0);
        document2.newPage();
    }

    document2.close();
    writer.close();
}

}

我不知道。我希望你能帮助我解决这个问题。

【问题讨论】:

  • 是否清楚所有页面 1 加上所有页面 2 一起适合单个目标页面?在这种情况下,您只需调整canvas.addTemplate(page, 0, 0);的数字参数

标签: java pdf itext


【解决方案1】:

请阅读我的书的Chapter 6。它解释了为什么使用PdfWriter/PdfImportedPage 是合并文档的错误方法。如果您想连接两个文档,您应该使用PdfCopyPdfSmartCopy。如果您希望一个文档充当另一文档的公司信纸,您应该使用PdfStamper。根据您的问题,尚不清楚您需要哪一个(您可以对其进行解释),因此请阅读第 6 章。我已经完成了编写并免费提供的工作,以便您可以选择解决方案适合你。

【讨论】:

  • 我收集到提问者希望将两个源文档的内容放在同一结果页面上一个在另一个下,因此 PdfCopy 可能不是解决方案。
  • 这就是为什么我添加了关于 PdfStamper 和公司文具的备注。
  • Jep 我需要在一个结果页面上的两个文档。感谢关于 iText 的章节。我读过它,但我无法将我的两个 pdf 连接到一个站点上的一个 pdf。
  • 定义“在一个站点上”。在这种情况下,网站一词指的是什么?
  • 另外,“连接”这个词可能是错误的。我猜你的意思是说“叠加”。请改写,以便问题更准确。请不要期望人们对不准确的问题给出准确的答案。
【解决方案2】:

这个问题有点含糊 - 如果您问如何获取两个 PDF 并将它们合并在一起,这篇 SO 文章显示了在 iText 中执行此操作的最简单方法:How to merge different documents into single one?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-20
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 2012-05-30
    • 2012-01-12
    • 2014-10-16
    • 2015-08-17
    相关资源
    最近更新 更多