有没有办法让XML呈现在XMLFormView中?我正在尝试使用InfoPath表单的“另存为PDF”按钮创建自定义Web部件。我们的想法是将XML与表单的XSL结合起来,并将生成的HTML转换为PDF,然后将其作为弹出窗口呈现给用户。
因为它是一个弹出窗口,所以不能使用工作流程。
答案 0 :(得分:0)
此属性将为您提供基本XML文件的Url。您可以阅读Stream阅读器来阅读此XML。
答案 1 :(得分:0)
查看我的codeplex项目http://ip2html.codeplex.com/
它允许您从给定(InfoPath)XML& XML生成HTML。 (XMLFormView)XSLT。
答案 2 :(得分:0)
我们最终使用XmlFormHostItem.NotifyHost
方法将HTML发送到按钮单击事件中的自定义Web部件,该事件使用Winnovative HTML转换为PDF转换为PDF。
从InfoPath代码隐藏生成HTML:
var formData = new XmlDocument();
var xslt = new XslCompiledTransform(true);
// Load the form data
formData.LoadXml(MainDataSource.CreateNavigator().InnerXml);
// Extract the stylesheet from the package
xslt.Load(ExtractFromPackage("Print.xsl")); // (uses Template.OpenFileFromPackage(string fileName) to get xsl)
// Perform XSL-transformation
// [...]
// Send HTML to web part
this.NotifyHost(formData.InnerXml);
此方法的一个缺点是NotifyHost事件仅在每个表单中触发一次,因此如果用户单击“另存为PDF”然后取消,则必须重新加载表单才能保存为PDF。