【发布时间】:2011-05-11 10:34:06
【问题描述】:
我有一个 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 会以这种方式运行有任何想法或见解??
【问题讨论】:
-
您是否在使用的所有 PDF 表单中都得到了这个,还是只是一个特定的表单?
-
@Paddy:有些工作 - 其他不
-
iText 支持有点奇怪,但您是否尝试过在他们的邮件列表上发帖:lists.sourceforge.net/lists/listinfo/itext-questions
-
你真的需要升级到最新版本的库,还是可以继续使用之前的版本?这只是让我想起了一句话:“如果它没有坏,就不要修复它”!确实,如果您并不特别需要 v5.0 提供的功能。
-
@Will Marcouiller:由于升级到 v5 也没有解决我的其他问题,我可能会回去。我只是想知道 v4 和 v5 之间的“中断”是什么,以及如何解决它,如果我出于某种原因确实需要转到 v5。
标签: c# itextsharp pdf-form