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

标签 java pdf itext pdf-generation

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

我正在使用 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?举个例子。

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

关于java - 在 iText5 中,如果可能的话,如何将 PdfTemplate 添加到 PdfStamper 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49912903/

相关文章:

关闭后立即从 Web 服务器删除文件的 C# 技术

java - 没有打印语句,循环看不到其他线程更改的值

java - 如何确保字符串输入在解析为整数时不会丢失任何字符

java - 导入导致 verifyError? java

python - 使用 python 从 pdf 中读取表格

java - 如何在Java中使用Itext动态创建页脚?

java - Spring 数据 Neo4j : Indefinite waiting for RWLock without DeadlockDetectedException

c# - MigraDoc C# 在同一行左右对齐

java - 使用 iText 7 创建带有表单字段的 PDF/A-3 会导致 PdfAConformanceException

android - 在 android gradle 中导入 itext-7