使用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”类型异常
附加信息:未将对象引用设置为对象的实例。
由于
答案 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)