Создайте гиперссылку внешнего URL-адреса с помощью JasperReports - программирование

Создайте гиперссылку внешнего URL-адреса с помощью JasperReports

Как вы включаете гиперссылку (URL) в PDF, которая ссылается на внешний сайт?

Используя простую строку типа "http://www.stackoverflow.com, ссылка автоматически создается. Но как я могу использовать URL-адрес, например <a href="#" onclick="location.href='http://www.stackoverflow.com'; return false;">Click here</a>?

Если я использую эту строку HTML, Jaspers создаст ссылку, но также покажет код.

Использование JasperReports 4.0.4 и iReport 4.5.1.

4b9b3361

Ответ 1

Чтобы сделать textField гиперссылкой на внешний URL-адрес, вам нужно добавить атрибут hyperlinkType="Reference" к элементу и добавить в него тег <hyperlinkReferenceExpression>. В качестве ссылочного выражения вы указываете URL-адрес.

Например:

<textField hyperlinkType="Reference" hyperlinkTarget="Blank">
    <reportElement x="5" y="5" width="200" height="15"/>
    <textElement/>
    <textFieldExpression class="java.lang.String"><![CDATA["Click Here!"]]></textFieldExpression>
    <hyperlinkReferenceExpression><![CDATA["http://www.google.com"]]></hyperlinkReferenceExpression>
</textField>

Атрибут hyperlinkTarget ведет себя так же, как и атрибут target в HTML.

Обратите внимание, что только textFields, изображения и диаграммы могут быть гиперссылками таким образом.

Более подробное объяснение и дополнительные примеры см. эту страницу jasperforge.

Ответ 2

По некоторым причинам приведенный пример не работает. Я использовал машину обратного пути и нашел следующий сниппет, который работал:

<textField hyperlinkType="Reference">
  <reportElement x="5" y="95" width="300" height="15"/>
  <textFieldExpression class="java.lang.String">"  >> Click here to go to www.google.com"</textFieldExpression>
  <hyperlinkReferenceExpression>"http://www.google.com
</hyperlinkReferenceExpression>
    </textField>