GenerateAppearances = true; System.NullReferenceException

时间:2017-11-08 12:20:01

标签: itext pdfstamper

使用iTextSharp获得一些遗留代码。

无论如何,所有文档都将GenerateAppearances设置为true。现在它触发了一个例外。

取出基本代码并将其放入控制台应用程序,同样的事情,使用通用PDF(http://www.pdf995.com/samples/pdf.pdf)同样的东西。

这是使用版本5.5.12

class Program
{
    static void Main(string[] args)
    {
        var reader = new PdfReader(@"C:\Users\me\Desktop\pdf.pdf"); 

        var outStream = new MemoryStream();
        var stamper = new PdfStamper(reader, outStream);

        stamper.AcroFields.GenerateAppearances = true; <--- usually true before setting
        stamper.FormFlattening = true;
    }
}

在itextsharp.dll中发生未处理的“System.NullReferenceException”类型异常

附加信息:未将对象引用设置为对象的实例。

由于

1 个答案:

答案 0 :(得分:1)

经过多年的制作,我只是改变了:

                                if (stamper.AcroFields != null)
                                {
                                    f.GenerateAppearances = true;

                                    foreach (var field in f.Fields)
                                    {
                                        f.SetField(field.Key, f.GetField(field.Key));
                                    }

                                    stamper.FormFlattening = true;
                                }

                            if (stamper.AcroFields != null && stamper.AcroFields.GenerateAppearances == true)