Список доступных шрифтов в PHP

Я хотел бы запросить, какие шрифты доступны в * nix-подобной системе, в идеале с использованием PHP 5.2 или 5.3, но, похоже, не так много библиотек, доступных для этого независимо от системы. php-font-lib просто сканирует каталог ( код , демонстрационный файл ), но я надеюсь, что есть более элегантный способ сделать это. (В любом случае, сканирование папки является лишь частью задачи, файлы шрифтов по-прежнему необходимо открыть для извлечения имени и других метаданных).

Справочная информация. Я передаю PDF-файлы на веб-сервере с помощью Inkscape и хотел бы определить, какие шрифты доступны для визуализации текстовых элементов. Я развиваюсь на OS 10.6.8 и развертываюсь в Linux.

Изменить: я нашел оболочку PHP для Pango, которая является расширенным средством визуализации шрифтов, которое часто используется с Cairo; оба из них используются в Inkscape. Обертка довольно новая, поэтому я еще не уверен, может ли она создавать список шрифтов, но это выглядит интересно :) .

Solutions Collecting From Web of "Список доступных шрифтов в PHP"

Я только что нашел кросс-платформенную команду, fc-list . Работает на OS X 10.6.8 и моей Ubuntu VPS и может быть легко вызвана PHP. На моей машине Linux я получаю список в этом формате:

 Nimbus Sans L:style=Regular Italic URW Palladio L:style=Roman Century Schoolbook L:style=Bold Italic Nimbus Sans L:style=Bold URW Chancery L:style=Medium Italic Nimbus Roman No9 L:style=Regular Century Schoolbook L:style=Bold Century Schoolbook L:style=Italic Nimbus Sans L:style=Regular URW Palladio L:style=Italic Nimbus Sans L:style=Bold Condensed URW Gothic L:style=Demi Nimbus Roman No9 L:style=Medium Italic Nimbus Mono L:style=Bold Oblique Dingbats:style=Regular ...continues... 

На Mac это выглядит так:

 URW Gothic L:style=Book Oblique Fixed:style=ja URW Palladio L:style=Bold Italic Heiti SC,黑體\-簡,黒体\-簡,Heiti\-간체,黑体\-简:style=Light,細體,Mager,Fein,Ohut,Fin,Leggero,ライト,가는체,Licht,Tynn,Leve,Светлый,细体,Fina Arial Narrow:style=Bold Italic,Negreta cursiva,tučné kurzíva,fed kursiv,Fett Kursiv,Έντονα Πλάγια,Negrita Cursiva,Lihavoitu Kursivoi,Gras Italique,Félkövér dőlt,Grassetto Corsivo,Vet Cursief,Halvfet Kursiv,Pogrubiona kursywa,Negrito Itálico,Полужирный Курсив,Tučná kurzíva,Fet Kursiv,Kalın İtalik,Krepko poševno,Lodi etzana Fixed:style=Regular Helvetica:style=Bold Oblique Arial:style=Bold,Negreta,tučné,fed,Fett,Έντονα,Negrita,Lihavoitu,Gras,Félkövér,Grassetto,Vet,Halvfet,Pogrubiony,Negrito,Полужирный,Fet,Kalın,Krepko,đậm,Lodia KufiStandardGK:style=Regular,標準體,Ordinær,Normal,Normaali,Regolare,レギュラー,일반체,Regulier,Обычный,常规体Courier:style=Regular,標準體,Ordinær,Normal,Normaali,Regolare,レギュラー,일반체,Regulier,Обычный,常规体New Century Schoolbook:style=Italic Menlo:style=Bold Luxi Sans:style=Bold Oblique ... 

Хех! Я делаю час или около того для поиска и не нахожу ничего приятного; то, как и автобусы, сразу найдено несколько ответов. Вот еще один способ: из команды convert -list font list от ImageMagick (по-видимому, переименован из convert -list type list-list перед v6.3.5-7 [ source ]). Я думаю, что я предпочитаю это над fc-list , так как вывод выглядит так, как он может быть проанализирован как YAML.

Из Linux:

 Path: /usr/lib/ImageMagick-6.5.7/config/type-ghostscript.xml Font: AvantGarde-Book family: AvantGarde style: Normal stretch: Normal weight: 400 glyphs: /usr/share/fonts/type1/gsfonts/a010013l.pfb Font: AvantGarde-BookOblique family: AvantGarde style: Oblique stretch: Normal weight: 400 glyphs: /usr/share/fonts/type1/gsfonts/a010033l.pfb ... 

И с Mac:

 Path: /opt/local/etc/ImageMagick/type-ghostscript.xml Font: AvantGarde-Book family: AvantGarde style: Normal stretch: Normal weight: 400 glyphs: /opt/local/share/fonts/urw-fonts/a010013l.pfb Font: AvantGarde-BookOblique family: AvantGarde style: Oblique stretch: Normal weight: 400 glyphs: /opt/local/share/fonts/urw-fonts/a010033l.pfb ... Path: System Fonts Font: .Aqua-Kana-Bold family: .Aqua Kana style: Normal stretch: Normal weight: 600 glyphs: /System/Library/Fonts/AquaKana.ttc Font: .Aqua-Kana-Regular family: .Aqua Kana style: Normal stretch: Normal weight: 300 glyphs: /System/Library/Fonts/AquaKana.ttc 

Это также дает результаты, хотя он просто получает имя Font: строке Font: line from convert output:

 <?php $imagick = new Imagick(); $fonts = $imagick->queryFonts(); foreach($fonts as $font) { echo $font; } ?>