我有一个 PDF 表单模板,我从您的 C# 代码中填写了值,以便打印出来。
突然,我的客户报告错误 - 当尝试打印 PDF(从 ASP.NET 页面)时,他们得到:
无法将“iTextSharp.text.pdf.PdfName”类型的对象转换为“iTextSharp.text.pdf.PdfIndirectReference”
在挖掘我的代码时,我发现这里的这行代码发生了这个错误:
PdfReader reader = new PdfReader("MyPdfTemplateName.pdf");
PdfStamper stamper = new PdfStamper(reader, ms);
// filling field values here.....
stamper.FormFlattening = true; // **** EXCEPTION HERE *****
stamper.Writer.CloseStream = false;
stamper.Close();
有趣的是:这只发生在 iTextSharp 的“新”版本 5.0 上——我回到了我以前的版本 4.1.2,并且使用完全相同的代码、完全相同的 PDF 格式,它完美地工作......
任何人都知道为什么iTextSharp 的新 v5 会以这种方式运行?