问题标签 [word-automation]

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 投票
2 回答
3029 浏览

.net - 启动 Word 并监视文档是否关闭

我们的学校项目需要一种方法来启动单词实例并跟踪文档是否已关闭。word中的COM api没有这个事件,有没有其他方法可以做到这一点?

目前我们正在使用 word 中的 COM api,但其他一切都很好。我们正在用 C# 编程。

0 投票
1 回答
7401 浏览

c# - How to open a RTF file with C# without showing the Microsoft Word "Convert File" dialog?

Question

I want to programmatically open a RTF file in Microsoft Word using C#. But I don't want to get the "Convert File" dialog while doing that. How do I do that?

Code

I've tried this piece of code, but it still shows Word's "Convert File" dialog.

enter image description here

What I have tried so far

Actually, there are two sub-questions.

On one hand, I am not sure which encoding to use. I've tried both options shown in the code snippet and checked Wikipedia for RTF character encoding.

On the other hand, object noEncodingDialog = true doesn't seem to work since the "Convert File" dialog keeps popping up (probably because the encoding is set wrongly).

Any ideas?

Versions

  • Word 2003
  • .NET 3.5
  • Visual Studio 2010 Ultimate

Full source code

Just in case you want to try it out.

Add reference to "Microsoft Word 11.0 Object Library" from the "COM" tab.

0 投票
1 回答
1802 浏览

c# - 如何以编程方式从 C# 中使用 Word 的“比较和合并文档...”功能?

问题

是否可以从 C# 调用 Word 2003 的工具 > 比较和合并文档..." 功能并获取反馈是否发现任何差异?

到目前为止我发现了什么

可以像这样调用功能。但我不知道如何获得反馈是否发现任何差异。

0 投票
1 回答
1062 浏览

c#-4.0 - c# 4.0 和 word 2007 自动化

我正在创建一个应用程序,它从 Oracle 数据库中获取数千个 word 文档,需要将它们转换为 pdf 并将它们发送回数据库。我已经启动并运行了所有支持机制(数据库交互、多任务处理和可插入的数据库和配置方法)。尽管有关于在服务器端使用办公自动化的所有警告,但我的第一个方法是使用它(事实是我的客户要求使用它)。但是我对 c# (.Net 4.0) 和 word 2007 之间的交互感到很生气。我已经尝试过 SaveAs 和 ExportAsFixedFormat。两者都工作得很好,但是当我尝试关闭这个词时......我得到了一个错误(弹出窗口说那个词发现了一个问题并将被关闭)。然后我尝试在退出应用程序之前将其包含在内:

但它仍然抛出错误。我无法转换超过一百个文档而不会出错。你知道在不使用办公自动化的情况下实现这种转换的方法吗?或者另一方面,您知道如何通过办公自动化进行这种转换而不会出错吗?任何帮助将不胜感激。

编辑:Otaku,这是我正在使用的代码示例(警告!提前测试代码)

0 投票
2 回答
1144 浏览

visual-studio-2010 - 使用 SharePoint 2010 Word Automation Services 将 Word 转换为 PDF

我试图找出在转换后可以在 PDF 文件上加锁或禁用复制和粘贴的方法。我查看了 ConversionJobSettings 属性,但无法完成此操作。根据我所阅读的内容,sharepoint2010 Word Automation 服务 API 在操作转换逻辑方面提供的功能非常有限,但是有什么方法可以锁定内容以使其无法复制?

感谢您的帮助

0 投票
1 回答
2138 浏览

vb6 - Word 2003 与 2007/2010 自动化

我在 VB6 应用程序中自动化 Word,当主机使用 Word 2007 或 2010 但不在运行 Word 2003 的机器上时出现异常。异常是

运行时错误“4605”:“此方法或属性不可用,因为对象引用 > 表行的末尾。”

在以下循环的第七次迭代中抛出异常,在尝试插入分页符的行上:

数组 breakArr 存储文档中段落的索引,后面跟着一个分页符。

有趣的是,如果我在异常之前(即第 6 次迭代之后)跳出循环并查看生成的文档,我注意到分页符(前 6 页)插入到 Word 2007/2010 中的不同点比 2003 年。

为什么会有区别?有人知道我应该做些什么不同吗?

谢谢。

0 投票
1 回答
1614 浏览

.net - 使用 Sharepoint Word Automation 进行文本替换

我正在使用sharepoint 2010,我想要做的是获取一个word文档模板,对几个关键词进行替换(例如:替换##ClientID##为客户端的id)并将其以特定名称保存在库中共享点。

我已经想出了如何在本地计算机上使用 word interop 执行此操作,但是 word interop 库并非旨在作为服务运行。然后我发现了Word Automation Services,它似乎可以完成我需要做的事情。但是,我在 Internet 上找到的每个示例(包括在 SO 上的示例)都只是使用命名空间“如何从 word 文档转换为 xxx” Microsoft.Office.Word.Server.Conversions。我还没有找到一个关于如何使用Microsoft.Office.Word.Server.Service命名空间对文档进行查找和替换的示例。MSDN 非常缺乏如何使用这些类,我不知道从哪里开始使用它。

难道不能使用这些服务来做我想做的事吗?如果可以做到,有人可以指出我正确的方向来做我想做的事吗?

0 投票
1 回答
3227 浏览

c# - 在 C# 中使用 Word 2007 自动化更改项目符号样式

我正在尝试在 Word 文档(Word 2007)中更改项目符号的样式......我目前放置了一个项目符号,它以一个圆圈的形式出现。我希望它是一个正方形...这是我应用子弹的代码...

有任何想法吗?如果您需要更多详细信息,请告诉我

0 投票
2 回答
3405 浏览

c# - 如何以编程方式执行 Word Automation Services?

如何以编程方式强制执行/启动 Word Automation Services?
提交转换过程后,我需要启动/执行。

0 投票
1 回答
979 浏览

c# - 调用 Word 加载项公开的 Object 上的方法会引发 RemotingException

我正在用 C# 编写一个(共享)Word 加载项,并希望通过 COMAddIn 类的 Object 属性公开一个对象来与它进行通信。

因为我希望我的代码在 UI 线程上执行,所以我从 StandardOleMarshalObject 类派生了我的加载项和公开对象。这应该照顾这里这里描述的编组。

但是通过这样做,当我针对 .NET 2.0 或 .NET 4.0 进行编译时,我会得到不同的行为。在针对 .NET 4.0 进行编译时,我公开的对象是 __ComObject 类型,并且可以将其自身转换为我公开的可共享定义的接口。这反过来又让我可以调用对象上的方法并完美地工作。

在针对 .NET 2.0 进行编译时,公开的对象是 __TransparentProxy 类型。这也可以转换为我的界面,但是当我尝试调用一个方法时,它会抛出一个 System.Runtime.Remoting.RemotingException 并显示以下消息:

此远程代理没有通道接收器,这意味着服务器没有注册的正在侦听的服务器通道,或者此应用程序没有合适的客户端通道与服务器通信。

当我不从 StandardOleMarshalObject 继承时,它似乎确实可以工作,但是我的代码将在任意 RPC 线程上执行,这不是我想要的。

我搜索了互联网,但无法找到解决方案或原因,这在 .NET 2.0 中不起作用。我确实发现了一些类似的问题,但它们似乎都解决了 Excel。

目前我还没有切换到 .NET 4.0 的位置,所以我真的希望这可以为 .NET 2.0 解决。

有没有人有这个问题的解决方案,或者至少有一个解释?

这是我的测试代码: