This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
fonts_characters [2022-09-21 12:27:25] mi created |
fonts_characters [2022-09-27 17:09:36] (current) mi |
||
|---|---|---|---|
| Line 2: | Line 2: | ||
| == List all characters in font | == List all characters in font | ||
| + | === ttx | ||
| + | |||
| + | $ sudo apt install fonttools | ||
| + | |||
| + | <code>$ ttx -t cmap -o - /usr/share/fonts/truetype/Arial/arial.ttf | ||
| + | Dumping "/usr/share/fonts/truetype/Arial/arial.ttf" to "-"... | ||
| + | Dumping 'cmap' table... | ||
| + | <?xml version="1.0" encoding="UTF-8"?> | ||
| + | <ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.5"> | ||
| + | |||
| + | <cmap> | ||
| + | <tableVersion version="0"/> | ||
| + | <cmap_format_4 platformID="0" platEncID="3" language="0"> | ||
| + | <map code="0x20" name="space"/><!-- SPACE --> | ||
| + | <map code="0x21" name="exclam"/><!-- EXCLAMATION MARK --> | ||
| + | <map code="0x22" name="quotedbl"/><!-- QUOTATION MARK --> | ||
| + | <map code="0x23" name="numbersign"/><!-- NUMBER SIGN --> | ||
| + | ... | ||
| + | <map code="0xfef8" name="afii62837"/><!-- ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM --> | ||
| + | <map code="0xfef9" name="afii62838"/><!-- ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM --> | ||
| + | <map code="0xfefa" name="afii62839"/><!-- ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM --> | ||
| + | <map code="0xfefb" name="afii62840"/><!-- ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM --> | ||
| + | <map code="0xfefc" name="afii62841"/><!-- ARABIC LIGATURE LAM WITH ALEF FINAL FORM --> | ||
| + | <map code="0xfffc" name="uniFFFC"/><!-- OBJECT REPLACEMENT CHARACTER --> | ||
| + | </cmap_format_4> | ||
| + | </cmap> | ||
| + | </ttFont> | ||
| + | </code> | ||
| + | |||
| + | <code>$ ttx -t cmap -o - /usr/share/fonts/truetype/Arial/arial.ttf \ | ||
| + | | perl -C -ne '/ code="0x(.*?)"/ && printf "%04s %s\n", $1, chr(hex $1)' | ||
| + | Dumping "/usr/share/fonts/truetype/Arial/arial.ttf" to "-"... | ||
| + | Dumping 'cmap' table... | ||
| + | 0020 | ||
| + | 0021 ! | ||
| + | 0022 " | ||
| + | 0023 # | ||
| + | 0024 $ | ||
| + | 0025 % | ||
| + | 0026 & | ||
| + | 0027 ' | ||
| + | 0028 ( | ||
| + | 0029 ) | ||
| + | ... | ||
| + | fef4 ﻴ | ||
| + | fef5 ﻵ | ||
| + | fef6 ﻶ | ||
| + | fef7 ﻷ | ||
| + | fef8 ﻸ | ||
| + | fef9 ﻹ | ||
| + | fefa ﻺ | ||
| + | fefb ﻻ | ||
| + | fefc ﻼ | ||
| + | fffc  | ||
| + | </code> | ||
| + | |||
| + | === otfinfo | ||
| + | |||
| + | * [[https://unix.stackexchange.com/a/247114/7286|How to find out which unicode codepoints are defined in a TTF file?]] | ||
| + | * [[https://unix.stackexchange.com/questions/595756/how-to-list-all-supported-glyphs-of-a-given-font|How to list all supported glyphs of a given font]] | ||
| + | |||
| + | <code># sudo apt install lcdf-typetools | ||
| + | # or on Mac | ||
| + | # brew install lcdf-typetools</code> | ||
| + | |||
| + | $ otfinfo -u /usr/share/fonts/truetype/Arial/arial.ttf | head | ||
| + | uni0020 3 space | ||
| + | uni0021 4 exclam | ||
| + | uni0022 5 quotedbl | ||
| + | uni0023 6 numbersign | ||
| + | uni0024 7 dollar | ||
| + | ... | ||
| + | uniFEF9 1017 afii62838 | ||
| + | uniFEFA 1018 afii62839 | ||
| + | uniFEFB 1019 afii62840 | ||
| + | uniFEFC 1020 afii62841 | ||
| + | uniFFFC 863 uniFFFC | ||
| + | uniFFFF 0 .notdef | ||
| + | |||
| + | === Perl Font::FreeType | ||
| + | |||
| + | * https://stackoverflow.com/a/15905540/111036 | ||
| + | |||
| + | $ sudo apt install libfont-freetype-perl | ||
| + | |||
| + | <code>$ perl -C -MFont::FreeType -e 'Font::FreeType->new->face(shift)->foreach_char( sub { | ||
| + | $c=$_->char_code(); printf "%04X %s\n", $c, chr($c); | ||
| + | } );' /usr/share/fonts/truetype/Arial/arial.ttf | ||
| + | 0020 | ||
| + | 0021 ! | ||
| + | 0022 " | ||
| + | 0023 # | ||
| + | 0024 $ | ||
| + | 0025 % | ||
| + | 0026 & | ||
| + | 0027 ' | ||
| + | ... | ||
| + | FEFA ﻺ | ||
| + | FEFB ﻻ | ||
| + | FEFC ﻼ | ||
| + | FFFC  | ||
| + | </code> | ||
| + | |||
| == List characters in file | == List characters in file | ||