如何为每个页面添加图像背景到pdf?
问题描述:
我想设置一个PDF背景,并设置了一个图像我的pdf有一个大表,所以页面自动添加不与Document.NewPage()
方法,因此图像背景只设置在第一页。这是,其将所述背景的代码:如何为每个页面添加图像背景到pdf?
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()
方法。在关闭文档之前,我是否必须循环播放每一页并在结尾添加背景图像,但是如何将它放在背景中而不是其他元素之上?
答
无论何时您想将某些内容应用于每个页面,您都应该使用页面事件,更具体地说,可以使用PdfPageEvent.onEndPage(),
。您可以通过关键字Page events > onEndPage找到样品供其使用---这些样品取自iText in Action 2nd Edition。样本主要添加页脚和标题,同时您想添加背景图形。
要知道,你不应该添加内容到Document
实例在这里,而是直接将PdfWriter,
和你想要的图像是页面内容下,不在上面,你将需要使用PdfWriter.getDirectContentUnder()
像样品Stationery
而不是PdfWriter.getDirectContent()
像在其他样品。
PS: for .NET的类似样本,可以发现here.
PPS:样品ImageDirect.java/ImageDirect.cs显示了如何将图像添加到这可能是在这里失去了一些信息直接内容。
答
去
PdfPageEvent.onStartPage()
。在这种情况下,编写代码插入图像(就像你这样做)。它会做的是,只要一个新页面被创建,它就会将图像添加到它,然后将内容添加到它;给水印效果。
您向我展示的文档是用于java的,我的项目在c# – XandrUu 2013-02-11 14:05:17
@XandrUu我在类似的.Net示例中添加了一个链接到答案。 – mkl 2013-02-11 14:15:21
正是我应该看的,因为我没有找到有用的东西 – XandrUu 2013-02-11 14:35:21