126 lines
4.4 KiB
Markdown
126 lines
4.4 KiB
Markdown
# SD Card Fonts
|
||
|
||
CrossPoint supports loading additional fonts from the SD card, including fonts
|
||
with extended Unicode coverage (CJK, Cyrillic, Greek, etc.).
|
||
|
||
## Installing Fonts
|
||
|
||
There are three ways to install fonts:
|
||
|
||
### Option 1: Download from device (recommended)
|
||
|
||
1. Connect your CrossPoint reader to WiFi
|
||
2. Go to **Settings > System > Manage Fonts**
|
||
3. Browse available font families and tap to download
|
||
4. Downloaded fonts appear immediately in **Settings > Reader > Font Family**
|
||
|
||
### Option 2: Upload via web browser
|
||
|
||
1. Connect your CrossPoint reader to WiFi
|
||
2. Open the web interface in your browser (shown on the WiFi screen)
|
||
3. Navigate to the **Fonts** tab
|
||
4. Upload `.cpfont` files using the upload form
|
||
|
||
### Option 3: Manual SD card copy
|
||
|
||
1. Download font files from the
|
||
[crosspoint-fonts repository](https://github.com/crosspoint-reader/crosspoint-fonts)
|
||
2. Copy font family folders to one of two locations on your SD card:
|
||
|
||
- `/.fonts/` — hidden directory (preferred; keeps the SD root tidy
|
||
when mounted on a desktop)
|
||
- `/fonts/` — visible directory (use this if your OS hides dot-files
|
||
and you'd rather see the folder in your file manager)
|
||
|
||
Both roots are always scanned at boot and the results are merged: a
|
||
family installed in `/fonts/` shows up even when `/.fonts/` also
|
||
exists, and vice versa. The two roots only collide if the same family
|
||
name appears in both — in that case the copy in `/.fonts/` wins and
|
||
the duplicate in `/fonts/` is ignored.
|
||
|
||
SD Card Root/
|
||
├── .fonts/ ← Hidden root (preferred)
|
||
│ └── Literata/
|
||
│ ├── Literata_12.cpfont
|
||
│ ├── Literata_14.cpfont
|
||
│ ├── Literata_16.cpfont
|
||
│ └── Literata_18.cpfont
|
||
└── fonts/ ← Visible root (equally valid)
|
||
└── Merriweather/
|
||
├── Merriweather_12.cpfont
|
||
└── ...
|
||
|
||
3. Insert the SD card and power on your CrossPoint reader
|
||
|
||
## Available Pre-Built Fonts
|
||
|
||
The current list of pre-built fonts is maintained in the
|
||
[crosspoint-fonts repository](https://github.com/crosspoint-reader/crosspoint-fonts).
|
||
|
||
## Converting Custom Fonts
|
||
|
||
To convert your own TrueType/OpenType fonts:
|
||
|
||
### Prerequisites
|
||
|
||
pip install freetype-py fonttools
|
||
|
||
### Single font (one style)
|
||
|
||
python3 lib/EpdFont/scripts/fontconvert_sdcard.py \
|
||
MyFont-Regular.ttf \
|
||
--intervals latin-ext \
|
||
--sizes 12,14,16,18 \
|
||
--style regular \
|
||
--name MyFont \
|
||
--output-dir ./MyFont/
|
||
|
||
### Multi-style font
|
||
|
||
python3 lib/EpdFont/scripts/fontconvert_sdcard.py \
|
||
--regular MyFont-Regular.ttf \
|
||
--bold MyFont-Bold.ttf \
|
||
--italic MyFont-Italic.ttf \
|
||
--bolditalic MyFont-BoldItalic.ttf \
|
||
--intervals latin-ext \
|
||
--sizes 12,14,16,18 \
|
||
--name MyFont \
|
||
--output-dir ./MyFont/
|
||
|
||
### Available Unicode interval presets
|
||
|
||
| Preset | Coverage |
|
||
|--------|----------|
|
||
| `ascii` | U+0020–U+007E (Basic Latin) |
|
||
| `latin1` | U+0080–U+00FF (Latin-1 Supplement) |
|
||
| `latin-ext` | European languages (Latin + Extended-A/B + punctuation + ligatures) |
|
||
| `greek` | Greek + Extended Greek |
|
||
| `cyrillic` | Cyrillic + Supplement |
|
||
| `georgian` | Georgian + Georgian Supplement |
|
||
| `armenian` | Armenian |
|
||
| `ethiopic` | Ethiopic + Extended |
|
||
| `vietnamese` | Vietnamese subset (ơ/ư and combining marks) |
|
||
| `punctuation` | General punctuation (U+2000–U+206F) |
|
||
| `cjk` | CJK Unified Ideographs + Hiragana + Katakana + Fullwidth |
|
||
| `hangul` | Korean Hangul syllables + Jamo + Compatibility Jamo |
|
||
| `cherokee` | Cherokee (historic + supplement block) |
|
||
| `tifinagh` | Tifinagh |
|
||
| `symbols` | Math, currency, arrows, box-drawing, misc symbols, dingbats |
|
||
| `reading` | Literary fiction coverage: Latin, Greek, Cyrillic, math/symbol blocks, supplemental punctuation, and CJK quote marks |
|
||
| `builtin` | Matches built-in Bookerly coverage exactly |
|
||
|
||
Combine presets with commas: `--intervals latin-ext,greek,cyrillic`
|
||
|
||
You can also specify arbitrary Unicode ranges directly:
|
||
`--intervals latin-ext,(0x2100-0x214F)`
|
||
|
||
To list all presets with codepoint counts:
|
||
|
||
python3 lib/EpdFont/scripts/fontconvert_sdcard.py --list-presets
|
||
|
||
### Additional options
|
||
|
||
`--force-autohint` — force FreeType's auto-hinter instead of the font's native hinting (useful when a font's built-in hints produce poor results at small sizes).
|
||
|
||
Install custom fonts via WiFi upload or manual SD card copy.
|