有没有免费的方法将RTF转换为PDF?

use*_*898 18 pdf rtf

如何以编程方式将RTF文档转换为PDF

Joa*_*uer 16

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

  • 今天我刚刚尝试使用 C# 进行 Open-Office 转换,让我告诉你,这工作“很好”,但并不完美。这意味着,在这个过程中有些对齐会被搞乱,对于商业来说这是行不通的,除非你想用非常简单的文档来做到这一点,否则不要在上面浪费你的时间。 (2认同)

vla*_*adr 14

您有多种选择,具体取决于:

  • 您的应用程序将运行的平台
  • 您的应用程序是一个服务器应用程序(例如,您设置一次然后运行的Web服务),还是广泛可用的桌面应用程序(例如,必须易于下载并可由许多人安装的应用程序)
  • 您是否愿意花费很少或更多的编程工作来使解决方案工作
  • 是否对您将使用的编程语言保持灵活性

以下是一些选项:

  1. PDFCreator + COM
    • 仅限Windows
    • 适用于桌面和服务器应用程序
    • 中等编程工作
    • 任何允许你说COM的语言
  2. OpenOffice(+ JODConverter - 可选)
    • 跨平台(Windows,Linux等)
    • 适用于服务器应用程序,因为OpenOffice是100MB +下载
    • 编程工作量低
    • Java(如果使用JODConverter),或任何可以与OpenOffice的UNO交互的语言
  3. IText + Apache POI
    • 跨平台(Windows,Linux等)
    • 适用于桌面和服务器应用程序
    • 高编程工作量
    • Java的

编辑

这是一篇较旧的帖子,与您的问题有一些共性.


编辑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

我成功地使用JODConverterJava应用程序将各种文档类型(从模板动态生成的一些文档)转换为pdf.