如何在C#中的现有Pdf中的标题中添加徽标

时间:2013-08-23 12:50:26

标签: c# pdf itextsharp itext

我有一个现有的PDF,我试图在Header中添加一个徽标,我从中找到了一个很好的例子 How can I insert an image with iTextSharp in an existing PDF?

image.SetAbsolutePosition(100, 100);中通过0,0添加徽标 但我想在标题中添加徽标。如果有人知道,请建议。

1 个答案:

答案 0 :(得分:1)

您是从头开始创建文档吗?​​

如果是, 你知道页面的尺寸。默认情况下为PageSize.A4,或者您传递给Rectangle构造函数的Document。您需要根据X的值调整YRectangle值。例如:

image.setAbsolutePosition(rect.Left, rect.Top - image.ScaledHeight);

rect是页面大小。

当您添加标题时,您希望此标题显示在每个页面上,因此您将使用页面事件。请查看this example中的OnEndPage()方法。确保不像页面那样多次添加图像字节!在onEndPage方法之外创建外部的图像实例,例如在页面事件实现的构造函数中。

如果没有,,您需要获取每个页面的CropBox:

rect = reader.GetCropBox(page);

如果没有定义CropBox,则需要获取MediaBox:

rect = reader.GetPageSize(page);

其中page是页码(例如1)。根据{{​​1}}的值,您可以定义图像的位置,如上所示。

我希望您了解您使用rectx = 0的代码并不总是在页脚中显示图片。您假设每个PDF中每个页面的左下角都有坐标y = 0。这个假设是错误的!