PHP: использование преимуществ символов Unicode и таблиц кернинга шрифтов Open Type (otf) напрямую для создания PDF в качестве ответа сервера

Я работаю с базой документов, содержание от 5 до 20 страниц текстовых данных каждая.
У меня три задачи:

  1. Сделать многоязычный вывод в виде PDF документа. Тексты в UTF8 и могут содержать контент на английском, французском, немецком, русском и т. Д., А также комбинации, такие как переводы.
  2. Добавить автоматическую типографику в PDF, что означает кернинг и замену комбинации букв на символы Юникода.
  3. У меня есть шрифт MinionPro-xxx.otf (10 лигатур) для моей работы.

Я попытался использовать библиотеку PHP Cphf от Уэйна Мунро (pdf@ros.co.nz), и я добавил к ней много регулярных выражений. Я добавил много операторов форматирования текста PDF, как Ts, TL, T*, Tc, Tw, Tz и я почти закончил, но я не могу достать глифы символов за пределами таблицы символов типа 1, и я не знаю, как получить таблицы 'kern' и 'hmtx' из файла шрифтов? Как встроить глифы?

Полагаю, я могу сделать кернинг с помощью текстовой директивы PDF с матричным преобразованием:

[ (A) 120 (W) 120 (A) 95 (Y again) ] TJ

UPD # 1: у шрифта MinionPro нет таблицы 'kern'. У него есть "GPOS" (Таблица позиционирования Glyph), и я довольно близок к решению проблемы. Кстати, ходить по бинарному файлу по PHP - это кошмар ((

1 ответ

Решение

Использование ручного кернинга в небольших текстовых строках шрифта - совершенно неверная стратегия. Microsoft Excel PDF экспортеры текста делают то же самое, и результат не является приемлемым.

Другие вопросы по тегам