在 iTextSharp 中显示/隐藏 AcroFields
本文关键字:隐藏 AcroFields 显示 iTextSharp | 更新日期: 2023-09-27 17:56:35
我有以下代码:
PdfStamper pst = null;
try
{
PdfReader reader = new PdfReader(GetTemplateBytes());
pst = new PdfStamper(reader, Response.OutputStream);
var acroFields = pst.AcroFields;
pst.FormFlattening = true;
pst.FreeTextFlattening = true;
pst.SetFullCompression();
SetFieldsInternal(acroFields);
pst.Close();
}
protected override void SetFieldsInternal(iTextSharp.text.pdf.AcroFields acroFields)
{
acroFields.SetFieldProperty("txtForOffer", "setflags", PdfAnnotation.FLAGS_PRINT, null);
}
如何在 SetFieldsInternal 函数中显示/隐藏 acrofields?
关键是用户可能想要下载 PDF 的 2 个版本,一个显示一些文本,一个没有显示文本。
模板PDF是使用OpenOffice生成的。我只是填写杂技字段。
您可以将 AcroField 设置为只读,如下所示:
form.setFieldProperty("companyFld", "setfflags", PdfFormField.FF_READ_ONLY, null);
顺便说一句,它是"设置标志"而不是"设置标志"
编辑:我的巴德!! 您要求使字段是否可见。 在这种情况下,您将使用"setflags"参数,并且可以传递任何 PdfAnnotation FLAGS_常量来调整可见性。