2

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

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

4

2 回答 2

4

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

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

于 2009-06-11T11:44:36.727 回答
4

是的,绝对的。一切都必须在 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 时遇到的问题。

于 2010-11-02T17:32:57.013 回答