有没有人对如何在iTextSharp中的PdfSignatureAppearance矩形上设置背景颜色有任何想法?我创建PdfSignatureAppearance对象并可以在页面上设置其定位,但矩形只有透明背景。我试图应用一种颜色(任何真的)。
我尝试创建一个新的iTextSharp.text.Rectangle然后设置rect.BackgroundColor = new BaseColor(System.Drawing.Color.Yellow);
那不起作用。通过将样式应用于签名外观对象的layer2,我看到其他人尝试类似的东西。我没有运气就尝试过这些。
PdfTemplate sigAppLayer2 = appearance.GetLayer(2);
sigAppLayer2.SetRGBColorFill(255, 0, 0);
sigAppLayer2.SetGrayFill(2);
sigAppLayer2.BoundingBox.BackgroundColor = new BaseColor(System.Drawing.Color.Yellow);
无论何时我尝试对layer2进行上述样式更改之一,可见签名都会在PDF上消失。如果我尝试将它应用于第0层或第1层,则没有任何反应。我假设我正在触摸正确的图层(2)。
有什么想法吗?目标是在签名框上获得背景而不是透明。
见下面的评论。我尝试了这个设置以及第2层和第0层。两者都会产生一个红色框,但缺少签名文本。
PdfTemplate sigAppLayer2 = appearance.GetLayer(2);
Rectangle rect = sigAppLayer2.BoundingBox;
PdfTemplate sigAppLayer0 = appearance.GetLayer(0);
sigAppLayer0.SetRGBColorFill(255, 0, 0);
sigAppLayer0.Rectangle(rect.Left, rect.Bottom, rect.Width, rect.Height);
sigAppLayer0.Fill();
答案 0 :(得分:1)
您需要绘制矩形并使用填充颜色填充该矩形。
从内存(未经测试),你需要这样的东西:
PdfTemplate sigAppLayer2 = appearance.GetLayer(2);
Rectangle rect = sigAppLayer2.BoundingBox;
sigAppLayer2.SetRGBColorFill(255, 0, 0);
sigAppLayer2.Rectangle(rect.Left, rect.Bottom, rect.Width, rect.Height);
sigAppLayer2.Fill();
答案 1 :(得分:0)
这是方法:
PdfTemplate sigAppLayer2 = appearance.GetLayer(2);
Rectangle rect = sigAppLayer2.BoundingBox;
sigAppLayer2.SetRGBColorFill(255, 0, 0);
sigAppLayer2.Rectangle(rect.Left, rect.Bottom, rect.Width, rect.Height);
sigAppLayer2.Fill();
sigAppLayer2.ResetRGBColorFill();// <--------- you needs this
sigAppLayer2.BeginText() ...etc