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() }