Некорректное отображение кириллических шрифтов в PDF формуляре
Некорректное отображение кириллических шрифтов в PDF формуляре
Некоторое время назад я столкнулся с интересной проблемой: у пользователя некорректно отображаются кириллические шрифты в PDF формуляре при просмотре расчетного листка. Расчетный листок формируется из портального сервиса самообслуживания сотрудников. В условиях данной задачи, также «дано», что в постоянных значениях основной записи пользователя, для параметра «Устройство вывода», установлено значение «PDF».
![](https://signatov.com/content/images/2015/09/fonts-1.png)
Посмотрим, что было сделано, для ее исправления этой ошибки.
Для начала необходимо определить наименование шрифта, который не отображается на портале. Для этого, в открывшемся сервисе «Просмотр расчетного листка», кликнуть кнопкой мыши и в контекстном меню выбрать пункт «Document Properties»:
![](https://signatov.com/content/images/2015/09/fonts-3.png)
Затем перейти на вкладку Fonts:
![](https://signatov.com/content/images/2015/09/fonts-4.png)
В данном случае, используемый в PDF-формуляре шрифт, Courier. Скачиваем TrueType шрифт Courier и устанавливаем его в системе, с которой «связан» портал.
При этом необходимо обязательно убедиться, в том, что данный шрифт поддерживает кириллицу. Запускаем программу RSTXPDF2UC, выбираем на селекционном экране опцию «Перечислить атрибуты шрифта» и смотрим на раздел «Поддержанные языки/Сценарии»:
![](https://signatov.com/content/images/2015/09/fonts-5.png)
В данном случае, раздел «Поддержанные языки/сценарии» пустой. Для решения проблемы с некорректно отображаемыми кириллическими шрифтами в PDF формуляре, необходимо найти шрифт, который будет поддерживать кириллическую область уникода. К таким шрифтам, к примеру, относится Courier New:
![](https://signatov.com/content/images/2015/09/fonts-6.png)
Шрифт Courier New отлично подходит для решения вышеописанной проблемы.
После того, как необходимый шрифт был найден и сохранен на локальный компьютер (файл с расширение *.TTF) необходимо запустить программу RSTXPDF2UC в back-end системе, выбрать пункт «Инсталлировать шрифт True type»:
![](https://signatov.com/content/images/2015/09/fonts-7.png)
В появившемся окне необходимо выбрать директорию, в которой сохранен TTF файл
![](https://signatov.com/content/images/2015/09/fonts-8.png)
В появившемся диалоговом окне консультанту будет предложено создание нового шрифта в системе. Необходимо выбрать «Да»:
В следующем диалоговом окне будет предложено использование данного шрифта в PDF-файлах. Необходимо выбрать «Да»
![](https://signatov.com/content/images/2015/09/fonts-10.png)
Затем система предложит внесенные изменения сохранить в транспортный запрос
![](https://signatov.com/content/images/2015/09/fonts-11.png)
После выполненной установки отобразится справочная информация о шрифте:
![](https://signatov.com/content/images/2015/09/fonts-12.png)
Далее нужно создать правило мэппинга для только что установленного в системе шрифта. Правило мэппинга определяет для каких символов будет использоваться тот или иной шрифт. Для этого необходимо выбрать пункт «Создать/изменить правило мэппинга» на селекционном экране программы RSTXPDF2UC:
![](https://signatov.com/content/images/2015/09/fonts-13.png)
В появившемся диалоговом окне выбрать «Да»
![](https://signatov.com/content/images/2015/09/fonts-14.png)
Затем необходимо выбрать только что установленный шрифт (в данном примере, это Courier New)
![](https://signatov.com/content/images/2015/09/fonts-15.png)
Определяем поддерживаемые области для нового шрифта (в нашем случае необходимо выбрать значение CYRYLLIC)
![](https://signatov.com/content/images/2015/09/fonts-16.png)
![](https://signatov.com/content/images/2015/09/fonts-17.png)
Затем внесем изменения в устройство вывода, использующееся в системе для работы с PDF формулярами. Для этого открываем транзакцию SPAD:
![](https://signatov.com/content/images/2015/09/fonts-18.png)
Выбираем устройство вывода «PDF», нажимаем на кнопку «Просмотр». В открывшемся экране меняем тип устройства с POST2 на PDUFC:
![](https://signatov.com/content/images/2015/09/fonts-19.png)
Сохраняем внесенные изменения и переходим к свойствам типов устройств:
![](https://signatov.com/content/images/2015/09/fonts-20.png)
Заменяем значение кодировки на 1505 «Printer SAPWIN5 Russian MS-Windows codepage»
![](https://signatov.com/content/images/2015/09/fonts-21.png)
Сохраняем, и проверяем изменилось ли у пользователя отображение символов в формуляре сервиса «Просмотр расчетного листка».
Voilà:
![](https://signatov.com/content/images/2015/09/fonts-23.png)