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,您在后面创建的任何内容都将被所述白色矩形覆盖,因此将不可见。对于这种情况,使用特殊混合模式在前面添加可能会更好。
有没有办法将此图像添加到背面而不是覆盖页面上已有的文本?还是我需要使用切入文本的 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,您在后面创建的任何内容都将被所述白色矩形覆盖,因此将不可见。对于这种情况,使用特殊混合模式在前面添加可能会更好。