这里尝试将图像放置在彩色矩形上,但是图像没有出现。
请提出任何答案。

这是我的密码:-
pcb.RoundRectangle(iXCoordinate + 5, iYCoordinate, 500, 100, 5);
pcb.SetRGBColorFill(198, 226, 255);
pcb.Fill();
pcb.RoundRectangle(iXCoordinate + 5, iYCoordinate, 500, 100, 5); pcb.Stroke();
pcb.ResetRGBColorFill();
pcb.BeginText();
pcb.SetFontAndSize(BaseFont.CreateFont(@"C:\Windows\Fonts\arial.ttf", BaseFont.CP1252, false), 10);
pcb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, sCustomerName, iXCoordinate + 30, iYCoordinate, 0); iYCoordinate -= 12;
pcb.EndText();
iTextSharp.text.Image myImage = iTextSharp.text.Image.GetInstance(@"D:\Maruti\Resources\logo.jpg");
myImage.SetAbsolutePosition(iXCoordinate + 410, iYCoordinate - 40);
myImage.ScaleAbsoluteHeight(35);
myImage.ScaleAbsoluteWidth(80);
doc.Add(myImage);发布于 2018-01-23 09:46:44
在您的代码中,可以将表单和文本的直接绘图结合到页面内容流(使用最有可能从PdfContentByte pcb中检索到的DirectContent )和通过iText布局机制(使用Document doc)间接绘制图像。
以这种混合方式添加的元素不一定按照您在代码中添加它们的顺序出现在结果内容中。例如,在您的示例中,最后添加的图像(通过Document)实际上首先发生在内容流中,在您通过DirectContent添加的所有内容之前。因此,图像被(部分)覆盖在其后绘制的圆角矩形中。
通常,您可以通过只使用Document或DirectContent在同一页面区域中绘图来防止这一点。例如,在您的示例中,您也应该将图像添加到DirectContent,而不是添加到Document。用于此替换
doc.Add(myImage);通过
pcb.AddImage(myImage);现在,您的所有绘图都是使用DirectContent完成的,图像是在圆角矩形之后绘制的,因此完全可见。
但是,在另一个代码上有两个注释:
pcb.SetRGBColorFill之前提取pcb.RoundRectangle。pcb.FillStroke(),而不是两次定义它,一次用Fill(),一次用Stroke()。因此,一种既简单又更正确的绘制表单的方法是
pcb.SetRGBColorFill(198, 226, 255);
pcb.RoundRectangle(iXCoordinate + 5, iYCoordinate, 500, 100, 5);
pcb.FillStroke();
pcb.ResetRGBColorFill();https://stackoverflow.com/questions/48342020
复制相似问题