我有一个用例,我无法弄清楚如何实现。
我正在使用无头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。
这可能吗?如果不是现在我可以用另一种方法实现这个目标吗?
答案 0 :(得分:1)
在您所引用的示例中,您获得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