如何以编程方式将RTF文档转换为PDF?
OpenOffice.org可以在服务器模式下运行(即没有任何GUI),可以读取RTF文件并可以输出PDF文件.
您有多种选择,具体取决于:
您的应用程序将运行的平台
您的应用程序是一个服务器应用程序(例如,您设置一次然后运行的Web服务),还是广泛可用的桌面应用程序(例如,必须易于下载并可由许多人安装的应用程序)
您是否愿意花费很少或更多的编程工作来使解决方案工作
是否对您将使用的编程语言保持灵活性
以下是一些选项:
PDFCreator + COM
仅限Windows
适用于桌面和服务器应用程序
中等编程工作
任何允许你说COM的语言
OpenOffice(+ JODConverter - 可选)
跨平台(Windows,Linux等)
适用于服务器应用程序,因为OpenOffice是100MB +下载
编程工作量低
Java(如果使用JODConverter),或任何可以与OpenOffice的UNO交互的语言
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
我成功地使用JODConverter
Java应用程序将各种文档类型(从模板动态生成的一些文档)转换为pdf
.