Jasper Reports - 显示来自 html 个来源的图像

Jasper Reports - Show images from html source

我目前正在编辑一位同事创建的代码,该代码使用 Jasper Reports 创建一个 PDF 文件,其中的某些元素是一堆 html 代码。此 html 由文本和图像组成(链接和在 base64 format 中)。

几乎所有功能都运行良好,但我在 html 方面遇到了问题。最重要的是图像没有显示,其次并不是所有 html 标签都得到处理。

这甚至可以用 Jasper Reports 做吗?

模板中 html 应该去的当前代码:

<textField>
    <reportElement positionType="Float" x="100" y="73" width="611" height="307" uuid="d3037b2c-6592-4d7b-b703-d64f736ca4be"/>
    <textElement markup="html"/>
    <textFieldExpression><![CDATA[$F{content_1}]]></textFieldExpression>
</textField>

模板要处理的数据:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<compass>
    <messages>
        <message>
            <attachmentCount>0</attachmentCount>
            <attachmentString></attachmentString>
            <contactPerson>compassmanager manager</contactPerson>
            <contactPersonDepartment>Bike</contactPersonDepartment>
            <content>&lt;p&gt;&lt;b&gt;123&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;
                     img src="http://globalgamejam.org/sites/default
                     /files/styles/game_sidebar__normal
                     /public/game/featured_image/promo_5.png
                     ?itok=9dymM8JD" style="width: 135px;height:                          
                     98px;"/&gt;&lt;b&gt;&lt;br/&gt;&lt;
                     /b&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;
                     456&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;
                     u&gt;789&lt;/u&gt;&lt;/p&gt;&lt;p&gt;&lt;
                     img src="data:image/jpeg;base64,/9j/
                     4AAQSkZJRgABAgAAAQABAAD......
                     sxwW6jrcshiI96diGk3OT0joAQBR0nmptgn//2Q=="
                     style="width: 25%;"/&gt;&lt;u&gt;&lt;br/&gt;&lt;
                     /u&gt;&lt;/p&gt;&lt;p&gt;&lt;strike&gt;
                     012&lt;/strike&gt;&lt;/p&gt;</content>
            <countries>BE</countries>
            <departments>Sales</departments>
            <duedate>16/11/2015</duedate>
            <messageType>ACTION</messageType>
            <title>Testerij</title>
        </message>
    </messages>
    <publishdate>16/11/2015</publishdate>
    <title>Compass 47.7</title>
</compass>

解决方案

如果在 Jasper Studio 中找到 html-组件。我和同事们就是否从一开始就存在进行了一次小型讨论,但这对目前的情况来说并不重要。正如 Petter Friberg 在下面所说的那样,它至少从 6.0 版及更高版本开始可用,并且自从我们开始使用 Jasper Reports 以来我们一直在使用它。应该是忽略了吧

这适用于我的 html 和其中的链接图像,但尚未处理 base64 信息。我目前正在通过确保图像在粘贴或拖动到文本字段时上传并自动添加为链接图像来解决此问题。

我目前正在从 TextAngular 切换到 CKEditor/ng-ckeditor 组合,因为泡沫有用于此目的的插件,效果很好。

在我完成之前还有一些工作要做,但这是要走的路。

With textField NO, markup="html" 不适用于 table, img, [=14= 等标签] ecc.

为什么?因为文本字段显示文本。格式化文本,es。 <b>String</b> 会起作用。

一种方法是检查 jasper 报告 html组件 <hc:html/> 这将呈现您的 html 或 url

的图像