【问题标题】:JSF 2.2 Generate PDF with xhtml - Seam alternative?JSF 2.2 使用 xhtml 生成 PDF - Seam 替代方案?
【发布时间】:2017-01-01 21:14:35
【问题描述】:

现在 Seam 已被弃用,并且作为 PDF where not given to anyone,使用 facelets 模板和支持 bean 生成 pdf 文件的替代方法是什么?

几年前我用 Seam 完成了它,它非常顺利,我宁愿不以编程方式执行它(在我看来,生成视图绝不是一个好主意......)

【问题讨论】:

  • 生成 PDF 文件超出了 JSF 的责任。
  • @Tiny,使用 Seam PDF,它不是。 JSF 是一个控制器,如果我选择将我的视图呈现为 PDF,为什么不这样做呢?这只是一种格式。我看不出邮件呈现为github.com/codylerum/simple-email 的区别,只要格式可以用标签描述
  • 作为从现在的 xml 创建 pdf 的解决方案之一,您可以使用 XSL-FO。但只要它不提供丰富的模板功能,您就可以将它与 Velocity 等模板引擎结合使用。在其中一个项目中,我使用 Velocity 动态生成 xml 标记,然后使用 xsl-fo 将此标记转换为 pdf。如果谈论 jsf - 除了 JBOSS Seam 之外什么都不记得了,它是 jsf 页面的 PDF 渲染器。

标签: jsf pdf jakarta-ee facelets seam


【解决方案1】:

好的... 这个thread at jboss 解释了为什么它不是一个好主意以及它被弃用的原因。感谢 Tiny 和 Trims 的洞察力。

我把模板和 JSF 渲染混为一谈了。事实上,Facelets 是一个很好的模板工具,但真正专注于 Web。

模板 PDF 确实存在更多通用工具,例如 FlyingSaucerXDocReport as presented here 应该可以通过Freemarker 模板创建XSL-FO 并将其传递给Apache FOP 以生成真正的PDF。

【讨论】:

  • 不过,我认为 95% 的 seam-pdf 代码是关于从 xml 创建 iText doc (pdf),而且非常干净。我现在正在考虑将这段代码合并到一个与 JSF 无关的模块中(实际上是删除了模板),看看在它上面使用 freemarker 是否可以重新创建一个生成 pdf 的杀手级解决方案
猜你喜欢
  • 2022-11-10
  • 1970-01-01
  • 2011-06-21
  • 2010-10-03
  • 2011-04-12
  • 1970-01-01
  • 1970-01-01
  • 2014-02-01
相关资源
最近更新 更多