如何以编程方式从InfoPath XSN模板创建InfoPath表单

Ami*_*mir 2 sharepoint infopath sharepoint-2010 infopath2010

我需要一个解决方案,从SharePoint服务器上存在的XSN模板创建InfoPath实例表单,我正在使用此方法,但这会在我们可能没有写入权限的服务器的临时目录中提取模板文件.有更好的解决方案吗?

小智 5

您只需将CAB库更改为可以将模板文件提取到内存的库,就像这个,

在内存中从.CAB存档或InfoPath XSN文件中提取的最小C#代码

然后打电话, 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;
}
Run Code Online (Sandbox Code Playgroud)