2013-06-03 14 views
10

Oto już pytania:Jak sprawdzić, które czcionki zawierają konkretny znak z perl?

Mam wiele różnych czcionek. Wiele z nich to "tylko ascii" i muszę sprawdzić, które czcionki zawierają kilka znaków akcentowanych. (Latin - codepoints unicode - teksty są zakodowane jako UTF-8), takich jak: (áäčďéěíĺľňóôöőŕřšťúůüűýž)

Mają głównie:

  • czcionek (z rozszerzeniem)
  • .TTF
  • zbiory TrueType (rozszerzenie .ttc)
  • czcionki OpenType (.OTF)

Jaki jest zwykle (poprawne) sposób to zrobić z Perl? (jest to jedyny język, który znam trochę, a powyższe pytania dotyczą C). Pytam, zanim zacznę instalować wszystkie moduły CPAN, co zawiera "czcionkę" :).

Jestem na OS X (jeśli jest to ważne i można zainstalować dowolny pakiet Macports - jeśli to pomaga).

+1

Wystarczy popatrzeć na moją odpowiedź na [to pytanie] (http://stackoverflow.com/questions/15896493/how-can-one-find-the-unicode- codepoints-that-a-font-has-glyphs-for-on-a-debian/15905540 # 15905540). – nwellnhof

+0

@nwellnhof Niestety, nie mogę zainstalować 'Font :: FreeType' na OS X. Kompilowanie błędu rzucania FreeType.xs. Na szczęście sugestia @mob 'Font :: TTF' zainstalowana czysto. Dziękuję i tak, dobrze wiedzieć, niż tutaj jest inne rozwiązanie. – cajwine

+0

Nie perl, ale dla SEO, ten skrypt Pythona działa świetnie: http://unix.stackexchange.com/a/268286/26952 –

Odpowiedz

3

przypadku plików .ttf można użyć Font::TTF i powiązane moduły:

use Font::TTF::Font; 
my $font = Font::TTF::Font->open("C:/Windows/Fonts/ariali.ttf"); 
my @supported_codepoints = sort { $a <=> $b } $font->{cmap}->reverse; 

dostaję z mojej głębi, ale istnieje również moduł w dystrybucji Font::TTFFont::TTF::Ttc że można poruszać się po systemie i Sprawdź, czy możesz uzyskać więcej informacji na temat obsługiwanych punktów kodowych.

(Font::TTF propozycja pochodziła z here)

+0

'Font :: TTF' jest ładnym modułem, ale wymaga trochę zrozumienia TrueType i formaty OpenType. BTW, '$ font -> {cmap} -> ms_table' zwraca skrót, który odwzorowuje kody Unicode na identyfikatory glyph. Taki skrót powinien być łatwiejszy w użyciu niż tablica zwrócona przez '-> reverse'. – nwellnhof

Powiązane problemy