Podgrupa Czcionki Według Specyficznych Glifów
Mam 14MB TTF zawierający głównie uproszczone chińskie znaki.
Chciałbym zmniejszyć rozmiar, tworząc podzbiór, który zawiera tylko określone znaki na stronie HTML.
Więc, najlepiej, chciałbym przekazać programowi (Linuksowemu) blok tekstu i odtworzyć czcionkę na podstawie zawartych znaków.
Np.
./magic-font-squisher input.tff "ABC123水小长"
Lub
./magic-font-squisher input.tff /path/to/test.html
Nowa czcionka będzie miała tylko te 9 znaków.
2 answers
Użyli https://bitbucket.org/philip/font-optimizer/src
./subset.pl --chars="ABC 123 水小长" input.ttf output.ttf
Dokładnie tego chcę.
How I Found It
Katalog czcionek Google zawiera narzędzie podzbiór . README mówi
--string=: generuje podzbiór tylko dla podanego ciągu. Przydatne dla tworzenie podzbioru menu. Generalnie używamy subset.pl from Font Optymalizator do tego jednak.
Wyszukiwanie optymalizatora czcionek zabrało mnie do strony demo , która pozwala przetestować skrypt.
Istnieje również rozwidlone repo GitHub , które ma lepszą dokumentację.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-21 19:45:49
Możesz to zrobić za pomocą skryptowego FontForge. To działa, choć prawdopodobnie może być bardziej sprytny lub zawinięty w zawierający skrypt.
#!/usr/bin/env fontforge
Open($1); # first param
SelectAll();
SelectFewer(0u41, 0u43, 0u31, 0u33); # a range
SelectFewer(0u6c34); # or a single codepoint
SelectFewer(0u5c0f);
SelectFewer(0u957f);
DetachAndRemoveGlyphs();
Save($2); # second param
Quit(0);
Przed uruchomieniem musiałem zdefiniować FONTFORGE_LANGUAGE
:
FONTFORGE_LANGUAGE=ff ./squish source.ttf squished.ttf
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-21 16:23:20