barcode - suche how-to

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
vrms
Beiträge: 99
Registriert: 25.03.2013 14:04:03

barcode - suche how-to

Beitrag von vrms » 15.01.2014 02:11:38

ich moechte Barcodes (vermutlich EAN13) generieren
im Idealfall mit einem csv als Quelle. Pro Zeile, einen Code

ich arbeite schon laenger mit glables aber bei EAN barcodes streikt das Ganze, ausserdem kann man keine Massen Barcodes von aus csv files erzeugen (wenn ich mich taeusche, kirrigiert mich bitte)

Nun bin ich erstmal auf das terminalprogramm 'barcode' gestossen http://packages.debian.org/search?keywo ... lla-search

man barcode gibt Dies als Syntax aus:

Code: Alles auswählen

barcode [-b - | string] [-e encoding] [-o - | outfile] [ other-flags ]
plus massig an Erlaeuterungen, die mir aber aus Mangel an Verstaendnis nicht wirklich weiterhelfen

ich moechte EAN13 barcodes generieren, also wird der part [-e encoding] wohl sowas wie EAN_BARCODE enthalten, aber wie geht das Ganze ansosnten noch? Am besten waere wohl sowas wie ein how-to fuer dummmies, konnte aber bisher keines finden. Hat jemand sowas zur Hand?

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: barcode - suche how-to

Beitrag von syssi » 15.01.2014 15:50:16

Versuchs mal mit:

Code: Alles auswählen

echo 1234567890123 > barcodes.txt
echo 1234567890124 >> barcodes.txt
barcode -i barcodes.txt > barcodes.ps
okular barcodes.ps
In Worten: Schreibe zwei Zahlen (Barcodes) in eine Datei namens barcodes.txt. Lese die Datei mit dem Tool "barcodes" ein. Heraus kommt ein Postscript-Dokument. Dieses wird in die Datei barcodes.ps geschrieben. Oeffne die Datei mit einem beliebigen Viewer. Als naechstes kann man noch per Parameter definieren, wie viele Barcodes auf einer DIN A4 Seite untergebracht werden sollen oder ob sie alle auf separaten Seiten landen sollen etc.

fafner
Beiträge: 17
Registriert: 13.12.2013 20:36:37

Re: barcode - suche how-to

Beitrag von fafner » 15.01.2014 20:30:14

Mit *TeX so:

Code: Alles auswählen

\documentclass{minimal}
\usepackage{pst-barcode}
\usepackage{auto-pst-pdf}
\begin{document}
\begin{pspicture}(3.5,1.2in)
    \psbarcode{12345678}{includetext inkspread=0.5}{ean8}
\end{pspicture}
\end{document}
Zu kompilieren mit `lualateX -shell-escape` (genauso mit xelatex oder pdflatex)

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: barcode - suche how-to

Beitrag von Cae » 15.01.2014 21:54:37

Also

Code: Alles auswählen

$ t=$(mktemp)
$ awk 'BEGIN{for(a=0;a<13;a++)b=b""(a%10);for(c=0;c<9;c++)print(b)}' | barcode -e ean-13 | ps2pdf - "$t"
$ mupdf "$t"
$ rm -f "$t"; t=
funktioniert bei mir einwandfrei. Allerdings mit der gewoehnungsbeduerftigen Eingenart, dass jeder Barcode auf einer eigenen Seite landet. Der generierte Input sieht folgendermassen aus:

Code: Alles auswählen

$ awk 'BEGIN{for(a=0;a<13;a++)b=b""(a%10);for(c=0;c<9;c++)print(b)}'
0123456789012
0123456789012
0123456789012
0123456789012
0123456789012
0123456789012
0123456789012
0123456789012
0123456789012
$ 
. Mutierender Input ist dagegen wohl nicht immer zulaessig:

Code: Alles auswählen

$ awk 'BEGIN{for(a=0;a<9;a++){for(b=a;b<a+13;b++)c=c""(b%10);print(c);c=""}}'
0123456789012
1234567890123
2345678901234
3456789012345
4567890123456
5678901234567
6789012345678
7890123456789
8901234567890
$ awk 'BEGIN{for(a=0;a<9;a++){for(b=a;b<a+13;b++)c=c""(b%10);print(c);c=""}}' | barcode -e ean-13 | ps2pdf - "$t"
barcode: can't encode "1234567890123"
barcode: can't encode "3456789012345"
barcode: can't encode "5678901234567"
barcode: can't encode "7890123456789"
$ 
Mag eine Eigenart dieser Barcodes sein, die irgendwo in der Referenz steht... ;)

Falls dein Eingabeformat tatsaechlich CSV sein sollte, saehe das vermutlich so aus:

Code: Alles auswählen

foo;0123456789012;
bar;1234567890123;
baz;2345678901234;
boo;3456789012345;
mmm;4567890123456;
oder

Code: Alles auswählen

0123456789012;1234567890123;2345678901234;3456789012345;4567890123456;
Je nachdem, was du da tatsaechlich hast, wuerde ich awk bzw. tr zum Filtern/Formatieren vorschalten.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

vrms
Beiträge: 99
Registriert: 25.03.2013 14:04:03

Re: barcode - suche how-to

Beitrag von vrms » 16.01.2014 02:08:40

[quote="syssi"]Versuchs mal mit:

Code: Alles auswählen

echo 1234567890123 > barcodes.txt
barcode -i barcodes.txt > barcodes.ps
okular barcodes.ps
das funktioniert erstmal ok, allerdings kriege ich beim scannen (mit einem Anroid smartphone) die Auskunft, dass es sich um CODE_128 handelt. Nun muss ich gestehen, das keine Ahnung von barcodes habe. Ich wollte allerdings einen EAN13 barcide erzeugen

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: barcode - suche how-to

Beitrag von syssi » 16.01.2014 09:43:03

EAN13 besteht aus 13 Ziffern, wobei die letzte Ziffer eine Checksumme ist. Man hat deshalb nur 12 Ziffern für Nutzdaten. Das habe ich in meinem Beispiel nicht beachtet. Was passiert, wenn du diese Ergebnis scannst:

Code: Alles auswählen

echo 123456789012 > barcodes.txt
barcode -e ean-13 -i barcodes.txt > barcodes.ps
okular barcodes.ps

Antworten