如何从WinForm托管的FormControl中将InfoPath表单导出为PDF?

时间:2011-01-16 08:00:16

标签: c# winforms pdf-generation infopath

我有一个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声明:

  

......这是微软的一个已知问题   内部错误检查系统和   产品组正试图修复它。

1 个答案:

答案 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。

希望它会有所帮助。