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

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

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

Я попытался использовать библиотеку PHP Cphf от Wayne Munro ([email protected]) и добавил в нее множество регулярных выражений. Я добавил много операторов форматирования текста 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» (таблица позиционирования глифов), и я довольно близок к решению проблемы. Кстати, ходить внутри бинарного файла PHP - это кошмар((


person Ruben Kazumov    schedule 21.07.2012    source источник
comment
Это звучит как много работы. Почему бы вам не использовать TeX-движок с поддержкой OpenType, поддерживающий Unicode, такой как XeTeX или LuaTeX?   -  person Martin Schröder    schedule 22.07.2012
comment
Я ОБОЖАЮ ЛАТЕКС! Я влюбилась в Текса с первого взгляда. Может быть, когда-нибудь я пойму, что моя нынешняя идея — пустая трата времени, и я попробую связать MySQL-›компилятор PHP-›XeTeX(сервер?)-›представление. Но на данный момент у меня есть несколько причин полагать, что цепочка MySQL-›компилятор PHP-›представление имеет для меня некоторые преимущества. Но кто знает?   -  person Ruben Kazumov    schedule 23.07.2012


Ответы (1)


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

person Ruben Kazumov    schedule 01.08.2012