我在C#中使用iTextSharp 5.5.13尝试了这段代码:
Document document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(filename,FileMode.Create, FileAccess.Write));
document.Open();
document.Add(new Paragraph("Hello World!"));
PdfFormField field = PdfFormField.CreateSignature(writer);
field.setFieldName(SIGNAME);
field.SetPage();
field.SetWidget(new iTextSharp.text.Rectangle(72, 732, 144, 780), PdfAnnotation.HIGHLIGHT_INVERT);
field.SetFieldFlags(PdfAnnotation.FLAGS_PRINT);
writer.AddAnnotation(field);
PdfAppearance tp = PdfAppearance.CreateAppearance(writer, 72, 48);
tp.SetColorStroke(BaseColor.BLUE);
tp.SetColorFill(BaseColor.LIGHT_GRAY);
tp.Rectangle(0.5f, 0.5f, 71.5f, 47.5f);
tp.FillStroke();
tp.SetColorFill(BaseColor.BLUE);
ColumnText.ShowTextAligned(tp, Element.ALIGN_CENTER,
new Phrase("SIGN HERE"), 36, 24, 25);
field.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, tp);
document.Close();
除了setFieldName
之外,完美无缺。
在setFieldName
显示错误:
错误CS1061'PdfFormField'不包含的定义 “
setFieldName
”并且没有任何扩展方法“setFieldName
”接受a 可以找到类型为“PdfFormField
”的第一个参数(你错过了吗? using指令或程序集引用?)
如何设置
的字体大小ColumnText.ShowTextAligned(tp, Element.ALIGN_CENTER, new Phrase("SIGN HERE"), 36, 24, 25);
答案 0 :(得分:1)
尝试编写setFieldName
的实例:
field.FieldName = SIGNAME;