iText7 将图像添加到背面

iText7 Add image to back

有没有办法将此图像添加到背面而不是覆盖页面上已有的文本?还是我需要使用切入文本的 Rectangle

 float mapimageX = 111.318f;
 float mapimageY = 130.791f;
 float mapimageWidth = 755.454f;
 float mapimageHeight = 432.094f;
 ImageData imageData = ImageDataFactory.Create(@"PathTOFile");
 imagerectangle = new iText.Kernel.Geom.Rectangle(mapimageX, mapimageY, mapimageWidth, mapimageHeight);
 canvasPage.AddImageFittedIntoRectangle(imageData, imagerectangle,true);

例子

正如您在评论中提到的那样,您创建了 PdfCanvas

PdfCanvas canvasPage = new PdfCanvas(pdfPage);

这基本上等同于

PdfCanvas canvasPage = new PdfCanvas(pdfPage.NewContentStreamAfter(), pdfPage.GetResources(), pdfPage.GetDocument());

加上一些优化,即您绘制的新内容会添加到现有页面内容之后。因此,新内容覆盖了同一区域的现有页面内容。

如果您希望现有页面内容覆盖适用的新内容,则必须在现有页面内容之前添加新内容。你可以这样做:

PdfCanvas canvasPage = new PdfCanvas(pdfPage.NewContentStreamBefore(), pdfPage.GetResources(), pdfPage.GetDocument());

但请注意:一些 PDF 创建者在绘制内容之前首先用白色矩形覆盖整个页面区域。如果您尝试操作这样的 PDF,您在后面创建的任何内容都将被所述白色矩形覆盖,因此将不可见。对于这种情况,使用特殊混合模式在前面添加可能会更好。