Как создать гиперссылку для загрузки файла в отчете jasper - PullRequest
0 голосов
/ 19 июня 2019

Я создаю шаблон отчета Jasper со страницы, где я могу загрузить некоторые файлы в виде вложения. Требуется сгенерировать отчет со страницы и добавить URL-адрес файла в сгенерированный отчет. Если пользователь щелкает URL-адрес, он может загрузить файл.

Когда мы загружаем файл в нашу систему, мы генерируем уникальное имя файла для загруженного файла.

Пример. Если загруженный файл был «Jaspersoft-Studio-User-Guide.pdf», файл будет иметь новое имя: «03ff52a3-c165-4f71-9d27-eedac395a41b»

Мне нужна гиперссылка, которая работает аналогично загрузке файла браузера, поэтому для доступа к файлу используйте URL-адрес: "www.test.com/03ff52a3-c165-4f71-9d27-eedac395a41b" Имя загруженного файла будет "Jaspersoft-Studio" -User-Guide.pdf "вместо" 03ff52a3-c165-4f71-9d27-eedac395a41b "

Возможно ли это?

Я пытался использовать:

<textField isStretchWithOverflow="true" isBlankWhenNull="true" hyperlinkType="RemotePage" hyperlinkTarget="Blank">
    <reportElement x="0" y="0" width="345" height="20" isRemoveLineWhenBlank="true" forecolor="#5A82C3" uuid="c2621a64-81fe-4847-9f25-48292d0beb46"/>
    <textElement verticalAlignment="Middle" markup="html">
        <font fontName="GT-Pressura"/>
    </textElement>
    <textFieldExpression><![CDATA[$F{filename} +"<style size='4'>" +$F{url}+ "</style>"]]></textFieldExpression>
    <anchorNameExpression><![CDATA[$F{filename}]]></anchorNameExpression>
    <hyperlinkReferenceExpression><![CDATA[$F{url}]]></hyperlinkReferenceExpression>
    <hyperlinkTooltipExpression><![CDATA[$F{filename}]]></hyperlinkTooltipExpression>
</textField>

и с html, как это используется в браузере:

<textField>
    <reportElement x="290" y="90" width="254" height="20" uuid="5124e8e6-831b-49f8-9f4a-b920f6fb2277"/>
    <textElement markup="html"/>
    <textFieldExpression><![CDATA["<a  href='localhost:8080/bb7162d3-83e5-4b7a-b65b-eaa5930924d1'  download='Jaspersoft-Studio-User-Guide.pdf'> Jaspersoft-Studio-User-Guide.pdf </a>"]]></textFieldExpression>
</textField>

Я ожидаю, что ссылка работает как ссылка в браузере, поэтому имя должно быть таким, какое я укажу в поле download.

Этого можно добиться с помощью гиперссылки или текстового поля с markup="html" или мне нужно создать фильтр, который изменяет имя загружаемого файла?

...