Пользовательские PDF шрифты

При использовании текстовых элементов внутри Jaspersoft Studio, пользователи могут выбрать шрифт. Хотя задача кажется простой, при использовании шрифтов возникает множество проблем. Основная проблема заключается в том, что доступные шрифты предоставляются операционной системой, и поэтому вы можете столкнуться со следующим:

  • Доступный в одной ОС шрифт недоступен в другой. Тогда, в качестве альтернативы, для элемента используется шрифт по умолчанию.
  • Шрифт может быть доступен в различных ОС, но немного отличаться в них.

Во многих случаях это просто недопустимо. Использование шрифта, отличного от планового, может потребовать больше или меньше места для текста, а это может повлиять не только на графический вид, но и на компоновку самого отчета. Чтобы преодолеть эту трудность, можно использовать сторонние файлы со шрифтами вместо шрифтов ОС. Благодаря этому, отчет станет независимым от шрифтов ОС и в любом случае сохранит внешний вид своего расположения. У формата PDF есть свой набор шрифтов. В случае если необходимо использовать другие шрифты в документа, их нужно встроить в PDF при помощи Расширения Шрифтов.

Загрузка шрифта

Во-первых, у вас должен быть шрифт, который вы хотите использовать. Jaspersoft Studio позволяет использовать широкий набор типов шрифтов, таких как TTF, SVG, WOFF и EOT. TTF  - один из наиболее используемых форматов, и многие вебсайты собирают шрифты с различными лицензиями. В этом руководстве мы будем использовать шрифт Carnivalee Freakshow Font, который можно также найти в приложении в данной странице. Скачайте и сохраните TTF  файл. Если вы скачаете его с вебсайта по ссылке, будет необходимо извлечь содержимое архивированного файла.

Создание расширения шрифтов

Откройте Jaspersoft Studio, перейдите к Window->Preferences. В диалоговом окне раскройте категорию Jaspersoft Studio слева, выберите Font и нажмите Add.

Теперь вам необходимо задать уникальное имя для расширения шрифтов и указать путь к расширению. Так как в руководстве мы используем TTF, мы будем использовать поле True Type.

Вы можете также указать вариант шрифта для жирного, наклонного и полужирного текстовых стилей. Если вы их не укажете, вы все равно сможете использовать шрифт с одним из этих стилей. Обычный шрифт будет изменен для получения стилизованного варианта. На ваше усмотрение, вы можете задать разные шрифты для каждого из вариантов. В данном руководстве мы используем только обычный шрифт.

Вы можете также выбрать опцию замены данного шрифта при экспорте в PDF. Мы оставим это поле незаполненным, так как после экспорта в PDF мы хотим использовать тот же шрифт. По этой причине нам надо выбрать "Embed this font in the PDF document" и сопоставимую кодировку, например,  CP1251. Обратите внимание, что встраивание шрифта в PDF-экспорт увеличит размер получившегося PDF-файла.

Нажмите "Next". При выполнении следующих шагов вы можете предоставить дополнительную информацию другим экспортерам и ограничить использование данного шрифта только определенным количеством узлов. Нам это не надо, поэтому просто нажимаем "Finish", чтобы закрыть диалог и "Ok" для закрытия диалога предпочтений.

Если вы теперь откроете отчет, то среди доступных шрифтов увидите имя, совпадающее с именем вашего расширения шрифтов, "MyCustomExtension" (Если вы его не видите, попробуйте закрыть и снова открыть отчет). Выберите шрифт, чтобы применить его к элементу. Вы можете поменять стиль на жирный, курсив или полужирный, даже если вы это не указывали при создании расширения шрифтов.

Экспорт расширения шрифтов

Среди проблем, которые решает расширение шрифтов, - необходимость иметь один и тот же шрифт на каждой ОС, чтобы текст выглядел везде одинаково. Но следуя тому, что описано в руководстве, нам нужно скопировать TTF файл на каждую ОС, и на каждой системе воспроизвести расширение шрифтов с точно таким же именем. В противном случае, созданный в одной ОС отчет не найдет шрифта в другой ОС. Если бы мы использовали несколько TTF файлов для стилей текста, нам бы пришлось копировать и эти файлы и более глубоко настраивать Расширение. Это несложно, но может занять какое-то время, а повторение процедуры много раз может привести к ошибкам, например, к опечатке в имени расширения. Для упрощения задачи есть возможность экспортировать наше расширение шрифтов как JAR-файл и использовать его в любых проектах.

Сначала откройте диалог Preferences и перейдите к Fonts, чтобы увидеть все ваши расширения шрифтов. Выберите ранее созданное расширение "MyCustomExtension" и нажмите "Export".

Появится диалог сохранения. Задайте имя целевого файла и сохраните его. В этом JAR-файле будет все необходимое для использования расширения на других ОС, вам лишь нужно открыть общий доступ к этому единственному файлу, чтобы перенести расширение шрифта на другую машину. В приложении к этому руководству вы можете найти файл, сгенерированный таким способом.

Опубликовать шрифт на сервере

Когда у вас будет файл font.jar, перетащите его в вашу директорию SberMobile/lib и перезапустите сервер.