代码之家  ›  专栏  ›  技术社区  ›  JasonY

在iText5中,如果可能,如何将PdfTemplate添加到PdfStamper中?

  •  0
  • JasonY  · 技术社区  · 6 年前

    我有一个无法理解如何实现的用例。

    我正在使用headless chrome将富格文本编辑器导出为pdf,然后我需要剪切创建的pdf的一部分,并将其作为pdf注释嵌入到另一个父pdf中,以便注释看起来与我从创建的pdf中剪切的部分完全相同。

    我能够使用以下提供的说明从创建的PDF中正确计算并切割所需的精确区域: https://developers.itextpdf.com/examples/stamping-content-existing-pdfs-itext5/cut-and-paste-content-page

    PdfTemplate template2 = cb.createTemplate(pageSize.getWidth(), pageSize.getHeight());
    template2.rectangle(toMove.getLeft(), toMove.getBottom(), toMove.getWidth(), toMove.getHeight());
    template2.clip();
    template2.newPath();
    template2.addTemplate(page, 0, 0);
    cb.addTemplate(template1, 0, 0);
    cb.addTemplate(template2, -20, -2);
    

    我想通过PdfStamper添加PDFTemplate。

    这可能吗?如果不是现在,我可以用另一种方法来实现这一点吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Bruno Lowagie    6 年前

    在您参考的示例中,您可以获得 cb 像这样:

    PdfContentByte cb = writer.getDirectContent();
    

    使用时 PdfStamper ,您可以获得 cb公司 像这样:

    PdfContentByte cb = stamper.getUnderContent(p);
    

    或者像这样:

    PdfContentByte cb = stamper.getOverContent(p);
    

    前一种方法将添加新内容 在下面 现有内容;后一种方法将添加新内容 在上面 现有内容。在这些行中 p 是页码(从1到现有文档的总页数)。看见 How to superimpose pages from existing documents into another document? 例如。

    如果要向现有文档添加新页面,请使用 insertPage() 方法如中所述 How to add blank pages to an existing PDF in java? 添加空白页后,可以添加 PdfTemplate 对它。