SharePoint 2013 Word 转换PDF服务介绍及示例

原文:SharePoint 2013 Word 转换PDF服务介绍及示例

  前言:在SharePoint使用过程中,经常会发现将文档进行格式转换的需求,之前,看到SharePoint 2013有将PPT转换PDF文档的服务,后来,才发现SharePoint 2010开始,就有将Word文档转换PDF的服务了,用起来还是不错的。

  下面,我们就来看看这个服务,如何将一个Word文档库批量转换成PDF文件,或者,将单一Word文档转换为PDF文档。

一、             效果展示

新建测试Word文档,如下图:

新建文档库inputList作为word存放库,上传测试文档,如下图:

新建文档库outputList,作为输出PDF库,里面没有文件,如下图:

执行文件转换程序,执行后outputList文档库,如下图:

发现outputList还是没有文件,因为该服务是TimerJob的计时器任务,所以需要定时执行,去管理中心,找到该计划任务,立即运行,如下图:

再一次刷新outputList文档库,如下图:

下载一个PDF文件到本地,PDF阅读器打开,如下图:

二、             操作步骤

1、  新建项目,添加引用Microsoft.Office.Word.Server.dll,如下图:

位置如下:

C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.Office.Word.Server\v4.0_15.0.0.0__71e9bce111e9429c\Microsoft.Office.Word.Server.dll

2、  引用类库

using Microsoft.Office.Word.Server;

using Microsoft.Office.Word.Server.Conversions;

主要用于转换操作的是Microsoft.Office.Word.Server.Conversions,详细请参考附后的msdn文档。

3、  编写添加核心代码之文档库批量转换

 1 //创建一个转换job
 2 ConversionJob myJob = newConversionJob("Word Automation Services");
 3
 4 //设置转换job的UserToken、转换格式
 5 myJob.UserToken = site.UserToken;
 6 myJob.Settings.OutputFormat = SaveFormat.PDF;
 7 myJob.Settings.OutputSaveBehavior = SaveBehavior.AppendIfPossible;
 8
 9 //获取转出、转入文档库
10 SPList inputLibrary = web.Lists["inputlist"];
11 SPList outputLibrary = web.Lists["outputlist"];
12
13 //设置并执行转换job
14 myJob.AddLibrary(inputLibrary, outputLibrary);
15 myJob.Start();

4、  编写核心代码之单一文件转换

 1 //创建一个异步转换
 2 SyncConverter sc = newSyncConverter("Word Automation Services");
 3
 4 //设置转换UserToken、转换类型等
 5 sc.UserToken = site.UserToken;
 6 sc.Settings.UpdateFields = true;
 7 sc.Settings.OutputFormat = SaveFormat.PDF;
 8
 9 //读取需要转换的文件
10 SPFolder docs = web.Folders[siteURL +
11     "/Word_Transfer"];
12 SPFile file = docs.Files[siteURL +
13     "/Word_Transfer/SharePoint2013Word转换PDF服务测试文档.docx"];
14
15 //生成保存转换后文档的文件流
16 Stream fStream = file.OpenBinaryStream();
17 SPFileStream stream = newSPFileStream(web, 0x1000);
18
19 //启动异步转换
20 ConversionItemInfo info = sc.Convert(fStream, stream);
21
22 //转换后文档添加到文档库
23 SPFile newFile = docs.Files.Add(
24     "SharePoint2013Word转换PDF服务测试文档.pdf",
25     stream,
26     true);

5、  单一文件转换效果图,如下图:

三、             Word Automation Services介绍

1、  简单介绍

  Word Automation Services 是一项新的 SharePoint Server 2010 技术,它允许以无人参与的方式从服务器端转换 Microsoft Word 支持的文档。简言之,Word Automation Services 采用 Word 客户端应用程序的“另存为…”功能并为服务器复制该功能。

  通过 Word Automation Services,以前需要您运行 Word 客户端应用程序的任务现在可以无人参与模式自动运行,并且比以前的解决方案更可靠、伸缩性更强。

  以上是msdn上,关于Word Automation Services的说明,msdn很清楚的说到,这个服务的本质是采用Word客户端另存为的功能,所以,打开和另存的格式,和word2013客户端基本一致。

2、  Word Automation Services体系结构

  如上图,可以看到Word Automation Services服务的原理,通过对象模型将操作进入队列管理器,排队等候计时器作业(TimerJob)定时执行,然后调用Word文件转换服务引擎,将转换后的文件存入SharePoint内容数据库。

  特别的是,这个服务并不需要在服务器端,安装Office Word各种版本,即可完成操作,并且支持SharePoint2010和SharePoint2013版本。

3、  Word Automation Services三个基本概念

  Word Automation Services 包含三个基本概念,即转换、转换作业和文档队列。转换是一个过程,在此过程中,Word Automation Services 会接收一个具有给定格式的文件,然后以不同的格式将该文件输出。例如,服务可以将 Word 2010 文档 (.docx) 转换为 PDF 文档。

所有转换都通过以下步骤进行:

Ø  创建一个转换作业。

Ø  提供该作业的设置(例如,所需的输出文件格式)。

Ø  向该作业添加一个或多个文件。

Ø  将该作业提交到文档队列。

  所有转换操作都基于转换作业 的创建或使用。转换作业将描述要转换的文件和要对这些文件执行的操作。每个文件都将构成一个转换项,并且每个转换项都将映射到一个转换作业。一个转换作业可包含多个转换项。

文档队列 是一个“先进先出”队列,Word Automation Services 使用它根据为转换作业设置的计划来启动转换。

4、  支持打开的文档格式

Ø  打开 XML 文件格式文档(.docx, .docm, .dotx, .dotm)。

Ø  Word 97-2003 文档(.doc, .dot)。

Ø  RTF 格式文件 (.rtf)。

Ø  单个文件网页(.mht, .mhtml)。

Ø  Word 2003 XML 文档 (.xml)。

Ø  Word XML 文档 (.xml)。

5、  保存 Word 可以保存的文档类型,除去支持以上支持打开的类型,还包括一下两种:

Ø  可移植文档格式 (PDF) 文件。

Ø  XML 纸张规范 (XPS) 文件。

四、             完整代码

1、文档库批量转换代码

using (SPSite site = new SPSite(siteURL))
{
using (SPWeb web = site.OpenWeb())
{
    ConversionJob myJob = new ConversionJob("Word Automation Services");

    myJob.UserToken = site.UserToken;
    myJob.Settings.OutputFormat = SaveFormat.PDF;
    myJob.Settings.OutputSaveBehavior = SaveBehavior.AppendIfPossible;

    SPList inputLibrary = web.Lists["inputlist"];
    SPList outputLibrary = web.Lists["outputlist"];

    myJob.AddLibrary(inputLibrary, outputLibrary);
    myJob.Start();
}
}

2、文档单独转换代码

using (SPSite site = new SPSite(siteURL))
{
using (SPWeb web = site.OpenWeb())
{
    SyncConverter sc = new SyncConverter("Word Automation Services");

    sc.UserToken = site.UserToken;
    sc.Settings.UpdateFields = true;
    sc.Settings.OutputFormat = SaveFormat.PDF;

    SPFolder docs = web.Folders[siteURL +
        "/Word_Transfer"];
    SPFile file = docs.Files[siteURL +
        "/Word_Transfer/SharePoint2013Word转换PDF服务测试文档.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);
}
}

参考文献

Word Automation Services

http://msdn.microsoft.com/zh-cn/library/ee558278(v=office.14).aspx

时间: 2024-10-21 23:44:40

SharePoint 2013 Word 转换PDF服务介绍及示例的相关文章

SharePoint 2013 Excel Services REST API介绍

原文:SharePoint 2013 Excel Services REST API介绍 前言:Excel Services 中的 REST API 是 Microsoft SharePoint Server 2010 的新增项.利用 REST API,可通过 URL 直接访问工作簿部件或元素. 一.REST 服务基于两个要求: 用于定位网络资源的寻址方案 用于返回这些资源的表示形式的方法 二.REST URL基本URI的三个组成部分是: REST aspx 页 URI:http://<Serv

sharepoint 2013 中修改母版页简单介绍

sharepoint 2013 中修改母版页简单介绍 分类: SharePoint2013-07-05 11:10 1565人阅读 评论(1) 收藏 举报 1.打开网站操作:设计管理器中创建html母版页,系统会自动生成.master的母版页 2.打开spd编辑签出新建的html的母版页,在<body>中上面加上style="overflow:auto;",增加滚动条 3.在<body></body>中最上面加banner,最下面 添加相应的foot

SharePoint 2013 术语和术语集介绍

托管元数据是一个集中管理的术语的分层集合,我们能够定义术语和术语集,然后将其用作 SharePoint Server 2013 中项目的属性.简单的说.术语是一个可与 SharePoint Server 2013 中的项目相关联的词或短语.术语集则是一个相关术语的集合. 以下,让我们在实践中了解术语和术语集,以及在SharePoint 2013中的作用. 1.首先,我们须要创建"Managed Metadata Service",中文叫做元数据管理服务,术语和术语集就是依托这个服务的:

openoffice excel word 转换pdf

OpenOffice.org 是一套跨平台的办公室软件套件,能在Windows.Linux.MacOS X (X11)和 Solaris 等操作系统上执行.它与各个主要的办公室软件套件兼容.OpenOffice.org 是自由软件,任何人都可以免费下载.使用及推广它. 目前我已经测试过excel转换pdf已测试成功,word暂时没去测试,理论上是可以转换.因为原理都是调用openoffice的转换pdf功能. openoffice会自动判断源文件类型和目标文件类型. 工具类支持本地转换和远程调用

c#word转换pdf

首先呢,在项目中创建一个文件夹 wordpath,这个文件夹是存放你的word和pdf的. 首先要准备一个word放进去(.doc). 这个呢也是需要引用的,这个引用2015中就有  引用-添加引用-扩展 Microsoft.Office.Interop.Word.dll 然后呢  准备copy代码 public bool WordToPDF(string sourcePath) { bool result = false; Word.Application application = new

如何批量把Word转PDF,Word转换PDF如何在线转换

随着PDF文件的流行,大多数的公司存放文件和资料都已习惯性的用PDF格式,毕竟PDF文件的不可编辑性以及其保密性深受大家喜欢,今天就来跟大家分享一下如何批量将word文件转换成PDF文件.操作步骤:第一步:打开电脑,进入浏览器,在百度首页搜索迅捷PDF在线转换器.第二步:进入转换器首页后,在导航栏内点开文档转换,在下拉框内选择Word转PDF.第三步:打开Word转PDF后,点击选择文件,在弹出的窗口里加入待转换的Word文件.第四步:将提前准备好的Word文档添加好后,设置需要转换的页码等参数

SharePoint 2013 配置启用搜索服务

搜索内容时提示错误 1.尝试启动服务器场中的服务之SharePoint Server Search,提示新建搜索应用程序. (管理中心-----管理服务器上的服务,启动Sharepoint server search) http://www.cnblogs.com/jianyus/archive/2013/02/04/2891801.html

SharePoint 2013 版本号和相关问题介绍

今天查SharePoint 补丁,无意间发现一个非常好的链接,分享给大家! 这里面有SharePoint近期的版本号,而且不断更新,还有每个补丁可能带来的问题,对于服务器经常需要打补丁的那是非常有用,我这里就碰到过几次因为补丁引起的问题,比如 1.SharePoint 所有列表上传附件报错: 2.SharePoint 日历视图样式丢失: 都是打了下个版本补丁,解决的问题,当然,我都是一个补丁一个补丁的在虚机中测试,看看是哪个可能引起的,其中痛苦的过程,相信很多人都有过的,心碎! 最新版本号 链接

如何将word转换成pdf的两种便捷方法

为了让文件有更好的阅读效果并且保证在任何操作平台上都可以使用,很多时候我们需要将各种格式的文件转换成pdf格式的文件,其中最常见的可能就是word文档转换成pdf格式文件了.那么,如何将word转换成pdf呢?小猪猪现在为大家介绍两种常见的转换方法,需要的大家可以选择合适的使用. 一.使用word等office软件直接转换    这种方法优点很明显,可以不用下载第三方软件,操作比较简单.但是限制性比较大,需要是合适的格式且不能批量转换.小猪猪以word文档为例向大家介绍具体操作方法. word文