4. Mai 2011

DE_flag GB_flag

for english readers

Barcodes um 90° gedreht

EANnormal

TechNote 08_27 hilft mir BarCodes in SVG zu erzeugen. Super-Vorlage, klappt wie immer!

Sehr schön der Barcode. Kein Gedöns mehr mit Windows oder gar mit Schriften. SVG ist wirklich Klasse.

Etwas zu groß und die Beschriftung ist nicht nötig. Das Bildformat Abgeschnitten (links oben) hilft, es schneidet unten ab. Gedreht hätte ich den BarCode gerne und dann links an den Rand, unterhalb der Löcher zum Abheften gedruckt.

Es gibt keinen einfachen Rotate-Befehl. Keisuke Miyako hat eine AppleScript-Lösung veröffentlicht. Rechte Winkel würden mir reichen.

EANgedreht

Das war der richtige Gedanke: rechte Winkel würden mir reichen.

Rechte Winkel machen das rechnerische Leben einfacher. Ich drehe das Bild nicht im Nachhinein, sondern erzeuge die Balken gleich um 90° gedreht!

Sourcecode angeguckt und hier ist die entscheidende Zeile
$points:=String($x)+","+String($y)+" "+String($x)+","+String($y2)+" "+String($x2)+","+String($y2)+" "+String($x2)+","+String($y)
mit den in $points gesammleten Punkten wird das Polygon erzeugt
$ref:=DOM Create XML element($svg;"polygon";"style";"fill:black";"points";$points)

Das ist einfach. Ich übergebe einen zusätzlich Parameter und weiß dann ob mit oder gegen die Uhr, verwende die gleichen Koordinaten nur in einer anderen Reihenfolge.
Case of
: ($clockwise_b | $counterClockwise_b)
  $points:=String($y)+","+String($x)+" "+String($y)+","+String($x2)+" "+String($y2)+","+String($x2)+" "+String($y2)+","+String($x)
Else

Klappt! Neucompiliert und fertig.

Alternate markup here. If you see this, your browser may not support SVG, or a content aggregator may have stripped the object element.

Nachtrag: 7. Mai 2011

Rotate ist ein SVG feature!

Da brauchst'de nix selber zu berechnen! Ja ich weiß!

Also das geht auch, wie hier links zu sehen oder auf einer eigenen Seite.

Gleicher Barcode und gleicher Generator, nämlich die TN 08_27. Der Barcode in der TechNote ist flach, keine Gruppen. Also eine Gruppe anlegen und diese in einen beliebigen Winkel drehen und den kompletten Barcode in den sichtbaren Bereich verschieben.

Zum Testen? RedLaser aufs iPhone laden und direkt am Bildschirm prüfen. Taugt was!

DE_flag GB_flag

lieber auf deutsch

Rotate Barcodes by 90°

EANnormal

TechNote 08_27 creates BarCodes in SVG. A perfect tool, as always!

This is really nice barcode. No fiddling on Windows, SVG is really one of the most powerful extensions to classic 4D.

The bars a little bit big for my purposes and I don't need the numbers. I'll cut them off by format truncated. But I'd much more appreciate rotating by 90° and placing it near the left edge of the paper, even if it's a PDF.

There is no simple rotate-command. Keisuke Miyako build an AppleScript solution, which won't work on Windows. Right angles would serve me right.

EANgedreht

That's the idea: right angles is all I want.

Right angles is easy calculations. I'm not going to rotate the barcode-picture, but rotating the bares when created.

I found this line of code in the source:
$points:=String($x)+","+String($y)+" "+String($x)+","+String($y2)+" "+String($x2)+","+String($y2)+" "+String($x2)+","+String($y)
that list of $points draws the polygon:
$ref:=DOM Create XML element($svg;"polygon";"style";"fill:black";"points";$points)

This is easy. I'll send an extra parameter and decide if this is clockwise or counterclockwise. All I've to do is draw the points in a different order.
Case of
: ($clockwise_b | $counterClockwise_b)
  $points:=String($y)+","+String($x)+" "+String($y)+","+String($x2)+" "+String($y2)+","+String($x2)+" "+String($y2)+","+String($x)
Else

Works! Recompiled and done.

Alternate markup here. If you see this, your browser may not support SVG, or a content aggregator may have stripped the object element.

Added 7th Mai 2011

Rotate is a SVG feature!

You need not calculate the coordinates yourself! Yeees, I know!

Works too as can be seen on the left or on a page of its own.

Same Barcode same generator TN 08_27. The Barcode of the TechNote is flat, no groups. So I had to add a group which I can rotate in any degree I like, moving it back into the visible zone.

Testing? Get RedLaser for the iPhone and read the code from screen. Good stuff!