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

时间:2009-02-25 15:18:44

标签: pdf rtf

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

8 个答案:

答案 0 :(得分:16)

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

答案 1 :(得分: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等)
    • 适用于桌面和服务器应用程序
    • 高编程工作
    • 爪哇

  4. 修改

    这是older post,与您的问题有一些共性。


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

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

答案 2 :(得分:3)

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

答案 3 :(得分:2)

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

答案 4 :(得分:2)

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

通过将PDF文件转换为XML并使用XSLT和XSL-FO,也可以为大型文档自动化PDF创建。这里有lots of tutorials

对于特定语言,例如python,存在可以相当简单地输出到PDF的库。

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

答案 5 :(得分:1)

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

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

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

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

答案 6 :(得分:0)

PrimoPDF。它充当虚拟打印机,因此您只需打印它,然后弹出PDF。

答案 7 :(得分:0)

查看PDF Printer