вторник, 9 сентября 2014 г.

Кириллица в Mapfish print plugin.


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

Для отображения кириллицы я использую кодировку Identity-H. Но ее одной недостаточно, если попробовать напечатать такой пример:

   - !text
       text: "Привет"
       fontEncoding: Identity-H
       align: center

То ничего не напечатается, будет просто пустое место.
Для решения этой проблемы нужно подключить шрифт работающий с данной кодировкой. Мой выбор пал на FreeSans

Подключаются шрифты в отдельном блоке:

scales:
   ....
fonts: 
    - 'E:\GeoServer 2.5.1\data_dir\printing\FreeSans.ttf'
    - 'E:\GeoServer 2.5.1\data_dir\printing\FreeSansOblique.ttf'
hosts:
   ....
layouts:
   ....
Подключение шрифта к элементу:
   - !text
       text: "Привет"
       fontEncoding: Identity-H
       font: FreeSans
       align: center
Теперь все должно работать.

Так же скажу, что подключить шрифты к легенде мне не удалось. Легенда выводится криво - имена стилей показывают кириллицу ,а вот имена слоев нет.
В работе использовалась связка Geoserver 2.5.2 и Print plugin 1.2