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

in iText5 how to add PdfTemplate into PdfStamper if possible?

我有一个用例,但我不知道如何实现。

我正在使用 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。

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

在您引用的示例中,您获得 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?

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