Спецификация PDF определяет текстовый оператор, называемый '(апостроф). Определение состоит в том, что он записывает некоторый текст и переходит к следующей строке на основе текущего начального состояния. Текущее ведущее состояние может быть установлено с помощью оператора TL. Это позволяет очень легко писать строки текста, если вы знаете, насколько они должны быть разнесены по вертикали:
16 TL
/F1 12 Tf
(Line 1) '
(Line 2) '
(Line 3) '
(Line 4) '
Я не использую никаких библиотек для этого, так как это учебное упражнение. Я написал некоторый код для непосредственного анализа файлов TTF и извлечения ширины символов и других элементов, которые требуются для словарей PDF FontDescriptor.
Я читал спецификацию формата файла TTF, чтобы попытаться выяснить, где находится высота строки или как ее можно рассчитать, но мне не повезло.
При условии, что у меня есть следующие данные:
- Размер шрифта.
- Все соответствующие значения из файла TTF (Ascender, Descender, Line Gap и т. Д.)
Как рассчитать лидирующий PDF из TTF?
редактировать
Похоже, что значение Line Gap из TTF-файла играет важную роль в расчете начального значения PDF, но некоторые шрифты не предоставляют для него разумного значения (например, Courier New в Windows).