#java #client-server #jasper-reports
#java #клиент-сервер #jasper-отчеты
Вопрос:
У меня есть шаблон JasperReport (созданный на сервере) со стилизованным текстовым полем (RTF). Содержимое этого поля генерируется пользователем, и поэтому оно может содержать все шрифты, установленные на клиентском компьютере (назовем его Font X). Если я сейчас создам отчет на сервере, там не будет шрифта X, поэтому я хочу заменить все неизвестные шрифты на шрифт Y.
Но все, что я получаю, это сообщение об ошибке, что шрифт не найден. Функция (net.sf.jasperreports.awt.ignore.missing.font) для отключения проверки шрифтов вообще нежелательна, потому что я хочу, чтобы проверялись шрифты jrxml.
Есть ли способ установить шрифт по умолчанию (без изменения исходного кода Jasper)? (Я уже нашел некоторые моменты в JRStyledText или JRTextUtil.)
Ответ №1:
Вы можете попробовать использовать net.sf.jasperreports.default.font.name
свойство.
Или вы можете использовать default style
.
<style name="Base" isDefault="true" ...>
Для получения более подробной информации вы можете прочитать эту статью, Default Fonts and Inheritance
раздел.
ОБНОВЛЕНО:
Цитата из окончательного руководства JasperReports:
Мы настоятельно рекомендуем пользователям использовать в своих отчетах только шрифты, которые предоставляются в расширениях шрифтов. Это единственный способ убедиться, что шрифты будут доступны приложению при выполнении отчетов во время выполнения. Использование системных шрифтов всегда сопряжено с риском того, что отчеты не будут работать должным образом при развертывании на компьютере, на котором не установлены эти шрифты.
Комментарии:
1. да, я уже установил это свойство, но мне все равно нужно отключить ignore.missing.font… Есть ли способ игнорировать отсутствующие шрифты только в определенных полях?
2. @itshorty И в чем твой вопрос? Я думал, что это было:
is there a way to set a default font
…3. Да, но продолжайте игнорировать.отсутствует. шрифт включен… Есть только одно поле, где шрифты не всегда доступны, поэтому я хочу отключить проверку шрифтов только для этих полей.
4. А как насчет настройки стиля для этого элемента?
5. затем я получаю исключение JRFontNotFoundException, если пользователь использовал неизвестный шрифт. Но я хочу использовать все известные шрифты.