我有一个现有的PDF,我试图在Header中添加一个徽标,我从中找到了一个很好的例子 How can I insert an image with iTextSharp in an existing PDF?
在image.SetAbsolutePosition(100, 100);
中通过0,0添加徽标
但我想在标题中添加徽标。如果有人知道,请建议。
答案 0 :(得分:1)
您是从头开始创建文档吗?
如果是,
你知道页面的尺寸。默认情况下为PageSize.A4
,或者您传递给Rectangle
构造函数的Document
。您需要根据X
的值调整Y
和Rectangle
值。例如:
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}}的值,您可以定义图像的位置,如上所示。
我希望您了解您使用rect
和x = 0
的代码并不总是在页脚中显示图片。您假设每个PDF中每个页面的左下角都有坐标y = 0
。这个假设是错误的!