在 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生成的。我只是填写杂技字段。

在 iTextSharp 中显示/隐藏 AcroFields

您可以将 AcroField 设置为只读,如下所示:

form.setFieldProperty("companyFld", "setfflags", PdfFormField.FF_READ_ONLY, null);

顺便说一句,它是"设置标志"而不是"设置标志"

编辑:我的巴德!! 您要求使字段是否可见。 在这种情况下,您将使用"setflags"参数,并且可以传递任何 PdfAnnotation FLAGS_常量来调整可见性。