下面是初始设置矩形的代码(此代码有效)。以为我可以使用相同的代码设置为另一种颜色,但这不起作用。
AcroFields.FieldPosition f = form.GetFieldPositions(key)[0];
PdfContentByte pdfContentByte = stamper.GetUnderContent(f.page);
Rectangle rect = f.position.GetRectangle(f.position.Top, f.position.Bottom);
BaseColor yellowColor = new BaseColor(System.Drawing.Color.Yellow);
rect.BackgroundColor = yellowColor;
pdfContentByte.Rectangle(rect);
答案 0 :(得分:0)
你正在混合不同的东西。
您想要更改字段的窗口小部件注释的背景颜色,这是合法的要求。令人惊讶的是,这不是您在代码中所做的。在您的代码中,您可以使用stamper.GetUnderContent(f.page);
注释和页面内容是两个完全不同的东西:
/Contents
条目中引用的PDF语法流组成。/Annots
条目中引用。您应该更改窗口小部件注释的背景颜色,而不是在页面内容中绘制一些矩形。更改key
形式的字段form
的背景,如下所示:
form.SetFieldProperty(key, "bgcolor", BaseColor.YELLOW, null);
如果您想将该颜色更改为另一种颜色,只需使用相同的行,但使用不同的颜色参数。