2009-10-23 2 views
2

Я пытаюсь написать средство просмотра шрифтов для шрифтов TrueType/OpenType с кодом VB6/VB5 (под Windows).написание шрифта viewer - получение свойств шрифта, загрузка ttf динамически

это удивительно трудно:

1) в VB/WinAPI, я не нашел, как извлечь имя шрифта или свойства шрифта в целом.

2) Я могу установить шрифт (используя функцию API AddFontResource), но затем его необходимо удалить. Однако, в то время как (AddFontResource»ожидает пути, удаление шрифта требует имени шрифта, который мне неизвестен.

есть способ использовать неустановленные TTF шрифта)?

является есть ли способ, чтобы извлечь свойства шрифта, используя VB6?

(я могу написать программу в WxPython, но я знаю еще меньше шрифтов питона, чем с VB)

ответ

0

Это действительно есть. Я столкнулась с той же проблемой (см. мой question). Я закончил тем, что писал свой собственный парсер, потому что мне нужно было определить, был ли шрифт поврежден или нет. Существует AddFontMemResourceEx функция:

Когда функция завершается успешно, абонент этой функции может освободить память, на которую указывает pbFont, потому что система сделала свою собственную копию памяти. Чтобы удалить установленные шрифты, вызовите RemoveFontMemResourceEx. Однако, когда процесс уходит, система выгрузит шрифты, даже если этот процесс не вызвал RemoveFontMemResource.

Кроме того, вы можете использовать Font and Text Functions для получения метрик шрифта.

1

Вы можете использовать FreeType library.

+0

+1. Гораздо более приятная и, возможно, кросс-платформенная совместимость, чем работа с родными установленными шрифтами. Также подходит для гораздо более полезного приложения! Существует связка Python, называемая ft2, которая называет себя бета-качеством; лично я использовал FreeType через PIL раньше с некоторым успехом, хотя, конечно, это ограниченный набор функций, возможно, недостаточно для использования в качестве средства просмотра шрифтов. Я не знаю о VB6, но в наши дни я бы не хотел писать что-либо в классическом VB. – bobince

Смежные вопросы