Как заставить модуль fontforge печатать образцы водопада?

Я пишу скрипт Python для просмотра моей коллекции шрифтов (некоторые TTF, некоторые OFD, некоторые SFD) и в конечном итоге создаю один документ (PDF?) с примерами страниц для всех из них.

Мой желаемый выходной формат был бы похож на тот, который вы получаете при просмотре файла шрифта в Windows или Gnome; образец здесь из ответа qubodup в https://unix.stackexchange.com/questions/5715/how-to-view-a-ttf-font-file). Используя этот ответ, я могу использовать ImageMagick для создания образцов изображений для файлов TTF и OFD.

Я пытаюсь использовать fontforge для обработки файлов SFD. Я на Ubuntu, установил fontforge и python-fontforge. Я использую https://fontforge.github.io/python.html для документации, в частности разделы printSetup и printSample.

Этот скрипт отлично работает для печати шрифта display и fontsample, но водопад показывает только заголовок «Размеры образцов FX Matrix 105 Mono Compr Exp Dbl UL Sub Italic» и не содержит текста водопада. Я возился с кортежем pointsize в вызове printSample (включая неиспользование кортежа) и различными значениями третьего параметра printSample.

import fontforge

amb = fontforge.open('FXMatrix105MonoComprExpDblULSubItalic.sfd')
fontforge.printSetup('pdf-file', 'z.pdf')
amb.printSample('fontdisplay', 24, 'abcdefABCDEF', 'fontdisplay.pdf')
amb.printSample('waterfall', (12, 16, 24, 36), 'abcdefABCDEF', 'waterfall.pdf')
amb.printSample('fontsample', 24, 'abcdefABCDEF', 'fontsample.pdf')

Я ожидаю, что printSample('waterfall', ...) предоставит мне образец шрифта с различными размерами точек (например, при просмотре файла шрифта в Windows или Linux), но, как я уже писал, водопад.pdf имеет только заголовок «Образцы размеров FX Matrix 105 Mono Compr Exp Dbl UL Sub Italic" и ничего под ним.

Что я делаю не так, пытаясь создать водопадный документ из модуля python fontforge?


person fovea1959    schedule 08.02.2019    source источник
comment
Я добавил это как проблему в проект font-forge на Github. Вот решение (на github.com/fontforge/fontforge/issues/3457)   -  person fovea1959    schedule 10.02.2019


Ответы (1)


Я разместил это как проблему в проекте fontforge на github; Я не предоставлял достаточно информации (и не понимал, что такое каскадная страница)

Спасибо за Фредрик Бреннан ctrlcctrlv, ответ на https://github.com/fontforge/fontforge/issues/3457:

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

fontforge.open('FXMatrix105MonoComprExpDblULSubItalic.sfd')
fontforge.printSetup('pdf-file', 'z.pdf')
amb.selection.select(("unicode","ranges"),ord('A'),ord('Z'))
amb.printSample('waterfall', (12, 16, 24, 36), 'abcdefABCDEF',
'waterfall.pdf') ```
person fovea1959    schedule 10.02.2019