2009-02-25 61 views
17

如何以编程方式将RTF文档转换为PDF有没有一种免费的方法来将RTF转换为PDF?

+0

什么是你的背景?你是否试图在桌面上做到这一点(下面的PDFCreator选项是好的)?你是否试图做到这一点,作为一个网络应用程序的一部分?还有别的吗?请编辑您的问题,让我们知道。 – acrosman 2009-02-25 15:55:08

+0

您是在Windows还是其他平台?你在寻找一个java解决方案,用于C/C++解决方案,还是这种无动于衷?请问这是一个服务器应用程序(例如一个Web服务器)还是一个桌面应用程序(多个用户将下载并安装它?) – vladr 2009-02-25 16:03:25

+0

服务器端在linux C++或java – user63898 2009-02-26 08:11:36

回答

16

OpenOffice.org可以在服务器模式下运行(即没有任何GUI),可以读取RTF文件并可以输出PDF文件。

2

使用PDFCreator,一个免费的PDF打印机。只需打印到PDF。你可以通过COM来控制它。示例代码位于安装目录的COM文件夹中。

+2

这当然只能在Windows上运行。 – vladr 2009-02-25 16:01:45

2

PDFCreator for windows是最简单的单个文档。

也可以通过将大量文档转换为XML并使用XSLT和XSL-FO来自动创建大量文档的PDF。那里有lots of tutorials

对于一种特定的语言,如python,存在的库可以相当平凡地输出为PDF。

XML比其他更简单的解决方案的唯一优点是可扩展性。您也可以通过编程以RTF,HTML,TXT或其他任何文本格式输出文档。

+0

这当然只能在Windows上运行。不幸的是,尚未明确解决方案需要哪种平台。 – vladr 2009-02-25 21:35:35

+0

自然。虽然XSLT解决方案将适用于任何平台。 – 2009-02-25 21:35:45

14

取决于多项选择

  • 平台(一个或多个)应用程序将在
  • 运行你的应用程序是否是服务器应用程序(如Web服务,您设置一次然后运行)或者广泛使用的桌面应用程序(例如,必须容易下载并且可由许多人安装的东西)
  • 您是否愿意将一点或多点编程工作投入到获得解决方案的工作中
  • 你不管你是灵活的编程语言将使用

这里有一些选择:

  1. PDFCreator + COM
    • 仅适用于Windows
    • 适用于台式机和服务器应用
    • 中等编程努力
    • ,让你说话COM
  2. OpenOffice(+ JODConverter - 可选)任何语言
    • 跨平台(Windows,Linux等)
    • 适合服务器应用程序,如OpenOffice是一个100MB +下载
    • 低编程工作
    • 的Java(如果使用JODConverter),或任何语言,可以用接口OpenOffice's UNO
  3. IText + Apache POI
    • 跨平台(Windows,Linux等)
    • 适合桌面和服务器应用程序
    • 高的编程工作
    • 的Java

编辑

这里是一个older post,有一些共性与你的问题。


EDIT 2

我看到你的意见,你是在Linux和开放要么C++或Java。 肯定使用选项2.

  • JODConverter(JAVA):该库负责在无头模式产卵OpenOffice和谈话Uno来代表您的。您提供JODConverter的输入和输出文件名称以及输入和输出类型(例如rtf和pdf),并在返回给您时输出文件已准备就绪。
  • C++:您可以fork + exec一个(或更多,用于负载均衡)无头模式下的OpenOffice实例(soffice将侦听套接字上的UNO请求,例如端口8100.)从您的应用程序使用Uno/CPP指示OpenOffice执行转换以同样的方式JODConverter没有(看到如何做到这一点的JODConverter源代码。)

/opt/openoffice.org3/program/soffice.bin \
-accept=socket,host=127.0.0.1,port=8100;urp; \
-headless -nocrashreport -nodefault \
-nolockcheck -nologo -norestore

我成功地利用JODConverter从Java应用程序,以杂项文档类型(一些文件从模板中动态生成)转换为pdf

0

PrimoPDF。它充当虚拟打印机,所以你只需打印它,然后弹出一个PDF。

3

四年下旬到这里聚会,但我在Web应用程序中Ted。我以编程方式生成RTF,然后使用包中包含的rtf2pdf.sh脚本生成PDF。我之前尝试过OOo和unoconv,但Ted在我的应用程序中证明了更快,更可靠。

1

LibreOffice可以通过命令行将RTF文档转换为PDF。

Here是在CentOS上安装它的说明。

这是启动从PHP代码转换的示例:

<?php shell_exec('libreoffice4.2 --headless --invisible --norestore --convert-to pdf test.rtf'); ?> 
相关问题