A library that helps create dotted style fonts.
Project description
Dotted Font Builder
A library that helps create dotted style fonts.
Installation
pip install dotted-font-builder
Usage
import datetime
import shutil
from examples import build_dir
from dotted_font_builder import FontBuilder, WeightName, SerifStyle, SlantStyle, WidthStyle, Glyph, opentype
def main():
outputs_dir = build_dir.joinpath('create')
if outputs_dir.exists():
shutil.rmtree(outputs_dir)
outputs_dir.mkdir(parents=True)
builder = FontBuilder()
builder.font_metric.font_size = 12
builder.font_metric.horizontal_layout.ascent = 10
builder.font_metric.horizontal_layout.descent = -2
builder.font_metric.vertical_layout.ascent = 6
builder.font_metric.vertical_layout.descent = -6
builder.font_metric.x_height = 5
builder.font_metric.cap_height = 7
builder.meta_info.version = '1.0.0'
builder.meta_info.created_time = datetime.datetime.fromisoformat('2024-01-01T00:00:00Z')
builder.meta_info.modified_time = builder.meta_info.created_time
builder.meta_info.family_name = 'My Dotted'
builder.meta_info.weight_name = WeightName.REGULAR
builder.meta_info.serif_style = SerifStyle.SANS_SERIF
builder.meta_info.slant_style = SlantStyle.NORMAL
builder.meta_info.width_style = WidthStyle.MONOSPACED
builder.meta_info.manufacturer = ''
builder.meta_info.designer = 'OverflowCat'
builder.meta_info.description = 'A demo dotted font.'
builder.meta_info.copyright_info = 'Copyright (c) OverflowCat'
builder.meta_info.license_info = 'This Font Software is licensed under the SIL Open Font License, Version 1.1.'
builder.meta_info.vendor_url = 'https://github.com/OverflowCat/dotted-font-builder'
builder.meta_info.designer_url = 'https://overflow.cat'
builder.meta_info.license_url = 'https://openfontlicense.org'
builder.meta_info.sample_text = 'Hello World!'
builder.character_mapping.update({
ord('A'): 'CAP_LETTER_A',
})
builder.glyphs.append(Glyph(
name='.notdef',
horizontal_origin=(0, -2),
advance_width=8,
vertical_origin=(-4, 0),
advance_height=12,
bitmap=[
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
],
))
builder.glyphs.append(Glyph(
name='CAP_LETTER_A',
horizontal_origin=(0, -2),
advance_width=8,
vertical_origin=(-4, 0),
advance_height=12,
bitmap=[
[0, 0, 0, 1, 1, 0, 0, 0],
[0, 0, 1, 0, 0, 1, 0, 0],
[0, 0, 1, 0, 0, 1, 0, 0],
[0, 1, 0, 0, 0, 0, 1, 0],
[0, 1, 0, 0, 0, 0, 1, 0],
[0, 1, 1, 1, 1, 1, 1, 0],
[0, 1, 0, 0, 0, 0, 1, 0],
[0, 1, 0, 0, 0, 0, 1, 0],
[0, 1, 0, 0, 0, 0, 1, 0],
[0, 1, 0, 0, 0, 0, 1, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
],
))
builder.save_otf(outputs_dir.joinpath('my-dotted.otf'))
builder.save_otf(outputs_dir.joinpath('my-dotted.woff2'), flavor=opentype.Flavor.WOFF2)
builder.save_ttf(outputs_dir.joinpath('my-font.ttf'))
builder.save_bdf(outputs_dir.joinpath('my-font.bdf'))
builder.save_pcf(outputs_dir.joinpath('my-font.pcf'))
if __name__ == '__main__':
main()
Coordinate Systems
Use the same coordinate systems as OpenType.
Horizontal Layout
Vertical Layout
Supported Output Formats
Format | File Extension |
---|---|
OpenType | .otf , .otc , .woff , .woff2 |
TrueType | .ttf , .ttc , .woff , .woff2 |
Glyph Bitmap Distribution Format | .bdf |
Portable Compiled Format | .pcf |
Dependencies
References
License
Under the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
dotted_font_builder-0.0.1.tar.gz
(19.2 kB
view details)
Built Distribution
File details
Details for the file dotted_font_builder-0.0.1.tar.gz
.
File metadata
- Download URL: dotted_font_builder-0.0.1.tar.gz
- Upload date:
- Size: 19.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c7fceaf38112c930f96a436abca3bc544cf56547925266983502dbefba21e06 |
|
MD5 | 6f8f2104fd544d5802dfae140bc3b49a |
|
BLAKE2b-256 | 4dce782b4d3190f7501d0954d943a6033012e3e19104e7ff0f248524b81d1c55 |
File details
Details for the file dotted_font_builder-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: dotted_font_builder-0.0.1-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ba96a1f56fddff7d7d51fa90eb13b06058a4b5e089f449a3af6016d75dfc0b1 |
|
MD5 | 30431093faf34948d92e59a1efc87451 |
|
BLAKE2b-256 | 4db58531be68f37148566e64a75c5db06f7eec0019eba8c4aa97383afc808985 |