0

我尝试使用以下简单代码将 docx 文件转换为 pdf:

ConversionJobSettings jobSettings = new ConversionJobSettings();
jobSettings.OutputFormat = SaveFormat.PDF;
ConversionJob job = new ConversionJob("Word Automation Services", jobSettings);
job.AddFile(path + docFilename, path + pdfFilename);
job.Start();

但是当我尝试运行代码时出现异常:

找不到名为“Word Automation Services”的 Word Automation Services 应用程序代理

在服务应用程序中,两者

文字自动化服务

Word 自动化服务代理

开始。

我使用 Microsoft.Word.Office.Server(来自 C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI)

(更新:)当我添加自己的代理并使用该名称时,它似乎确实有效,但这不是必需的,对吧?

4

3 回答 3

0

我认为您需要在ConversionJob构造函数中使用代理名称“Word Automation Services Proxy”:

ConversionJobSettings jobSettings = new ConversionJobSettings();
jobSettings.OutputFormat = SaveFormat.PDF;
ConversionJob job = new ConversionJob("Word Automation Services Proxy", jobSettings);
job.AddFile(path + docFilename, path + pdfFilename);
job.Start();
于 2014-07-17T13:40:22.620 回答
0

我使用了以下代码段:

 WordServiceApplicationProxy proxy =
                            (WordServiceApplicationProxy)
                                SPServiceContext.GetContext(SPContext.Current.Web.Site)
                                    .GetDefaultProxy(typeof (WordServiceApplicationProxy));

                        ConversionJob job = new ConversionJob(proxy); //, jobSettings);

好像我的代理不叫“Word Automation Services”,而是“Word Automation Services Application”

更喜欢这种方法,没有“魔术字符串”

于 2014-07-17T14:15:41.563 回答
0

管理中心 -> 应用程序管理 -> 配置服务应用程序关联 ->

检查与您的 Web 应用程序关联的应用程序代理组是否具有“Word 自动化服务”,如果没有将他添加到应用程序代理

在此处输入图像描述

于 2017-08-24T22:25:49.847 回答