我正在尝试设置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()
方法。在关闭文档之前,我是否必须循环抛出每个页面并在结尾添加背景图像,但是如何将其放在后台而不是其他元素之上?
答案 0 :(得分:5)
每当您想要对每个页面应用某些内容时,您应该使用页面事件,更具体地说PdfPageEvent.onEndPage(),
来执行此操作。您可以通过关键字Page events > onEndPage找到其使用的样本 - 这些样本来自iText in Action 2nd Edition。当您想要添加背景图形时,样本主要添加页脚和标题。
请注意,您不应在此处向Document
实例添加内容,而是直接向PdfWriter,
添加内容,并且您希望图片位于页面内容之下,而不是在其上方,您将我需要像Stationery
样本中使用PdfWriter.getDirectContentUnder()
,而像其他样本一样使用PdfWriter.getDirectContent()
。
PS: .Net的类似样本可以找到here.
PPS :示例ImageDirect.java / ImageDirect.cs显示了如何将图片添加到某些直接内容中,这些内容可能是此处缺少的信息。
答案 1 :(得分:0)
去寻找
PdfPageEvent.onStartPage()
。在这种情况下,编写代码以插入图像(正如您所做的那样)。它会做的是,只要创建一个新页面,它就会将图像添加到它,然后将内容添加到它上面;给出水印效果。