|
|
|
@ -4,6 +4,7 @@ |
|
|
|
|
from __future__ import print_function |
|
|
|
|
import sys |
|
|
|
|
from gi.repository import HarfBuzz as hb |
|
|
|
|
from gi.repository import GLib |
|
|
|
|
|
|
|
|
|
# Python 2/3 compatibility |
|
|
|
|
try: |
|
|
|
@ -17,25 +18,23 @@ def tounicode(s, encoding='utf-8'): |
|
|
|
|
else: |
|
|
|
|
return s |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def nothing(data): |
|
|
|
|
print(data) |
|
|
|
|
|
|
|
|
|
fontdata = open (sys.argv[1], 'rb').read () |
|
|
|
|
|
|
|
|
|
blob = hb.blob_create (fontdata, hb.memory_mode_t.DUPLICATE, 1234, None) |
|
|
|
|
buf = hb.buffer_create () |
|
|
|
|
hb.buffer_add_utf8 (buf, tounicode("Hello بهداد").encode('utf-8'), 0, -1) |
|
|
|
|
hb.buffer_guess_segment_properties (buf) |
|
|
|
|
|
|
|
|
|
blob = hb.glib_blob_create (GLib.Bytes.new (fontdata)) |
|
|
|
|
face = hb.face_create (blob, 0) |
|
|
|
|
del blob |
|
|
|
|
font = hb.font_create (face) |
|
|
|
|
upem = hb.face_get_upem (face) |
|
|
|
|
del face |
|
|
|
|
hb.font_set_scale (font, upem, upem) |
|
|
|
|
#hb.ft_font_set_funcs (font) |
|
|
|
|
hb.ot_font_set_funcs (font) |
|
|
|
|
|
|
|
|
|
buf = hb.buffer_create () |
|
|
|
|
hb.buffer_add_utf8 (buf, tounicode("Hello بهداد").encode('utf-8'), 0, -1) |
|
|
|
|
hb.buffer_guess_segment_properties (buf) |
|
|
|
|
|
|
|
|
|
hb.shape (font, buf, []) |
|
|
|
|
del font |
|
|
|
|
|
|
|
|
|
infos = hb.buffer_get_glyph_infos (buf) |
|
|
|
|
positions = hb.buffer_get_glyph_positions (buf) |
|
|
|
|