API движка текстового макета для C ++ - PullRequest
3 голосов
/ 17 ноября 2010

У меня есть проект, в котором мне нужно взять введенный текст и отобразить его в изображение. Текст должен быть обернут, иметь поля, кернинг, межбуквенный интервал, определенные шрифты и так далее. Кажется, что я мог бы написать большую часть этого вручную, но также кажется, что для этого должны быть уже существующие библиотеки.

Я смотрел на движки веб-рендеринга, такие как WebKit и Gecko, которые кажутся слишком сложными, LaTeX, похоже, не имеет C ++ API, GhostScript выглядит наиболее многообещающим до сих пор.

Я пишу приложение на C ++, и я не хочу, чтобы оболочка выполнялась системным вызовом - похоже, это будет негибко и неэффективно. Он должен работать на Linux, и, предпочтительно, на Mac OSX.

Спасибо за любой совет, который вы можете предложить.

Ответы [ 2 ]

4 голосов
/ 18 ноября 2010

Подпроцессы могут быть довольно крутыми, но я думаю, вы ищете что-то вроде pango или движок рендеринга шрифтов в Qt. Похоже, что вы можете достичь всего, что вам нужно, с помощью QPainter :: drawText (...) . Смотрите также QFont .

Стоит отметить, что я раньше перетаскивал в Qt специально для рендеринга шрифтов, не используя его ни для чего другого. Вам нужно создать QCoreApplication -объект, но это все. Работает как шарм:)

1 голос
/ 30 апреля 2011

Если вы хотите что-то более низкого уровня (и с меньшим количеством зависимостей, чем Qt или Pango), вы можете напрямую использовать FreeType . Чтобы нарисовать один и тот же текст, потребуется больше строк кода (вот их первый example1.c ), но он может быть меньше, чем строки Makefile, необходимые для ввода Qt!

...