Itext7 C# 如何获取页码以将图像添加到 PDF?

Itext7 C# How do I get page number to add image to PDF?

我到处搜索,但所有文档都集中在 Java 答案上,而这些答案在 .NET 版本中没有相同的方法。我试图将图像插入到 PDF 的特定位置,但我无法正确插入它们。我可以获得准确的 X/Y 坐标,但是当它插入到 PDF 中时,它只会将所有坐标都插入到第一页。

我还发现高度和宽度与它们替换的字段不一样。我手表中的变量 window 显示了正确的高度和宽度,但它最终在 PDF 上被压缩了。当我以前使用它时,这不是 itextSharp 的问题。

var widgets = toSet.GetWidgets();   // toSet is the field to get position from

Rectangle position = widgets[0].GetRectangle().ToRectangle();
PdfPage page = widgets[0].GetPage();

if (position == null)
{
    throw new ApplicationException("Error locating field");
}

// set bottom left corner and width/height of field
float width = position.GetWidth();
float height = position.GetHeight();
float llx = position.GetX();
float lly = position.GetY();

// resize signature image, set position of bottom left corner to x and y coordinates
image.ScaleToFit(width, height);
image.SetFixedPosition(llx, lly);// I want to put the page number in this method override

doc.Add(image);

image.SetFixedPosition() 方法有一个覆盖,它接受整数页码,但我无法以编程方式从字段中找到页码。它还迫使我设置宽度,我想保持宽度与我设置的高度成比例。

确定页码

根据您的代码,您已经有了一个页面对象 PdfPage page,并且正在文档中查找它的页码。你可以使用PdfDocument方法

public virtual int GetPageNumber(PdfPage page)

为此。

仅设置图像的目标页码

您还有一个图像对象 Image image,并且只想为其设置页面。您可以使用 Image 方法

public virtual Image SetPageNumber(int pageNumber)

为此。