繁体   English   中英

从 XMLFormView 中提取 XML

[英]Extracting XML from XMLFormView

有没有办法让 XML 出现在 XMLFormView 中? 我正在尝试为 InfoPath 表单创建一个带有“另存为 PDF”按钮的自定义 web 部件。 想法是将 XML 与表单的 XSL 结合起来,并将生成的 HTML 转换为 PDF,并作为弹出窗口呈现给用户。

因为它要以弹出窗口的形式呈现,所以不能选择使用 Workflows。

http://msdn.microsoft.com/en-us/library/microsoft.office.infopath.server.controls.xmlformview.xmllocation.aspx

此属性将为您提供基础 XML 文件的 Url。 您可以阅读 Stream 阅读器来阅读此 XML。

看看我的 codeplex 项目http://ip2html.codeplex.com/

它允许您从给定的 (InfoPath) XML & (XMLFormView) XSLT 生成 HTML。

We ended up using the XmlFormHostItem.NotifyHost method to send HTML to a custom web part in a button-clicked event, which converted the HTML to PDF using Winnovative HTML to PDF converter.

HTML 从 InfoPath 代码隐藏生成:

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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM