0

我正在尝试将背景设置为 pdf 并设法用图像设置它我的 pdf 有一个大表格,因此页面是自动添加的,而不是使用该Document.NewPage()方法,因此图像背景仅在第一页上设置。这是添加背景的代码:

    Image backImg = Image.GetInstance(@"D:\websites\DIS\bugs\130208\A4.png");
    backImg.SetAbsolutePosition(0, 0);
    backImg.Alignment = Image.UNDERLYING;

    var doc = new Document(pageSize);
    PdfWriter pdfWriter = PdfWriter.GetInstance(doc, new FileStream(filePath, FileMode.Create));
    doc.Open();

    doc.Add(backImg);
    ...
    creating a big table

并且不使用该doc.NewPage()方法。在关闭文档之前,我是否必须循环抛出每个页面并在末尾添加背景图像,但是如何将它放在背景中而不是其他元素之上?

4

2 回答 2

5

每当你想对每个页面应用一些东西时,你应该使用页面事件,更具体地说PdfPageEvent.onEndPage(),是这样做。您可以通过关键字Page events > onEndPage找到其用法示例——这些示例取自iText in Action 2nd Edition。示例主要添加页脚和页眉,而您要添加背景图形。

请注意,您不应该在Document此处将内容添加到实例中,而是直接添加到PdfWriter,并且因为您希望图像位于页面内容下方,而不是上方,您需要PdfWriter.getDirectContentUnder()在示例中使用 likeStationery而不是PdfWriter.getDirectContent()在其他示例中使用样品。

PS: .Net 的类似示例可以在这里找到。

PPS:示例ImageDirect.java / ImageDirect.cs展示了如何将图像添加到某些可能是此处缺少的信息的直接内容。

于 2013-02-11T14:02:02.120 回答
0

去做

PdfPageEvent.onStartPage()

. 在这种情况下,编写代码以插入图像(正如您所做的那样)。它将做的是,一旦创建了新页面,它就会将图像添加到其中,然后在其上添加内容;赋予水印效果。

于 2013-02-17T06:44:29.223 回答