Создайте гиперссылку внешнего 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.
Ответы
Ответ 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>