iText - 在所有元素的顶部插入叠加文本

时间:2009-06-11 11:38:40

标签: java pdf pdf-generation overlay itext

使用iText PDF library,是否可以自由地(如CSS中的“position:absolute”)在页面上插入叠加文本或其他元素,以便它在所有现有元素之上呈现?

提前感谢所有帮助和提示。

2 个答案:

答案 0 :(得分:4)

查看PDFStamper。它可能正是您正在寻找的。

这是教程。 http://itextdocs.lowagie.com/tutorial/general/copystamp/#pdfstamper

答案 1 :(得分:4)

是的,绝对。一切都必须绝对定位于PDF,因此进行文本流,对齐等需要更多的工作。如果你问的话,iText会为你做所有这些,但它还有更多工作要做。

正如Suvesh指出的那样,PdfStamper非常适合对现有PDF进行更改。添加绝对定位的文本非常简单。

也可以在iText中从头开始构建PDF格式的文本。

在任何一种情况下,您都需要获得PdfContentByte。在PdfStamper,您可以致电getOverContent(pageNum)getUnderContent(pageNum)。使用PdfWriter,您只需拨打getOverContent()getUnderContent()即可。

使用PdfWriter,您只需要获得一次或多于PdfContentByte。每次启动一个新页面时,它都会将所有内容都删除并重置该对象,为下一页做好准备。

OTOH,在您致电doc.close()之前,它不会开始构建页面,因此您需要使用PdfPageEvent(我建议从PdfPageEventHelper派生)来在页面上书写'生成......不是你用PdfStamper会遇到的问题。