Как программно создать форму InfoPath из шаблона XSN InfoPath - PullRequest
2 голосов
/ 01 февраля 2012

Мне нужно решение, которое создает форму экземпляра InfoPath из шаблона XSN, существующего на сервере SharePoint, я использую этот подход , но он извлекает файлы шаблонов из временного каталога сервера, который может отсутствовать у нас разрешение на запись в. Есть ли лучшее решение для этого?

1 Ответ

5 голосов
/ 22 февраля 2012

Вы просто меняете CAB-библиотеку на библиотеку, которая может извлекать файл шаблона в память, например:

Минимальный код C # для извлечения из архивов .CAB или InfoPath XSN впамять

А затем вызовите, myCab.ExtractFile("template.xml", out buffer, out bufferLen);

, полный код будет выглядеть примерно так:

private byte[] GetXmlForm(SPDocumentLibrary list) {
  byte[] data = null;
  SPFile file = list.ParentWeb.GetFile(list.DocumentTemplateUrl);


  Stream fs = file.OpenBinaryStream();
  try {
    data = new byte[fs.Length];
    fs.Read(data, 0, data.Length);
  } finally {
    fs.Close();
  }

  byte[] buffer;
  int bufferLen;  
  CabExtract cab = new CabExtract(data);
  cab.ExtractFile("template.xml", out buffer, out bufferLen);

  return buffer;
}
...