Я добавляю возможность вставлять шрифты Truetype в PDF-файлы, сгенерированные моим приложением, но шрифты "Sitka Text" (и его варианты "Sitka Banner", "Sitka small" и т. Д.) и "Мейрио" не вставлять.
Я считаю, что это потому, что я использую имя из объекта LOGFONT , и для этих шрифтов я должен использовать имя PostScript.
Как я могу получить имя Postscript?
Я получил таблицу 'name' с GetFontData , но результат не вернул имя, которое я мог бы использовать.
Есть ли в WINAPI метод, который дает мне это имя?
Редактировать: Я показываю своим пользователям только шрифты с разрешениями на встраивание "Редактируемые" и "Устанавливаемые" , которые я получаю с помощью методов EnumFontFamiliesEx и это CALLBACK функция.
Я также проверил NEWTEXTMETRIC ntmFlags, который показывает, что все мои шрифты - NTM_TT_OPENTYPE.
Edit2: Под "не вставлять" я имею в виду, что программы чтения PDF-файлов не отображают мой шрифт как встроенный (а Acrobat не показывает никакого текста)
Пример ошибки.
решаемые
Во-первых, я хотел бы поблагодарить Майкла Маккефа и MKL. Вы, ребята, Awesome и мне очень помогли, я проверил свой оригинальный шрифт, и он не был поврежден, и я не изменил байты шрифта, но потом я наконец заметил, что если вы вызываете GetFontData для файла (.ttc), он обрезает часть ttcf, и никакой читатель PDF не сможет понять, какой это был шрифт.