Извлечение XML из XMLFormView - PullRequest
       23

Извлечение XML из XMLFormView

1 голос
/ 17 августа 2011

Есть ли способ получить XML, представленный в XMLFormView? Я пытаюсь создать пользовательскую веб-часть с кнопкой «Сохранить как PDF» для формы InfoPath. Идея состоит в том, чтобы объединить XML с XSL формы и превратить полученный HTML в PDF, который представляется пользователю как всплывающее окно.

Поскольку это должно быть представлено как всплывающее окно, использование рабочих процессов не вариант.

Ответы [ 3 ]

0 голосов
/ 17 августа 2011

Взгляните на мой проект codeplex http://ip2html.codeplex.com/

Он позволяет генерировать HTML из заданного (InfoPath) XML и (XMLFormView) XSLT.

0 голосов
/ 29 августа 2011

В итоге мы использовали метод XmlFormHostItem.NotifyHost для отправки HTML-кода в пользовательскую веб-часть в событии, нажатом на кнопку, который преобразовал HTML в PDF с помощью Winnovative HTML в PDF Converter.

Генерация HTML из InfoPathcode-behind:

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.

0 голосов
/ 17 августа 2011

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

Это свойство даст вам URL базового XML-файла. Для чтения этого XML вы можете прочитать потоковую программу чтения.

...