Labels
Appearance
QR codes
Thebys' Brother printer can print monochrome PNG files of height 128px.
Creating the PNG files
One way to do it is with this simple Perl script:
use GD::Barcode::QRcode;
use GD;
use strict;
use warnings;
my $large = '/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf';
my $narrow = '/usr/share/fonts/truetype/liberation/LiberationSansNarrow-Regular.ttf';
my ($img, $w, $h);
sub text
{
my $font = shift;
if ($img) {
$img->stringFT(-1,$font,@_) or die "$font: $@: $!";
} else {
my @bounds = GD::Image->stringFT(-1,$font,@_) or die "$font: $@: $!";
my $nw = $bounds[2] + 16;
$w = $nw if $nw > $w;
}
}
sub render
{
my $t = shift;
my $title = shift;
my $text = shift;
my $url = shift // $text;
my $m = 3;
$img = undef;
$h = $t;
$w = $h;
# Sizing first
if ($t == 76) {
text($narrow,32,0,$h+8,0, $text);
} else {
text($large,48,0,$h+8,0, $title);
text($narrow,24,0,$h+8,0, $text);
}
# Actual rendering
$img = GD::Image->new($w,$h);
my $qr = GD::Barcode::QRcode->new($url)->plot(Height => $h);
$img->copyResized($qr, 0, 0, $m, $m, $img->height, $img->height, $qr->width-2*$m, $qr->height-2*$m);
if ($t == 76) {
text($narrow,32,0,$img->height+8, $img->height-24, $text);
} else {
text($large,48,0,$img->height+8, 64, $title);
text($narrow,24,0,$img->height+8, $img->height-16, $text);
}
return $img;
}
sub do_one
{
my $title = shift;
my $str = shift // $title;
open my $big, ">$str.png" or die "$str.png: $!";
print $big render (128, $title, "<a rel="nofollow" class="external free" href="https://wiki.base48.cz/wiki/$str">https://wiki.base48.cz/wiki/$str</a>")->png;
open my $small, ">small-$str.png" or die "$str.png: $!";
print $small render (76, $title, "/wiki/$str", "<a rel="nofollow" class="external free" href="https://wiki.base48.cz/wiki/$str">https://wiki.base48.cz/wiki/$str</a>")->png;
}
do_one('Electro Lab', 'Electro_lab');
do_one('RGB LED Panel', 'Buse_RGB_LED_Panel');
do_one('3D Printers', '3D_printing_lab');
do_one('C64', 'C64');
do_one('Color Jet Printer', 'Color_Jet_Printer');
do_one('CNC', 'CNC');
do_one('Metal Workshop', 'Metal_workshop');
do_one('Woodworking', 'Woodworking');
do_one('Turtle Drawing Plotter', 'PlotBot');
do_one('Bike Repair Corner', 'Bike_corner');
do_one('Library', 'Library');
do_one('Output Buffer', 'OutputBuffer');
do_one('Making QR labels', 'Labels#QR_codes');
do_one('Bongs', 'Bongs#Bongo');
do_one('Bong Cleaning Tools', 'Bongs#Maintenance');
Printing them out:
Use this tool: https://git.familie-radermacher.ch/linux/ptouch-print.git
# perl makeqr.pl # ./ptouch-print --image=Library.png
Minimize waste by chaining multiple labels:
# ./ptouch-print --image=CNC.png --chain # ./ptouch-print --image=Library.png --precut -chain # ./ptouch-print --image=OutputBuffer.png --precut