使用iText PDF 库,是否可以自由(如 CSS 中的“位置:绝对”)在页面上插入叠加文本或其他元素,以便在所有现有元素之上呈现?
提前感谢所有帮助和提示。
使用iText PDF 库,是否可以自由(如 CSS 中的“位置:绝对”)在页面上插入叠加文本或其他元素,以便在所有现有元素之上呈现?
提前感谢所有帮助和提示。
查看 PDFStamper。它可能正是您正在寻找的。
这是教程。 http://itextdocs.lowagie.com/tutorial/general/copystamp/#pdfstamper
是的,绝对的。一切都必须在 PDF 中绝对定位,因此进行文本流、对齐等需要更多的工作。如果您要求,iText 会为您完成所有这些工作,但它仍然需要更多工作。
正如 Suvesh 所指出的,它PdfStamper
非常适合对现有 PDF 进行更改。添加绝对定位的文本非常简单。
也可以在 iText 中从头开始构建的 PDF 中绝对定位文本。
无论哪种情况,您都需要获得一个PdfContentByte
. 在PdfStamper
中,您调用getOverContent(pageNum)
或getUnderContent(pageNum)
。使用 PdfWriter,您只需调用getOverContent()
or getUnderContent()
。
使用 PdfWriter,您只需要一次获取 over 或 under PdfContentByte。每次它开始一个新页面时,它都会吸出所有内容并重置对象,为下一页做好准备。
OTOH,在您调用 之前它不会开始构建页面doc.close()
,因此您需要使用PdfPageEvent
(我建议从 派生PdfPageEventHelper
)在页面生成时在页面上写入......这不是您使用 PdfStamper 时遇到的问题。