如何使用iTextSharp 5.5.13将签名字段添加到pdf

时间:2018-03-21 12:32:11

标签: c# itext itext7

我在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);

1 个答案:

答案 0 :(得分:1)

尝试编写setFieldName的实例:

field.FieldName = SIGNAME;