# Font Conversion Guide To use custom fonts with the CrossPoint Reader, you must convert standard `.ttf` or `.otf` font files into the specific `.epdfont` binary format used by the compiled firmware. ## Supported Formats The CrossPoint Reader supports two versions of the `.epdfont` format: 1. **Version 1 (Recommended):** The newer, optimized format generated by the web converter. 2. **Version 0 (Legacy):** The original format generated by the Python script. ## Method 1: Web Converter (Recommended) The easiest way to generate compatible fonts is using the online converter. 1. Go to [https://epdfont.clev.app/](https://epdfont.clev.app/). 2. Select your `.ttf` or `.otf` file. 3. Choose the font size (e.g., 18). 4. Download the generated `.epdfont` file. ### Filename Requirements The firmware scans for fonts in the `/fonts` directory on the SD card. It attempts to parse the filename to determine the Font Family, Style, and Size. For best results, rename your downloaded file to match one of these patterns: * `Family_Style_Size.epdfont` (e.g., `Aileron_Regular_18.epdfont`) * `Family-Style-Size.epdfont` (e.g., `LibreBaskerville-Bold-14.epdfont`) **Supported Styles:** * `Regular` * `Bold` * `Italic` * `BoldItalic` **Note:** If you download a file named just `Aileron.epdfont`, the reader will try to load it, but using the explicit naming convention above ensures the correct style and size are recognized. ## Method 2: Python Script (Legacy) You can also use the included Python script located at `lib/EpdFont/scripts/fontconvert.py`. ### Requirements - Python 3 - `freetype-py` library (`pip install freetype-py`) ### Usage Run the script from the project root: ```bash python3 lib/EpdFont/scripts/fontconvert.py --binary [Family-Style-Size] [Size] [PathToFont] ``` ### Arguments 1. `name`: The output filename (without extension). **Convention:** `Family-Style-Size` (e.g. `Bookerly-Regular-12`). 2. `size`: The integer point size (e.g. `12`). 3. `fontstack`: Path to the source font file (e.g. `fonts/Bookerly-Regular.ttf`). 4. `--binary`: **REQUIRED**. Flags the script to output the `.epdfont` binary instead of a C header. ### Example To convert `Bookerly-Regular.ttf` to a size 12 font: ```bash python3 lib/EpdFont/scripts/fontconvert.py --binary Bookerly-Regular-12 12 fonts/Bookerly-Regular.ttf ``` This will generate `Bookerly-Regular-12.epdfont` in your current directory. ## Installing on Device 1. Copy your generated `.epdfont` files to the `/fonts` directory on your SD card. 2. Restart the CrossPoint Reader. 3. Go to **Settings** -> **Set Custom Font Family** to select your loaded fonts.