【问题标题】:How to print html content to a PDF with jasper reports?如何使用 jasper 报告将 html 内容打印到 PDF?
【发布时间】:2016-04-24 18:37:57
【问题描述】:

我在 Web 应用程序中使用 Primefaces 5.3 以及 Primefaces <p:editor>,它将其数据保存到数据库表中。我想将数据库中的值数据导出/打印到 PDF 格式,而不是打印出像

这样的代码

<br>或<ul> <li>等

我正在使用 Jasper 报告创建报告,然后导出为 pdf,因此我需要创建可以使用 jasper 报告打印的“东西”,以处理 html 代码。

【问题讨论】:

  • 你问得这么有效:“我怎样才能从 html 创建一个 pdf”... 在 stackoverflow 上搜索。提示:xhtmlrenderer 工作
  • 我更改了问题并添加了其他信息以澄清我在寻找什么,感谢您的回复。
  • 所以它与 PrimeFaces 无关...html 可能来自任何地方...我正在删除该标签并更改标题

标签: html jsf pdf jasper-reports pdf-generation


【解决方案1】:

您可以使用 HtmlComponent <hc:html/>

示例

<componentElement>
    <reportElement x="0" y="100" width="230" height="110" backcolor="#ADD8E6" uuid="332dd551-e8cd-4cb0-a11f-7325f481017b"/>
    <hc:html xmlns:hc="http://jasperreports.sourceforge.net/htmlcomponent" xsi:schemaLocation="http://jasperreports.sourceforge.net/htmlcomponent http://jasperreports.sourceforge.net/xsd/htmlcomponent.xsd" scaleType="FillFrame" horizontalAlign="Left" verticalAlign="Top">
        <hc:htmlContentExpression><![CDATA["Hello<br/>World"]]></hc:htmlContentExpression>
    </hc:html>
</componentElement>

它将生成您的 html 的图像。

【讨论】:

  • 我在获取 html 代码以向下扩展页面时遇到问题,我有可变数量的输入。一个条目可能是 5 行,另一个可能是 20 行。 hc:html 不会在页面下方浮动。有什么想法吗?
  • 如回答中所述,它会生成图像,因此唯一的解决方案是将图像属性用作 scaleType 以及 clipOnOverflow 属性
  • 所以基本上我回到了弄清楚如何在解释 html 代码时从 primefaces 内容生成输出。我需要使用 jasper 文本字段,因为它允许向下扩展页面。
  • 我找到了解决方案。在 jasper 报告中,文本字段有一个名为 Markup 的选项,您可以将其设置为 html 或 rtf 等...这会将字段数据解释为 html 或 rtf 等...由于它是文本字段,因此您还可以向下拉伸这页纸。 jasper studio 中的选项位于字体下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多