如何为每一页的pdf添加图像背景

本文关键字:pdf 添加 图像 背景 一页 | 更新日期: 2023-09-27 17:58:35

我正在尝试为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

而不使用CCD_ 2方法。在关闭文档之前,我是否必须循环抛出每一页并在末尾添加背景图像,但我如何将其放在背景中,而不是放在其他元素之上?

如何为每一页的pdf添加图像背景

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

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

PS:可以在此处找到.Net的类似示例。

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

选择

PdfPageEvent.onStartPage()

在这种情况下,编写代码以插入图像(在执行时)。它将做的是,一旦创建了一个新页面,它就会将图像添加到其中,然后将内容添加到上面;从而产生水印效果。