在不安装 Word 的情况下以编程方式使用“Microsoft 另存为 PDF”加载项

Posted

技术标签:

【中文标题】在不安装 Word 的情况下以编程方式使用“Microsoft 另存为 PDF”加载项【英文标题】:Using "Microsoft Save as PDF" add-in programmatically without installing Word 【发布时间】:2011-02-28 00:38:13 【问题描述】:

如果您的机器上安装了 word,本文中用于从 Word 文档创建 PDF 的示例代码非常有用。

http://msdn.microsoft.com/en-us/library/bb412305.aspx

我很好奇是否可以在不安装 Word 的情况下执行此操作。

【问题讨论】:

好主意。你也可以帮我打电话给我所有的客户吗:) 你正在调用 Word 代码,如果没有安装 Word,你怎么能远程做到这一点!? Pauli - 我希望有组装参考或其他不需要实际安装的可编程接口。 dll或exe的存在与安装不同。 【参考方案1】:

我认为 2000 年代左右的 Word Interop 允许我们使用我们的应用程序重新分发 Word DLL,这样即使没有安装 Word,它也可以工作。但是,情况可能不再如此。

根据您的用例,另一种选择是直接生成 PDF:http://itextsharp.sourceforge.net/

【讨论】:

你确定itextsharp可以简单准确地转换Word文档吗? 不,它可能不会。 ITextSharp 用于创建 PDF 文档。这就是我指定“取决于您的用例”的原因,因为我不知道您是在创建还是在转换。由于您正在转换,请看一下这个旧的 SO 线程:***.com/questions/607669/… 其中大部分仍然正确。最后,您将不得不支付一些钱或使用另存为 PDF 插件。【参考方案2】:

是的,您可以使用 interop 自动化 Word,并大概以这种方式将 docx 打印为 pdf。但 MSDN 明确表示,Office Interop 可能会破坏 Web 服务器的可扩展性。我会相信它的话,并通过找到第三方文档来避免它的 pdf 渲染器 - 尽管我知道很多人没有。

确保您了解所有considerations for server-side Automation of Office。

只需通过谷歌搜索,您就会发现许多 doc 到 pdf 的转换库 - 甚至可能有一个 remote webservice 您可以致电!

【讨论】:

是的,有很多选择(它们要么非常糟糕,要么非常昂贵),但是使用 Word 的互操作可以提供非常好的结果,而且代码不多。所以我只是想知道在不安装 Word 的情况下让它在机器上工作是否有任何进展。【参考方案3】:

您可以使用reportviewers 另存为pdf 选项。

【讨论】:

【参考方案4】:

我最终使用了 OpenOffice Portable...

http://portableapps.com/apps/office/openoffice_portable

【讨论】:

以上是关于在不安装 Word 的情况下以编程方式使用“Microsoft 另存为 PDF”加载项的主要内容,如果未能解决你的问题,请参考以下文章

在不继承 UINavigationController 的情况下以编程方式更改 ViewController 的方向

如何在不使用命令的情况下以编程方式关闭/重启 linux 机器(运行时)

如何在不使用外部主机的情况下以编程方式查找设备的外部 IP 地址?

如何在不使用第三方的情况下以编程方式从 Chase 下载我的银行交易?

如何在不使用 HTML 表单的情况下以编程方式将 POST 请求发送到 JSF 页面?

在不活动的情况下以编程方式停止 AWS EC2