1.创建Word Conversion Service:
New-SPServiceApplicationPool -Name "SharePoint WordConversion" -Account "contoso\spappadmin"
New-SPWordConversionServiceApplication -Name "Word Conversion Services" -ApplicationPool "SharePoint WordConversion"
2.引用程序集:C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.Office.Word.Server\
v4.0_16.0.0.0__71e9bce111e9429c:
3.编写代码:
a:转换整个文档库:
using (SPSite site = new SPSite("http://sp2016")) { using (SPWeb web=site.OpenWeb()) { ConversionJob myJob = new ConversionJob("Word Conversion Services"); //设置转换job的UserToken、转换格式 myJob.UserToken = site.UserToken; myJob.Settings.OutputFormat = SaveFormat.PDF; myJob.Settings.OutputSaveBehavior = SaveBehavior.AppendIfPossible; //获取转出、转入文档库 SPList inputLibrary = web.Lists["DocDemo"]; SPList outputLibrary = web.Lists["DocDemo"]; //设置并执行转换job myJob.AddLibrary(inputLibrary, outputLibrary); myJob.Start(); }
}
b:单个文件转换:
//创建一个异步转换 SyncConverter sc = new SyncConverter("Word Conversion Services"); //设置转换UserToken、转换类型等 sc.UserToken = site.UserToken; sc.Settings.UpdateFields = true; sc.Settings.OutputFormat = SaveFormat.PDF; //读取需要转换的文件 SPFolder docs = web.Folders[site.Url + "/DocDemo"]; SPFile file = docs.Files[site.Url + "/DocDemo/test.docx"]; //生成保存转换后文档的文件流 Stream fStream = file.OpenBinaryStream(); SPFileStream stream = new SPFileStream(web, 0x1000); //启动异步转换 ConversionItemInfo info = sc.Convert(fStream, stream); //转换后文档添加到文档库 SPFile newFile = docs.Files.Add( "SharePoint2013Word转换PDF服务测试文档.pdf", stream, true); Console.WriteLine("end");
