如何为每个页面添加图像背景为pdf?

Xan*_*rUu 0 c# itextsharp

我正在尝试设置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
Run Code Online (Sandbox Code Playgroud)

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

mkl*_*mkl 5

每当您想要对每个页面应用某些内容时,您应该使用页面事件,更具体地说PdfPageEvent.onEndPage(),是使用页面事件.您可以通过关键字Page events> onEndPage找到其使用的样本---这些样本来自动作第2版的iText.当您想要添加背景图形时,样本主要添加页脚和标题.

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

PS: .Net的类似样本可以在这里找到.

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