Skip to main content

A user-friendlier way to use Harfbuzz in Python

Project description

vharfbuzz - A user-friendlier way to use Harfbuzz in Python

uharfbuzz is an awesome tool for shaping text in Python. But it wraps the Harfbuzz C interface quite closely, so still requires you to perform a bunch of boilerplate operations before you can get on with the shaping. This module allows you a slightly more high-level interface to the text shaping process. For example, rather than:

with open(sys.argv[1], 'rb') as fontfile:
    fontdata = fontfile.read()

text = sys.argv[2]

face = hb.Face(fontdata)
font = hb.Font(face)

buf = hb.Buffer()
buf.add_str(text)
buf.guess_segment_properties()

features = {"kern": True, "liga": True}
hb.shape(font, buf, features)

with vharfbuzz you can just say:

vhb = Vharfbuzz(sys.argv[1])
buf = vhb.shape(sys.argv[2], {"features": {"kern": True, "liga": True}})

The Vharfbuzz class also contains a number of other helpful methods to perform common operations on Harfbuzz buffers. See Read The Docs for more information.

Installation

vharfbuzz is available from pypi, so can be installed like so:

pip3 install vharfbuzz

If building from source, you can install it like so:

pip3 install -r requirements.txt
pip3 install .

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vharfbuzz-0.3.1.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

vharfbuzz-0.3.1-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file vharfbuzz-0.3.1.tar.gz.

File metadata

  • Download URL: vharfbuzz-0.3.1.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.5

File hashes

Hashes for vharfbuzz-0.3.1.tar.gz
Algorithm Hash digest
SHA256 cc5570f0dc61edc449364fd2ec3dee88819284132267f25eb92757e2137de247
MD5 5dcb2bfc04fded0f4cd88cced69f4dd6
BLAKE2b-256 b256bc4b0ba473618e5824f7d21a8151e0bc267bb33df33474b2eb1e3beda943

See more details on using hashes here.

File details

Details for the file vharfbuzz-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: vharfbuzz-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.5

File hashes

Hashes for vharfbuzz-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 410bdc2d4bc6da5d022eb3c50f77f772222ef1fbcbe0c5da8b91280b3030ae6b
MD5 6a4346981594fcaa93844bcaa87c7685
BLAKE2b-256 9ce8210a1e06825bd743b963d85d705a09913a458516aa2a626bda1e7125925e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page