1
0
Fork 0
forked from hswaw/labelmaker

Compare commits

...

3 commits

3 changed files with 15 additions and 7 deletions

View file

@ -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 - \

View file

@ -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('<span font_desc="%s">%s</span>' % (fontname, text))
layout.apply_markup('<span font_desc="%s %s">%s</span>' % (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(

View file

@ -88,6 +88,11 @@
$ curl http://label.hackerspace.pl/api/preview/60/?text=foobar&amp;html=0 | feh -
$ # To print the label
$ curl -d "" http://label.hackerspace.pl/api/print/60/?text=foobar&amp;html=0</pre>
<p>
<b>See also:</b><br>
<a href="https://vector.label.hackerspace.pl">Vector Labelmaker</a><br>
<a href="https://pixel.label.hackerspace.pl">Pixel Labelmaker</a>
</p>
</div>
</div>
</div>