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");