我有一个C#WinForm应用程序(除其他外)托管InfoPath FormControl以允许用户填写一些表单。除了保存表单XML之外,WinForm应用程序中提供的save方法还将表单导出为PDF,以便可以通过电子邮件发送PDF副本。
当我们使用InfoPath 2007时,一切运行良好。由于公司现在使用Office升级所有计算机,从2007年到2010年,我需要更新应用程序以使用InfoPath 2010.更改所需的引用后,所有内容似乎都是工作正常,直到保存功能尝试将表单导出为PDF。导出表单的代码(以前在使用2007时有效)如下所示:
this.view.OutputForm.XmlForm.CurrentView.Export(pdfFile, Microsoft.Office.InfoPath.ExportFormat.Pdf);
OutputForm是一个Microsoft.Office.InfoPath.FormControl对象。调用Export方法时抛出此异常:
InfoPath遇到错误。该 操作失败。
InfoPath无法导出表单。没有 这样的界面支持
at Microsoft.Office.Interop.InfoPath.SemiTrust.View.Export(String bstrURL,String strFormat)
at Microsoft.Office.Interop.InfoPath.SemiTrust.ViewObjectWrapper.Export(String bstrURL,String bstrFormat)
at Microsoft.Office.InfoPath.Internal.ViewHost.Export(String fileLocation,ExportFormat format) ...
我无法想象这个功能刚刚从托管的InfoPath 2010 FormControl中被删除了,有吗?我真的希望事实并非如此。
这里是否有任何InfoPath向导可以指向正确的方向,(我缺少什么或替代解决方案)?
根据Artur Mustafin的意见,我很乐意听取有关从InfoPath表单生成PDF的替代解决方案。
对于其他遇到此事的人,我发现这是thread on social.msdn.microsoft.com,其中Bruce Song声明:
......这是微软的一个已知问题 内部错误检查系统和 产品组正试图修复它。
答案 0 :(得分:1)
看来,您正在使用2007年的Office加载项办公室,该办公室正在扩展PDF 2.0文件格式的支持。
您需要(重新)安装和更新Office 2010的加载项版本。 一切都将无缝再次发挥作用。
此致 Artur Mustafin
按照google.com上的白色命令行,然后按SaveAsPDFandXPS ...
P.S。
此外,您的Office 2007 Addins将无法再用于Office 2010,因为COM接口,API已更改,现有方法的某些行为不再受支持,引入了其他接口。请继续关注Microsoft Connect。
希望它会有所帮助。