63 lines
1.2 KiB
Awk
63 lines
1.2 KiB
Awk
function flush_line(x1, x2, y, w ,n,yy)
|
|
{
|
|
x1/=2
|
|
x2/=2
|
|
for(n = 0; n < 3; n++) {
|
|
yy = y*w + w/6 + w/3 * n
|
|
element_line(x1*w + w/6, yy, x2*w - w/6, yy, w/3)
|
|
}
|
|
|
|
element_line(x1*w + w/6, y*w + w/6, x1*w + w/6, (y+1)*w - w/6, w/3)
|
|
element_line(x2*w - w/6, y*w + w/6, x2*w - w/6, (y+1)*w - w/6, w/3)
|
|
|
|
}
|
|
|
|
BEGIN {
|
|
help_auto()
|
|
set_arg(P, "?pixel_size", "1mm")
|
|
|
|
proc_args(P, "text,pixel_size,level", "text")
|
|
|
|
pixel_size = parse_dim(P["pixel_size"])
|
|
|
|
element_begin("", "QR1", "qr(" P["text"] "," P["pixel_size"] "," P["level"] ")" ,0,0, 0,-mil(50))
|
|
|
|
print "# text=" P["text"]
|
|
cmd = "echo '" P["text"] "' | qrencode -t ASCII"
|
|
|
|
if (P["level"] != "") {
|
|
if (tolower(P["level"]) == "h")
|
|
cmd = cmd " -l H"
|
|
else if (tolower(P["level"]) == "l")
|
|
cmd = cmd " -l L"
|
|
}
|
|
|
|
y = 0;
|
|
while((cmd | getline line) > 0) {
|
|
line = line "-"
|
|
# print line
|
|
len = length(line)
|
|
start = ""
|
|
for(x = 1; x < len; x++) {
|
|
if (substr(line, x, 1) == "#") {
|
|
if (start == "")
|
|
start = x;
|
|
}
|
|
else {
|
|
if (start != "") {
|
|
flush_line(start, x, y, pixel_size)
|
|
start = ""
|
|
}
|
|
}
|
|
}
|
|
if (start != "")
|
|
flush_line(start, x, y, pixel_size)
|
|
y++;
|
|
}
|
|
|
|
|
|
# dimension(+spacing/aspect, -dia, +spacing/aspect, dia, "@" spacing*1.2 ";0", "dia")
|
|
|
|
element_end()
|
|
}
|