2015-11-16 2 views
1

В настоящее время я редактирую код, созданный коллегой, который использует 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>&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> 

Solution

Если найден HTML -компонент в Jasper Studio. Между мной и коллегами есть небольшая дискуссия о том, было ли это с самого начала, но это не имеет особого значения для текущей ситуации. Как сказал Petter Friberg ниже, он доступен по крайней мере с версии 6.0 и выше, и мы использовали это с тех пор, как начали работать с отчетами Jasper. Вероятно, это не замечалось.

Это работает для моего html и связанных изображений в нем, но еще не обрабатывает информацию base64. Я в настоящее время исправляю это, убедившись, что изображения загружаются при вставке или перетаскиваются в текстовое поле и автоматически добавляются как связанное изображение.

В настоящее время я перехожу от TextAngular к компилятору CKEditor/ng-ckeditor, потому что для этой цели есть плагины, которые работают достаточно хорошо.

Еще предстоит сделать работу, прежде чем я закончу, но это путь.

+1

FYI: Я добавил [ответить здесь] (http://stackoverflow.com/a/ 41027997/5292302) о том, как использовать изображение base64 в компоненте html –

ответ

1

С textFieldNO, markup="html" не будет работать на бирках как table, img, style="border:1px" ЕСС.

Почему? Потому что текстовое поле отображает текст. Форматированный текст, например. <b>String</b> будет работать.

Одним из способов было бы проверить отчет яшма htmlcomponent <hc:html/> это сделает изображение вашего HTML или URL

+0

Хорошо, спасибо за объяснение! Назад к чертежной доске для другого решения. – Daemun

+1

ОК Я нашел компонент html (доступен в отчете jasper 6.0 api), он может отображать изображение html, не знаю, разрешило ли это вашу проблему ... проверьте это ... –

+0

Я также нашел его. Я планировал обновить свой пост, но пока не нашел времени. Спасибо, в любом случае! – Daemun

Смежные вопросы