Barcode auf Nadeldrucker
Moderator: Moderatoren
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Barcode auf Nadeldrucker
Hallo,
hat jemand so etwas schon mal realisiert, ohne die ganze Seite in Grafik zu drucken ?
Ich möchte eigentlich nur am Seitenanfang zwei Barcodezeilen drucken, dann im normalen Textmodus den Rest.
hat jemand so etwas schon mal realisiert, ohne die ganze Seite in Grafik zu drucken ?
Ich möchte eigentlich nur am Seitenanfang zwei Barcodezeilen drucken, dann im normalen Textmodus den Rest.
Viele Grüße
Wolfgang
Wolfgang
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Hi Wolfgang,
vielleicht hilft es dir. Hier ein Auszug wo Etiketten gedruckt werden - Text und Barcode - die Berechnung des Barcodes habe ich mal von Hubert bekommen. Ist 13-stellig - deine Barcodeberechnung kann natürlich eine andere sein. Den Drucker wähle ich übrigens mit XbpPrintdialog() aus.
vielleicht hilft es dir. Hier ein Auszug wo Etiketten gedruckt werden - Text und Barcode - die Berechnung des Barcodes habe ich mal von Hubert bekommen. Ist 13-stellig - deine Barcodeberechnung kann natürlich eine andere sein. Den Drucker wähle ich übrigens mit XbpPrintdialog() aus.
Code: Alles auswählen
oFont := XbpFont():new():create( "18.Courier New" )
GraSetFont( oPs, oFont )
aZPos[01]-=10
GraStringAt( oPS, aZPos , aSaetze[i][1] )
aZPos[02]-=25
aZPos[01]+=10
GraStringAt( oPS, aZPos , aSaetze[i][2] )
aPos[02]:=aZPos[02]-85
oFont := XbpFont():new():create( "26.Arial" )
oFont:bold:=.t.
oFont:configure()
GraSetFont( oPs, oFont )
GraStringAt( oPS, aNrPos , aSaetze[i][11] )
If aSaetze[i][12]="000"
Else
aNrPos[02]-=25
oFont := XbpFont():new():create( "18.Arial" )
GraSetFont( oPs, oFont )
GraStringAt( oPS, aNrPos , aSaetze[i][12] )
aNrPos[02]+=25
EndIf
// Barcode-Berechnung
oFont := XbpFont():new():create( "40.Arial" )
GraSetFont( oPs, oFont )
uEan13_Nr:=aSaetze[i][3]+aSaetze[i][4]+aSaetze[i][10]
uEan13_Nr+=GraBarcodeEAN13_CalcCheckDigit(uEan13_Nr)
// Startblock start sentinel - linker Anfang
cBarCodeBlock := "101"
// 1. Stelle EAN13 wird nicht verschlsselt, LAND 1. Stelle
// sondern entscheidet odd/even Folge bei LEFT-HAND !
cFirstDigit := left(uEAN13_Nr,1)
// 2. Stelle EAN13 wird immer ODD verschlsselt LAND 2. Stelle
cBarCodeBlock += GraBarcodeEAN13_EncodingTable("L"+substr(uEAN13_Nr,2,1)+"O")
// 3. - 7 Stelle EAN13 Manufakturer 5 Ziffern
cBarCodeBlock += GraBarcodeEAN13_EncodingTable("L"+substr(uEAN13_Nr,3,1)+ ;
GraBarcodeEAN13_Parity2EncodingTable(cFirstDigit,1))
cBarCodeBlock += GraBarcodeEAN13_EncodingTable("L"+substr(uEAN13_Nr,4,1)+ ;
GraBarcodeEAN13_Parity2EncodingTable(cFirstDigit,2))
cBarCodeBlock += GraBarcodeEAN13_EncodingTable("L"+substr(uEAN13_Nr,5,1)+ ;
GraBarcodeEAN13_Parity2EncodingTable(cFirstDigit,3))
cBarCodeBlock += GraBarcodeEAN13_EncodingTable("L"+substr(uEAN13_Nr,6,1)+ ;
GraBarcodeEAN13_Parity2EncodingTable(cFirstDigit,4))
cBarCodeBlock += GraBarcodeEAN13_EncodingTable("L"+substr(uEAN13_Nr,7,1)+ ;
GraBarcodeEAN13_Parity2EncodingTable(cFirstDigit,5))
// Mittlerer Trennblock CENTER GUARD BARS
cBarCodeBlock += "01010"
// 8. - 12. Stelle EAN13 PRODUKT 5 Ziffern
cBarCodeBlock += GraBarcodeEAN13_EncodingTable("R"+substr(uEAN13_Nr,8,1))
cBarCodeBlock += GraBarcodeEAN13_EncodingTable("R"+substr(uEAN13_Nr,9,1))
cBarCodeBlock += GraBarcodeEAN13_EncodingTable("R"+substr(uEAN13_Nr,10,1))
cBarCodeBlock += GraBarcodeEAN13_EncodingTable("R"+substr(uEAN13_Nr,11,1))
cBarCodeBlock += GraBarcodeEAN13_EncodingTable("R"+substr(uEAN13_Nr,12,1))
// 13. Stelle CheckDigit immer als RightHand verschlsseln
cBarCodeBlock += GraBarcodeEAN13_EncodingTable("R"+substr(uEAN13_Nr,13,1))
// Endeblock RIGHT GUARD BARS
cBarCodeBlock += "101"
nBarCodeBlockLen := len(cBarCodeBlock)
// print the bars !
for z := 1 to nBarCodeBlockLen
if substr(cBarCodeBlock,z,1)="1" // drucken
// Anzahl Striche vor diesem * Strichbreite = Startwert fr aktuellen Strich
x := aPos[1] + (nBarLeftBlankLines + z-1 ) * nBarLineDim
if z <= 3 .or. (z > 3+6*7 .and. z <= 3+6*7+5) .or. z > 3+6*7+5+6*7
// Strich ist ein langer Strich da kein Datenbereich
y := aPos[2] + nBarLongLineOffset
else
// Datenbereich, kurzer Strich
Y := aPos[2] + nBarShortLineOffset
endif
if z = nBarCodeBlockLen .or. substr(cBarCodeBlock,z+1,1)="1"
GraBox( oPS, {x,y}, {x+nBarLineDim,aPos[2]+nSizeY-nBarTopMargin},GRA_FILL )
else
GraBox( oPS, {x,y}, {x+nBarLineDimPrint,aPos[2]+nSizeY-nBarTopMargin},GRA_FILL )
endif
endif
next
aPos[1]+=460
oFont := XbpFont():new():create( "20.Arial" ) // vorher 19 wunsch Linda
GraSetFont( oPs, oFont )
cZeile3:=aSaetze[i][7]+"<"+aSaetze[i][8]+"> "+substr(aSaetze[i][4],1,3)+"-"+;
substr(aSaetze[i][4],4,3)+"-"+substr(aSaetze[i][4],7,3)+" "+"<5-"+aSaetze[i][9]
aZPos[02]-=105
GraStringAt( oPS, aZPos , cZeile3 )
aZPos[02]-=45
cZeile4:=aSaetze[i][5]+space(3)+"EUR "+aSaetze[i][6]
oFont := XbpFont():new():create( "30.Arial" )
oFont:bold:=.t.
oFont:configure()
GraSetFont( oPs, oFont )
GraStringAt( oPS, aZPos , cZeile4 )
Function GraBarcodeEAN13_CalcCheckDigit(uEAN13_Nr) // gibt die CheckDigit als String zurck
// wegen fhrender 0 besser als String !
local x, lFehler := .f., nSummOdd, nSummEven, cOddEven, nCheckSummValue,;
cCheckSummValue, cCheckSummDigit,nCheckSummDigit
do case
case Valtype(uEAN13_Nr)="N"
uEAN13_Nr := left(alltrim(str(uEAN13_Nr,15,0)),12)
case Valtype(uEAN13_Nr)="C"
uEAN13_Nr := left(alltrim(uEAN13_Nr,15),12)
otherwise
* cCheckSummDigit := ERR_EAN13_DATATYPE
lFehler := .t.
endcase
if len(uEAN13_Nr) < 12 .and. ! lFehler // noch keine Fehlermeldung erhalten,
* cCheckSummDigit := ERR_EAN13_PARAMETER_LEN
lFehler := .t.
endif
if ! lFehler
nSummOdd := 0
nSummEven := 0
cOddEven := "E" // erste Position des EAN13 Strings ist per Definition EVEN !
for x := 1 to 12
if cOddEven = "E"
nSummEven += val(substr(uEAN13_Nr,x,1))
cOddEven := "O"
else
nSummOdd += val(substr(uEAN13_Nr,x,1))
cOddEven := "E"
endif
next
// CheckSummDigit ist der Unterschied von nCheckSummValue zum n„chsten vollen 10er.
nCheckSummValue := nSummEven + nSummOdd * 3 // Gewichtung der Odd Position mit 3
cCheckSummValue := right(alltrim(str(nCheckSummValue,15,0)),1) // letzte Position ermitteln
nCheckSummDigit := 10 - val(cCheckSummValue) // von 0->0 1->9 2->8 etc.
cCheckSummDigit := right(alltrim(str(nCheckSummDigit,3,0)),1)
endif
Return cCheckSummDigit
Function GraBarcodeEAN13_EncodingTable(cEncodeID)
local cReturnCode, x
// aCodeTable = Verschlsselungstabelle fr Links Odd/Even und Rechts je Ziffer
static aCodeTable := { { "L0O","0001101" } ,;
{ "L0E","0100111" } ,;
{ "L1O","0011001" } ,;
{ "L1E","0110011" } ,;
{ "L2O","0010011" } ,;
{ "L2E","0011011" } ,;
{ "L3O","0111101" } ,;
{ "L3E","0100001" } ,;
{ "L4O","0100011" } ,;
{ "L4E","0011101" } ,;
{ "L5O","0110001" } ,;
{ "L5E","0111001" } ,;
{ "L6O","0101111" } ,;
{ "L6E","0000101" } ,;
{ "L7O","0111011" } ,;
{ "L7E","0010001" } ,;
{ "L8O","0110111" } ,;
{ "L8E","0001001" } ,;
{ "L9O","0001011" } ,;
{ "L9E","0010111" } ,;
{ "R0" ,"1110010" } ,;
{ "R1" ,"1100110" } ,;
{ "R2" ,"1101100" } ,;
{ "R3" ,"1000010" } ,;
{ "R4" ,"1011100" } ,;
{ "R5" ,"1001110" } ,;
{ "R6" ,"1010000" } ,;
{ "R7" ,"1000100" } ,;
{ "R8" ,"1001000" } ,;
{ "R9" ,"1110100" } } // nur einmal erzeugen spart Zeit.
cEncodeID := upper(alltrim(cEncodeID))
x := AScan( aCodeTable, {|cTmp| cTmp[1] == cEncodeID } )
if x = 0
cReturnCode := "'cEncodeID'='"+cEncodeID+"' ist ungltig !"
else
cReturnCode := aCodeTable[x,2]
endif
Return cReturnCode
*------------------------------------------------------------------------------------------
Function GraBarcodeEAN13_Parity2EncodingTable(cFirstDigit,nManufakturerStelle)
local cReturnCode, x
// aCodeTable = Verschlsselungstabelle fr Links Odd/Even und Rechts je Ziffer
static aCodeTable := { { "0","O","O","O","O","O" } ,;
{ "1","O","E","O","E","E" } ,;
{ "2","O","E","E","O","E" } ,;
{ "3","O","E","E","E","O" } ,;
{ "4","E","O","O","E","E" } ,;
{ "5","E","E","O","O","E" } ,;
{ "6","E","E","E","O","O" } ,;
{ "7","E","O","E","O","E" } ,;
{ "8","E","O","E","E","O" } ,;
{ "9","E","E","O","E","O" } } // nur einmal erzeugen spart Zeit.
x := AScan( aCodeTable, {|cTmp| cTmp[1] == cFirstDigit } )
if x = 0
cReturnCode := "'cFirstDigit'='"+cFirstDigit+"' ist ungltig !"
else
cReturnCode := aCodeTable[x,nManufakturerStelle+1] // +1, da die ID auf 1. Stelle sitzt
endif
Return cReturnCode
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Meiner Kenntnis nach haben viele Barcodeleser Schwierigkeiten mit Codes, die mit Nadeldruckern gedruckt wurden. Die Farbfüllung ist oft nicht flächig genug, um die heutzutage sehr hochauflösend arbeitenden Scanner davon zu überzeugen, dass die kruden Muster Balken sein sollen. Thermo- oder Thermotransferdrucker sind da die bessere Wahl.
Herzlich,
Tom
Tom
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Hi,
mit meiner oben erwähnten Barcode-Klasse, kann man mit LASER gut, mit Tintenstrahler normalerweise OK,
aber bestimmt nicht mit Nadeldruckern sauber drucken.
Die Auflösung die auf dem Papier ankommt und sicher auch die erwähnte Farbsättigung reichen nicht aus.
FALLS aber du einen finden solltest, der Barcodes eingebaut hat, dann kannst du es versuchen.
PS: Oben ist übrigens EAN13 realisiert. Mir wurde eine Abwandlung meiner Klasse für EAN7 oder ist es EAN8 ? zugesandt.
mit meiner oben erwähnten Barcode-Klasse, kann man mit LASER gut, mit Tintenstrahler normalerweise OK,
aber bestimmt nicht mit Nadeldruckern sauber drucken.
Die Auflösung die auf dem Papier ankommt und sicher auch die erwähnte Farbsättigung reichen nicht aus.
FALLS aber du einen finden solltest, der Barcodes eingebaut hat, dann kannst du es versuchen.
PS: Oben ist übrigens EAN13 realisiert. Mir wurde eine Abwandlung meiner Klasse für EAN7 oder ist es EAN8 ? zugesandt.
Gruß
Hubert
Hubert
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Hallo Tom,
ja das ist schon richtig, aber für Lieferscheine mit Durchschlägen geht das nun mal nicht.
Außerdem machen die das schon seit langem und es funktioniert.
Mir wäre es auch lieber, das mit L&L zu erledigen, das klappt ja auch, bloß alles als Grafik drucken, da benötigt der Drucker ja Minuten für eine Seite.
Ich dachte man könnte vielleicht nur den Barcode als Grafik erzeugen und drucken, dann auf Textmodus umschalten.
ja das ist schon richtig, aber für Lieferscheine mit Durchschlägen geht das nun mal nicht.
Außerdem machen die das schon seit langem und es funktioniert.
Mir wäre es auch lieber, das mit L&L zu erledigen, das klappt ja auch, bloß alles als Grafik drucken, da benötigt der Drucker ja Minuten für eine Seite.
Ich dachte man könnte vielleicht nur den Barcode als Grafik erzeugen und drucken, dann auf Textmodus umschalten.
Viele Grüße
Wolfgang
Wolfgang
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Hi,
wenn die das erfolgreich machen (mit welchem Barcode genau), dann muss es ja bisher irgendwie gegangen sein ?
Du kannst im Textmodus mit speziellen Steuerzeichen normalerweise eine Grafik einbinden, die muss aber auch passen.
Mit meiner Barcodeklasse (EAN13 !) müsste es möglich sein - weiß ich jetzt aber auch nicht genau - statt einem Drucker ein
XbpBitmap() anzugeben und das dann als bmp oder über die Zwischenablage zu kopieren.
Ob der Drucker das dann aber so verarbeiten kann ???
Wenn der EAN13 passen würde oder der kleinere könntest du auch hingehen und die Teile herausnehmen, die
berechnen ob eine Zelle gedruckt oder übersprungen wird (der EAN Code besteht ja aus gleich breiten Einheiten).
Mit dieser Info könntest du im Druckerhandbuch nachsehen wie eine Druckerrastergrafik generiert wird ...
was bin ich froh dass ich das nicht mehr brauche
Es ginge aber natürlich auch anders ... Epson Barcodeprinter zusätzlich anschließen, Aufkleber drucken und aufkleben ...
wenn die das erfolgreich machen (mit welchem Barcode genau), dann muss es ja bisher irgendwie gegangen sein ?
Du kannst im Textmodus mit speziellen Steuerzeichen normalerweise eine Grafik einbinden, die muss aber auch passen.
Mit meiner Barcodeklasse (EAN13 !) müsste es möglich sein - weiß ich jetzt aber auch nicht genau - statt einem Drucker ein
XbpBitmap() anzugeben und das dann als bmp oder über die Zwischenablage zu kopieren.
Ob der Drucker das dann aber so verarbeiten kann ???
Wenn der EAN13 passen würde oder der kleinere könntest du auch hingehen und die Teile herausnehmen, die
berechnen ob eine Zelle gedruckt oder übersprungen wird (der EAN Code besteht ja aus gleich breiten Einheiten).
Mit dieser Info könntest du im Druckerhandbuch nachsehen wie eine Druckerrastergrafik generiert wird ...
was bin ich froh dass ich das nicht mehr brauche
Es ginge aber natürlich auch anders ... Epson Barcodeprinter zusätzlich anschließen, Aufkleber drucken und aufkleben ...
Gruß
Hubert
Hubert
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Hallo, Wolfgang.
Hast Du schonmal in den L&L-Foren ("Newsgroups") nach der Anforderung Barcode/Textdrucker gesucht? Ich meine, da mal was gelesen zu haben.
Hast Du schonmal in den L&L-Foren ("Newsgroups") nach der Anforderung Barcode/Textdrucker gesucht? Ich meine, da mal was gelesen zu haben.
Herzlich,
Tom
Tom
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Hallo Hubert,
der Barcodetyp ist "3 of 9" Schriftgröße 26.
Ja, wenn man den Barcode als Grafik hätte, dann könnte man vielleicht mit Steuerzeichen eine Grafikzeile ausgeben...
Also im Prinzip wieder drucken wie zu Clipperzeiten. Hat damals jemand schon Barcodes gedruckt ??
der Barcodetyp ist "3 of 9" Schriftgröße 26.
Ja, wenn man den Barcode als Grafik hätte, dann könnte man vielleicht mit Steuerzeichen eine Grafikzeile ausgeben...
Also im Prinzip wieder drucken wie zu Clipperzeiten. Hat damals jemand schon Barcodes gedruckt ??
Viele Grüße
Wolfgang
Wolfgang
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Hallo Tom,
nee, gute Idee, werde ich mal heute abend tun.
nee, gute Idee, werde ich mal heute abend tun.
Viele Grüße
Wolfgang
Wolfgang
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
zu 3 of 9 habe ich mal was gelesen ... ich meine das war RTF Font, der nützt dir aber erstmal nichts.
Für die Grafik musst du auf jeden Fall die Regel der Linien ermitteln und daraus dann weiße und schwarze Blöcke bauen.
Für die Grafik musst du auf jeden Fall die Regel der Linien ermitteln und daraus dann weiße und schwarze Blöcke bauen.
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Laut Wikipedia ist er einfach herzustellen, da das Zeichen selbst die gedruckten (schwarz) und hellen Linien definieren.
http://de.wikipedia.org/wiki/Code39
aber wie steht da nicht.
Hier könntes du das gewünschte Ergebnis ermitteln:
http://www.freeware.de/download/code-39 ... 34683.html
http://de.wikipedia.org/wiki/Code39
aber wie steht da nicht.
Hier könntes du das gewünschte Ergebnis ermitteln:
http://www.freeware.de/download/code-39 ... 34683.html
Gruß
Hubert
Hubert
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Erst einmal danke, ich denke das ist dann mal eine Wochenendaufgabe.
Viele Grüße
Wolfgang
Wolfgang
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Hallo Hubert,
vielen Dank für die Info. Habe heute in Erfahrung gebracht, dass die Firma PSI Drucker einsetzt, die haben wohl die eingebaute Möglichkeit, Barcodes zu drucken. Jetzt muss ich mir nur noch das Benutzerhandbuch besorgen. Es soll wohl dann über eine bestimmte Emulation mit $$... statt ESC... funktionieren. Damit wäre das dann für mich relativ einfach zu lösen.
vielen Dank für die Info. Habe heute in Erfahrung gebracht, dass die Firma PSI Drucker einsetzt, die haben wohl die eingebaute Möglichkeit, Barcodes zu drucken. Jetzt muss ich mir nur noch das Benutzerhandbuch besorgen. Es soll wohl dann über eine bestimmte Emulation mit $$... statt ESC... funktionieren. Damit wäre das dann für mich relativ einfach zu lösen.
Viele Grüße
Wolfgang
Wolfgang
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
wenn der Drucker sowas hardwareseitig vorsieht, sollte es auch funktionieren (notfalls öffters die Farbbänder wechseln )Wolfgang Ciriack hat geschrieben: die haben wohl die eingebaute Möglichkeit, Barcodes zu drucken.
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Hi,
diesen Text habe ich im PowerBasic Forum gefunden:
wenn man also so einen Epson Drucker hat, dann kann man mit ESC/P Code den Barcode 39 einschalten ...
und so den Barcode drucken ...
eine kleine Plausi kann bei len(cBarcode) natürlich nichts schaden ...
Ausschalten des Barcodes könnte automatisch gehen, nachdem er gedruckt wurde.
Sicherheitshalber sollte man das aber im Handbuch nachsehen.
Dieser Link führt zum Epson Handbuch. Dort gibt es fast für jeden Epson Drucker eines
http://files.support.epson.com/pdf/lq2170/lq2170ps.pdf
diesen Text habe ich im PowerBasic Forum gefunden:
Code: Alles auswählen
' This selects EPSON PRINTER BARCODE to Code 39
LPRINT CHR$(27)+CHR$(16)+"A"+CHR$(8)+CHR$(2)+CHR$(0)+CHR$(0)+CHR$(5)+CHR$(1)+CHR$(1)+CHR$(1)+CHR$(1)
'This prints the contents of BARCODE$, 10 characters.
LPRINT CHR$(27)+CHR$(16)+"B"+CHR$(10)+BARCODE$
Code: Alles auswählen
... CHR(27)+CHR(16)+"A"+CHR(8)+CHR(2)+CHR(0)+CHR(0)+CHR(5)+CHR(1)+CHR(1)+CHR(1)+CHR(1)
Code: Alles auswählen
cBarcode := "..."
... CHR(27)+CHR(16)+"B"+CHR(len(cBarcode))+cBarcode
Ausschalten des Barcodes könnte automatisch gehen, nachdem er gedruckt wurde.
Sicherheitshalber sollte man das aber im Handbuch nachsehen.
Dieser Link führt zum Epson Handbuch. Dort gibt es fast für jeden Epson Drucker eines
http://files.support.epson.com/pdf/lq2170/lq2170ps.pdf
Gruß
Hubert
Hubert
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Darf ich mal dumm fragen?
Der Epson-Nadeldrucker ist doch auch unter Windows installierbar, das heisst mit entsprechenden Windows-Fonts ansprechbar?
So kann doch einfach der Code39 installiert werden und zum Drucker gesendet werden.
Wichtig: Code 39 sollte immer mit Ausrufezeichen beginnen und enden.
Brauchts noch den Font. Den gibts, sogar legal hier http://www.squaregear.net/fonts/free3of9.shtml
Der Epson-Nadeldrucker ist doch auch unter Windows installierbar, das heisst mit entsprechenden Windows-Fonts ansprechbar?
So kann doch einfach der Code39 installiert werden und zum Drucker gesendet werden.
Wichtig: Code 39 sollte immer mit Ausrufezeichen beginnen und enden.
Code: Alles auswählen
oFontCode39 := xbpFont():new(oPS):create("12.Free 3 of 9 Extended")
oPS:device():startDoc('Journal')
GraSetFont(oPs, oFontCode39 )
GraStringAt(oPS,{10,12}, "!0123456789!")
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Hallo Hubert,
vielen Dank für deine Mühe, vielleicht braucht man das nochmal.
Mein Kunde hat aber PSI Drucker, da steuert man das mit
ESC [ ; p2 ; p3 ...;p7 z (Header) an und Start und Stop Barcode mit ESC [ ? 0 h bzw. l.
vielen Dank für deine Mühe, vielleicht braucht man das nochmal.
Mein Kunde hat aber PSI Drucker, da steuert man das mit
ESC [ ; p2 ; p3 ...;p7 z (Header) an und Start und Stop Barcode mit ESC [ ? 0 h bzw. l.
Viele Grüße
Wolfgang
Wolfgang
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Ja, aber die Windows Fonts auf einem Nadeldrucker sind nicht sehr effektiv und wenn er das schon eingebaut kannHerbert hat geschrieben:Der Epson-Nadeldrucker ist doch auch unter Windows installierbar, das heisst mit entsprechenden Windows-Fonts ansprechbar?
@ Wolfgang,
das war keine Mühe und falls nochmal jemand danach sucht ist er hier gut aufgehoben
Gruß
Hubert
Hubert
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Nur bedingtbrandelh hat geschrieben: Ja, aber die Windows Fonts auf einem Nadeldrucker sind nicht sehr effektiv und wenn er das schon eingebaut kann
einerseits erstellen eir PDF-Kopien für die elektronische Ablage. Da würden die Barcodes dann fehlen.
andererseits musst du umprogrammieren, wenn ein anderer Drucker dasteht.
Bin aber beruhigt, dachte schon, dass an den Software-Fonts was faul wäre...
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Barcode auf Nadeldrucker
Hi,
ICH würde überhaupt keine Nadeldrucker mehr einsetzen und ausschließlich GUI Drucken,
aber das war oben wegen mangelnder Durchschläge ausgeschlossen worden
Ich persönlich würde einen grafischen Druck direkt aus Xbase++ heraus den Fonts vorziehen,
da man so keine Fonts installieren muss und weil bei der Fontauswahl auch was schief gehen könnte ...
Ihr bettet diese Fonts sicher in die PDF ein, dann gibt es damit aber bestimmt keine Probleme und
wenn der Anwender den Font lokal löscht oder umbenennt ist er selbst schuld.
Und solange der Barcodeleser damit zurecht kommt, warum nicht
ich dachte ein Nadeldrucker und Barcode ... bei den Leseproblemen ...
Wenn der aber keine hat, warum nicht.
ICH würde überhaupt keine Nadeldrucker mehr einsetzen und ausschließlich GUI Drucken,
aber das war oben wegen mangelnder Durchschläge ausgeschlossen worden
Ich persönlich würde einen grafischen Druck direkt aus Xbase++ heraus den Fonts vorziehen,
da man so keine Fonts installieren muss und weil bei der Fontauswahl auch was schief gehen könnte ...
Ihr bettet diese Fonts sicher in die PDF ein, dann gibt es damit aber bestimmt keine Probleme und
wenn der Anwender den Font lokal löscht oder umbenennt ist er selbst schuld.
Und solange der Barcodeleser damit zurecht kommt, warum nicht
ich dachte ein Nadeldrucker und Barcode ... bei den Leseproblemen ...
Wenn der aber keine hat, warum nicht.
Gruß
Hubert
Hubert
Re: Barcode auf Nadeldrucker
Hallo Wolfgang,
ich hab dir doch ( lang, lang ists her) mein Dosprint gegeben.
Wenn du dies noch hast, müsste in pkprint.prg die function eanpz oder so ähnlich drin sein. Da wird der Ean-Code sowohl im Dos als auch mit Nadeldrucker gedruckt.
Servus Paul
ich hab dir doch ( lang, lang ists her) mein Dosprint gegeben.
Wenn du dies noch hast, müsste in pkprint.prg die function eanpz oder so ähnlich drin sein. Da wird der Ean-Code sowohl im Dos als auch mit Nadeldrucker gedruckt.
Servus Paul