JasperReports шрифт по умолчанию

#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, если пользователь использовал неизвестный шрифт. Но я хочу использовать все известные шрифты.