Astilizadas las uniones de Cython para el motor de conformación de Harfbuzz.
import sys
import uharfbuzz as hb
fontfile = sys . argv [ 1 ]
text = sys . argv [ 2 ]
blob = hb . Blob . from_file_path ( fontfile )
face = hb . Face ( blob )
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 )
infos = buf . glyph_infos
positions = buf . glyph_positions
for info , pos in zip ( infos , positions ):
gid = info . codepoint
glyph_name = font . glyph_to_string ( gid )
cluster = info . cluster
x_advance = pos . x_advance
x_offset = pos . x_offset
y_offset = pos . y_offset
print ( f" { glyph_name } gid { gid } = { cluster } @ { x_advance } , { y_offset } + { x_advance } " )Al construir el paquete Uharfbuzz, incorpora automáticamente fuentes mínimas de Harfbuzz para que no tenga que instalar la biblioteca Harfbuzz nativa.
Sin embargo, si desea usar UharfBuzz con su HarfBuzz proporcionado por el sistema (por ejemplo, si lo construyó con fuentes con configuración personalizada), puede establecer USE_SYSTEM_LIBS=1 Variable de entorno (consulte el ejemplo a continuación).
USE_SYSTEM_LIBS=1 pip install uharfbuzz --no-binary :uharfbuzz: La instalación de Harfbuzz se encuentra utilizando pkg-config , por lo que debe tener archivos .pc de Harfbuzz en su sistema. Si lo ha construido a partir de fuentes, Meson las instala automáticamente. De lo contrario, es posible que desee instalar el paquete de desarrollo Harfbuzz, como harfbuzz-devel en distribuciones derivadas de Fedora.
Nota: Debe construir HarfBuzz con soporte de API experimental habilitado.
Use git tag -a para hacer una nueva etiqueta anotada o git tag -s para una etiqueta anotada firmada por GPG, si lo prefiere.
Nombra la nueva etiqueta con una 'V' líder seguida de tres dígitos Major.Minor.Patch, como en versiones semánticas. Mire las etiquetas existentes para ver ejemplos.
En el mensaje de la etiqueta, escriba algunas notas de versión cortas que describen los cambios desde la etiqueta anterior. La línea de asunto será el nombre de la versión y el cuerpo del mensaje será las notas de la versión.
Finalmente, presione la etiqueta al repositorio remoto (por ejemplo, suponiendo que Upstream se llama origen):
$ git push origin v0.4.3
Esto activará el CI para construir los paquetes de distribución y cargarlos en el índice de paquetes de Python automáticamente, si todas las pruebas pasan correctamente. El CI también creará automáticamente una nueva versión de GitHub y usará el contenido de la etiqueta Git anotada para las notas de versión.