我在SharePoint网站上有一个多视图InfoPath
表单。我需要使用C#从表单的当前视图生成PDF。我做了很多搜索,但到目前为止还没有答案。
非常感谢您的输入。
答案 0 :(得分:1)
如果您使用的是InfoPath 2010,则可以使用java脚本找到当前视图的名称。在渲染页面中,有一个名为“CurrentFormData.g_objCurrentFormData”的Array变量,它保存当前表单查看器的数据。
查找查看器的客户端名称(例如:ctl00_PlaceHolder1_XmlFormView1)并使用该名称读取数据。例如:
CurrentFormData.g_objCurrentFormData[ctl00_PlaceHolder1_XmlFormView1]
这是一个数组本身,其中第9个元素是当前视图的名称。
CurrentFormData.g_objCurrentFormData[ctl00_PlaceHolder1_XmlFormView1][9]
读取它,将其存储在您可以在服务器端读取的隐藏服务器端输入字段中。
这个解决方案虽然很糟糕。如果Microsoft决定将该值存储在其他位置,则此代码将无法正常工作。
答案 1 :(得分:0)
如果它不是基于浏览器的表单,那么您可以从与表单
相关联的C#代码中执行此操作this.CurrentView.Export(@"c:\temp\YourForm.pdf", ExportFormat.Pdf);
您还可以打印到Infopath 2010及更高版本中内置的PDF文件。
或者,您可以使用ITextSharp
之类的内容生成PDF