目前我正在使用 FOP 从 java 代码和 xslt 文档生成 pdf。FOP 吐出显示(嵌入)到网页中的 PDF 文件。文档的长度可以从一页到几千页不等,生成它们可能需要一些时间。
有没有更好的工具可以做到这一点?FOP 是开源和自由世界中的最佳选择吗?
目前我正在使用 FOP 从 java 代码和 xslt 文档生成 pdf。FOP 吐出显示(嵌入)到网页中的 PDF 文件。文档的长度可以从一页到几千页不等,生成它们可能需要一些时间。
有没有更好的工具可以做到这一点?FOP 是开源和自由世界中的最佳选择吗?
我们使用iText。
这是一篇博客文章Comparing Apache FOP with iText。
从您的使用情况来看(从 java 代码和 xslt 文档生成 pdf),似乎 FOP 对您来说是更好的选择。
编辑:这个关于FOP Vs IText的论坛帖子包括以下内容:
就 PDF 而言,iText 比 FOP 功能更丰富:您可以添加注释、创建 AcroForms、对 PDF 文档进行数字签名。如果您需要生成包含数千或一万页的 PDF 文档,iText 也是唯一的解决方案。
您可以使用 OpenOffice.org,作为服务器运行并远程命令它进行文档转换。
除了 HTML 到 PDF,还有其他可能的转换:doc --> pdf, html, txt, rtf xls --> pdf, html, csv ppt --> pdf, swf
代码示例:
导入officetools.Office文件;... FileInputStream fis = new FileInputStream(new File("c:/test.html")); FileOutputStream fos = new FileOutputStream(new File("c:/test.pdf"));
// 假设 OpenOffice.org 在 localhost 的 8100 端口上运行
OfficeFile f = new OfficeFile(fis,"localhost","8100", true); f.convert(fos,"pdf");
从:使用 PHP、Java 或 ASP 的 HTML 到 PDF:dancrintea.ro/html-to-pdf/
这个答案对你来说为时已晚,但如果它对其他搜索者有所帮助,Docmosis可以以相当高的速度生成文档,并且可以将高负载分散到多台机器上。它使用 OpenOffice 作为底层格式转换引擎,通过 Docmosis Java API 添加文档填充和操作工具。
几千页的文档会占用大多数系统一段时间,但是如果系统(或您的代码)允许您并行化和分配工作量,那么至少平均文档率会很高,即使单个文档的时间可能是重大。
JODReports是另一个类似的选项。
Adobe ColdFusion 具有 最好的内置 PDF 支持。