问题标签 [word-automation-service]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
238 浏览

pdf - Word Automation Service 断开目录中的链接

我编写了一个代码,它利用 Word Automation Service 将 .DOCX 文件转换为 .PDF。我注意到如果 Word 文档包含目录,它的链接会在 PDF 中删除。这对我的商业案例非常不利。

另一方面,手动打开 MS Word 并将相同的文档保存为 PDF 会保留目录中的链接。这是我正在寻找的行为,但我想保持我的代码独立形式,在运行我的代码的机器上安装了 MS Office Word。

有没有人遇到过类似的问题,有人能够解决吗?

0 投票
1 回答
756 浏览

c# - Word Automation Services - 作业失败,出现错误 131172

我们在 Sharepoint 2010 中遇到了 Word Automation Services 的问题。我们有一个工作流,它将转换作业(docx 到 pdf)排队。在我们的开发环境中,一切正常,但在生产中,出现了一个奇怪的错误。任何地方都没有显示错误,但是根本没有创建文件。唯一的诊断是,它将错误号 131172 放入 Word Automation Services 数据库中的 Items 表中。

没有任何内容进入 SP 日志(日志级别设置为信息),也没有任何内容进入事件日志。我们的错误编号未在文档中列出。计时器已启动并正在运行..

排队作业的一段代码(没什么特别的):

有没有人见过这种错误?

0 投票
2 回答
3346 浏览

c# - 使用 System.Diagnostics.Process 对象识别单词实例的进程 ID

我有启动 Word 应用程序实例的代码,如下所示

我现在需要知道已启动的单词实例的进程 ID。我不能使用 FindWindow 来获取窗口句柄和 GetWindowThreadProcessId 来从句柄中获取进程 ID,因为代码在 Windows Server 2008 上不起作用。

我使用Process.GetProcessesByName("WINWORD")获得所有文字处理。Process 是否有任何属性可以为我提供我们在 app.Caption 中设置的值?如果没有,我是否可以设置 Word.Application 的任何其他属性,然后再从 Process 数组中读取以识别 Word 的正确实例?

0 投票
3 回答
2408 浏览

c# - 尝试在 SharePoint 2013 中运行 Word Automation Services 时出现异常

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

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

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

在服务应用程序中,两者

文字自动化服务

Word 自动化服务代理

开始。

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

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

0 投票
1 回答
1281 浏览

ms-word - 表格文本在通过单词自动化服务运行后获得额外的间距

我正在从一堆模板文档中生成一个文档,此外我还添加了一些表格作为 html altChunks(因为它比尝试使用 OpenXML 创建表格要容易得多)。这一切都很好,给了我想要的结果。但是,由于altChunk某些版本的 Word(尤其是在 Mac 上)处理方式存在一些缺陷,并且无法自动更新 TOC,我们决定将其设置为通过 Sharepoint 中的 Word 自动化服务运行我们的报告。因此,我们像以前一样生成我们的文档,然后通过单词自动化将其平展altChunk为单个文档并更新 TOC。

这解决了我们所有的兼容性问题并更新了我们的 TOC,但不幸的是,有一个副作用。我们的表格现在在文本上方和下方添加了空间,使表格比以前长得多。这在以前不是问题,即使我们打开文档并在 Word 中重新保存(因此将所有altChunks 展平),所以这似乎是单词自动化特有的问题。

有人见过这个吗?有没有办法使用包含表格的 HTMLaltChunk来强制单词自动化不要弄乱我的表格?

编辑:如果我在 Word 中选择有问题的表格并选择主页选项卡“行和段落间距”,然后我可以选择“删除段落后的空格”以将表格折叠回应有的状态。因此,Word Automation Services 似乎希望在表格中的段落之后添加空格,而 Word 本身却没有。有人知道如何阻止吗?

他是这些表格在 HTML 中的样子的一个非常简单的示例:

我尝试明确设置padding-bottom: 0for td,但这没有任何区别。它在 HTML 中的外观与在 Word 文档中的外观几乎相同,但 Word Automation Services 出于某种原因在每行的底部添加了空间。

插入的代码altChunk如下所示:

其中HTMLFragmentsaDictionary<string,string>包含要插入到文档中的表格的 HTML。

0 投票
0 回答
114 浏览

pdf - 控制 PDF 的呈现

使用 Word Automation Services,我有一些非常简单的代码,如下所示:

当 input.Format 为 Word 时,图像看起来很棒。但是当它是 PDF 时,图像看起来像是经过平滑处理,最终看起来有点模糊。是否有任何选项可以控制图像如何转换为 PDF?我所有的图像基本上都是线条图(图表和地图),所以我真的不需要应用任何平滑。

这是 pdf(左)和 word(右)中相同图像的比较。

比较

0 投票
2 回答
994 浏览

sharepoint-2013 - 请求安全令牌时 Word Automation Service BatchGetSyncJobStatus 失败

我正在运行一个 SharePoint 2013 本地服务器,我在该服务器上部署了一个简单的 WCF 服务作为场解决方案。该服务接受包含单个 MS Word 文档作为有效负载的简单 Http 发布请求,并返回这些转换为 PDF 的文件。匿名用户可以通过 Http 访问该服务。WordAutomationService 作为 SharePoint 服务器的管理用户帐户运行。

服务类创建 Microsoft.Office.Word.Server.Conversions.SyncConverter 的新实例,并将 SharePoint 正在运行的 WordAutomationService 的代理传递给构造函数(连同一些 ConversionJobSettings)。最后,它使用输入流(Word 文档)和输出流(将包含 WordAutomationService 生成的 PDF 文档的 Web 响应)调用 SyncConverter 上的 Convert 方法。

创建 SyncConverter 时,我没有设置 UserToken 属性,因为对服务的访问是由匿名用户进行的。根据这里的评论https://msdn.microsoft.com/en-us/library/microsoft.office.word.server.conversions.syncconverter.usertoken.aspx这似乎没问题:

此属性的默认值是一个空引用(在 Visual Basic 中为 Nothing),它是匿名的。

此设置适用于具有几页的小型 Word 文档并返回预期的 PDF 文件。但是,一旦 SharePoint 上 WordAutomationService 的执行时间超过某个时间阈值(大约 5 秒),服务就会失败,因为它永远不会返回(这会导致客户端读取超时)。根据日志,其原因似乎是一段时间后同步转换作业将工作移至后台进程:

同步流作业转换时间过长。不要再等了。稍后检查其状态

然后,它通过调用 ConversionServiceApplicationProxy.BatchGetSyncJobStatus 定期轮询此作业的状态。不幸的是,这个调用失败了,因为它在内部尝试创建一个新通道来与这个进程对话,并为此请求一个安全令牌。然而,SecurityTokenService 无法完成令牌请求并引发异常:

我现在不知道如何摆脱令牌问题,以便系统可以创建必要的通道来轮询转换作业状态。非常感谢任何帮助。谢谢!

(我不能发布完整的日志,因为它注册为垃圾邮件)

0 投票
0 回答
30 浏览

iis - Word 自动化服务问题

我对自动化服务一词有疑问。对托管在 SQL 服务器上的数据库的权限是可以的。DB 上没有超时和错误,verbose 仅​​显示这种日志:

我有 2 个 env~PRODPREPROD. 它适用于 PROD,但不幸的是不适用于 preprod。

我应该在哪里搜索问题的任何想法?