diff --git a/Dockerfile b/Dockerfile index dc6da06..5eb6ef8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,6 +27,9 @@ RUN apt-get update && apt-get upgrade -y \ libpq-dev \ libpango-1.0.0 \ libpangocairo-1.0.0 \ + # Installing Japaneese fonts (because it's fun) + fonts-noto-cjk \ + fonts-vlgothic \ # Installing `poetry`: && curl -sSL 'https://install.python-poetry.org' | python - \ diff --git a/labelmaker/main.py b/labelmaker/main.py index 8cc22db..d8aa6df 100644 --- a/labelmaker/main.py +++ b/labelmaker/main.py @@ -48,8 +48,8 @@ class Renderer(object): context.paint() return new_surface.write_to_png() - def render_text(self, text, fontname, x, y, html=False): - print("Fontname:", fontname) + def render_text(self, text, fontname, size, x, y, html=False): + print(f"Fontname: {fontname} {size}") self.context.save() if y != -1: self.context.translate(x, y) @@ -59,10 +59,10 @@ class Renderer(object): layout._set_alignment(pango.Alignment.CENTER) if html: # Absolutely horrifying hack to fix broken text wrapping - layout.apply_markup('%s' % (fontname, text)) + layout.apply_markup('%s' % (fontname, size, text)) else: - self.font.family = fontname.split()[0] - self.font.size = pango.units_from_double(int(fontname.split()[1])) + self.font.family = fontname + self.font.size = pango.units_from_double(size) layout.font_description = self.font layout.text = text @@ -84,7 +84,7 @@ def stuff_preview(size): text = flask.request.args.get('text') html = flask.request.args.get('html') == '1' renderer = Renderer() - renderer.render_text(text, 'Sans {}'.format(size), 0, -1, html) + renderer.render_text(text, 'Noto Sans CJK JP', size, 0, -1, html) preview = renderer.get_preview() return flask.Response(preview, mimetype='image/png') @@ -95,7 +95,7 @@ def stuff_print(size): text = flask.request.args.get('text') html = flask.request.args.get('html') == '1' renderer = Renderer() - renderer.render_text(text, 'Sans {}'.format(size), 0, -1, html) + renderer.render_text(text, 'Noto Sans CJK JP', size, 0, -1, html) data = renderer.surface.write_to_png() response = requests.post(