В настоящее время я редактирую код, созданный коллегой, который использует Jasper Reports
для создания файла PDF
с определенными элементами, одним из которых является куча html-кода. Этот html состоит из текста и изображений (оба связаны и в base64 format
).Jasper Reports - Показать изображения из html source
Практически все работает отлично, но у меня проблемы с 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><p><b>123</b></p><p><
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;"/><b><br/><
/b></p><p><i>
456</i></p><p><
u>789</u></p><p><
img src="data:image/jpeg;base64,/9j/
4AAQSkZJRgABAgAAAQABAAD......
sxwW6jrcshiI96diGk3OT0joAQBR0nmptgn//2Q=="
style="width: 25%;"/><u><br/><
/u></p><p><strike>
012</strike></p></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>
Solution
Если найден HTML -компонент в Jasper Studio. Между мной и коллегами есть небольшая дискуссия о том, было ли это с самого начала, но это не имеет особого значения для текущей ситуации. Как сказал Petter Friberg ниже, он доступен по крайней мере с версии 6.0 и выше, и мы использовали это с тех пор, как начали работать с отчетами Jasper. Вероятно, это не замечалось.
Это работает для моего html и связанных изображений в нем, но еще не обрабатывает информацию base64. Я в настоящее время исправляю это, убедившись, что изображения загружаются при вставке или перетаскиваются в текстовое поле и автоматически добавляются как связанное изображение.
В настоящее время я перехожу от TextAngular к компилятору CKEditor/ng-ckeditor, потому что для этой цели есть плагины, которые работают достаточно хорошо.
Еще предстоит сделать работу, прежде чем я закончу, но это путь.
FYI: Я добавил [ответить здесь] (http://stackoverflow.com/a/ 41027997/5292302) о том, как использовать изображение base64 в компоненте html –