如何在不使用 OLE 的情况下在 delphi 中将 word 文档转换为 pdf?
Posted
技术标签:
【中文标题】如何在不使用 OLE 的情况下在 delphi 中将 word 文档转换为 pdf?【英文标题】:How can I convert a word document to pdf in delphi without using OLE? 【发布时间】:2011-08-30 23:43:26 【问题描述】:我有许多 word(2003 年和 2010 年)文档被发送到我想转换为 pdf 格式的服务器。 由于应用程序作为服务在服务器上运行,我无法使用 Office 对其进行转换,或打印到 pdf 打印机。
我发现唯一可行的商业图书馆是activePDF,但那是 com。
还有其他想法吗?
【问题讨论】:
它位于服务器上的事实与您可以使用 Office 有什么关系?如果是局域网服务器,应该没有问题。如果它是一个网络服务器,你可以将它传输到本地驱动器进行转换,然后再次上传,不是吗? (是的,它不优雅。)我不明白什么吗? @Robert:我的猜测是文档被发送到服务器(正如 OP 所说),并且需要进行转换的应用程序在该服务器上,并且该服务器没有安装 MS Office。 .. 应用作为服务在服务器上运行。除非有用户登录,否则 Office 无法工作,即使这样它也是一个雷区。 com 主要是一个皮塔饼。如果必须,我会使用它,但直接的 dll 或 delphi 解决方案会更好 @Robert Frank:COM 不是问题。这是不支持从服务(例如 ASP.NET)自动化 Word/Excel 并且有许多问题。 【参考方案1】:OpenOffice 可以打开 Word 文档并保存为 PDF。 OpenOffice 为远程控制提供了一种特殊的服务器模式。
一些信息可以在这里找到How can I use OpenOffice in server mode as a multithreaded service?
更新:
一种方法是调用 JODConverter
java -jar lib/jodconverter-core-3.0-beta-4.jar test.odt test.pdf
(请注意,即使这是指Java,也可以从Delphi中执行此行;)
jodconverter 入门页面http://code.google.com/p/jodconverter/wiki/GettingStarted 提供了其他信息,例如 OpenOffice 在服务器模式下启动,打开一个端口 2002,然后可用于传输转换作业。它还提到了一个 Web 应用程序,可以从 Delphi 客户端使用。
在一些 Java 开发人员的帮助下,这可用于构建可靠的文档转换器,而无需在 Delphi 中重新发明整个***。
【讨论】:
我一直找不到任何有效的 delphi 示例。设置导出过滤器时位于oooforum.org/forum/viewtopic.phtml?t=22344 bards 的那个。你有例子吗?【参考方案2】:你能在服务器上安装微软的免费“Word Viewer”吗?如果是这样,并且如果您可以将pdf打印驱动程序放在服务器上,那么您可以在服务器上打印为pdf:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=4
【讨论】:
以上是关于如何在不使用 OLE 的情况下在 delphi 中将 word 文档转换为 pdf?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不安装的情况下在应用程序中使用 Berkeley DB
如何在不使用转储的情况下在 python 中编写 json 文件