AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zebra Drucker Etiketten Variablen

Ein Thema von Graw · begonnen am 4. Sep 2018 · letzter Beitrag vom 4. Apr 2019
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.069 Beiträge
 
Delphi 12 Athens
 
#11

AW: Zebra Drucker Etiketten Variablen

  Alt 4. Sep 2018, 14:01
Aber ich glaube mit der ZebraDesigner ist es nur durch einen Trick möglich an das generierte ZPL-Script zu kommen.
Ich habe mit dem ZebraDesigner ein Etikett erstellt und würde dieses nun auch gerne öffnen und Variablen mit Daten ersetzen.
Leider ist dies mit der erstellten Label Datei anscheinend nicht möglich.
Mit dem ZebraDesigner erstellt?

Da vielleicht besser den ZebraDesigner Pro oder ZebraDesigner XML verwenden.
https://www.zebra.com/de/de/products...-designer.html
Laut der Beschreibung auf der Webseite klingt das von der PRO (oder XML) hierfür geeigneter.
Zitat von ZebraDesigner:
... bietet grundlegende Designfunktionen.
Zitat von ZebraDesigner Pro:
... Erstellen komplexer Etiketten mit festen oder variablen Daten.


PS: Umleiten/Abfangen von Druckausgaben.
https://www.colorpilot.com/emfprinterpilot.html
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 4. Sep 2018 um 14:04 Uhr)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#12

AW: Zebra Drucker Etiketten Variablen

  Alt 4. Sep 2018, 14:13
Hmm..

alternativ zum ZebraDesigner (noch nicht näher angeschaut)

https://sourceforge.net/projects/vzpl/

Oder bei Handerstellung der ZPLs zum Prüfen:

http://labelary.com/viewer.html

Das ganze als Java..

https://github.com/teynon/ZPL-Label-Designer
Mit Demo:
http://teynon.github.io/ZPL-Label-Designer/index.html

OK, es geht auch ohne Printer-Port:
https://stackoverflow.com/questions/...85389#16685389
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#13

AW: Zebra Drucker Etiketten Variablen

  Alt 4. Sep 2018, 14:30
Hmm..

Habe hier noch eine kleine Beschreibung gefunden (in EN und für andere Platzhalter)

https://help.benchling.com/general/c...ample-tracking

Aber alleine an den ScreenShots sollte der Weg ersichtlich sein..
  Mit Zitat antworten Zitat
Graw

Registriert seit: 26. Apr 2017
77 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Zebra Drucker Etiketten Variablen

  Alt 5. Sep 2018, 13:28
Schon mal vielen Dank für die vielen Antworten.
Ich werde morgen wieder Zeit haben daran zu arbeiten.
Mal schauen ob und wie ich ans Ziel komme.
Ich werde dann berichten.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.069 Beiträge
 
Delphi 12 Athens
 
#15

AW: Zebra Drucker Etiketten Variablen

  Alt 5. Sep 2018, 14:02
als JavaScript


Im FF funktioniert der Generate-Button, aber egal, da man keine Elemente hinzufügen kann
und im IE kann ich Welche hinzufügen, aber das Generieren geht nicht.

Aber das Projekt ist eh tot.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
379 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#16

AW: Zebra Drucker Etiketten Variablen

  Alt 5. Sep 2018, 15:15
Moin,

wir erstellen die vorlage einmalig im Zebradesigner und drucken das Etikett dann in eine Datei bzw. leiten den Port des Zebradruckers in eine Datei um.
Dann bekommst Du z.B. so was hier:
Code:
^XA~TA000~JSN^LT0^MNW^MTD^PON^PMN^LH0,0^JMA^PR5,5~SD15^JUS^LRN^CI0^XZ
^XA
^MMT
^PW799
^LL1199
^LS0
^FT772,1130^A0I,39,38^FH\^FDFirmenname^FS
^FT520,1127^A0I,28,28^FH\^FDGmbH & Co KG^FS
^FT772,1069^A0I,28,28^FH\^FDAuftrag:^FS
^FT646,1069^A0I,28,28^FH\^FD###VAR1###^FS
^FO19,1029^GB753,0,15^FS

^FT772,991^A0I,23,24^FH\^FDArtikel^FS
^FT653,991^A0I,23,24^FH\^FDOE^FS
^FT546,991^A0I,23,24^FH\^FDBeschreibung^FS
^FT240,991^A0I,23,24^FH\^FDBest./Gel.^FS
^FT120,991^A0I,23,24^FH\^FDPREIS^FS

^FT653,954^A0I,23,24^FH\^FD###VAR2###^FS
^FT772,954^A0I,23,24^FH\^FD###VAR3###^FS



^FT546,954^A0I,23,16^FH\^FDT222222222222222222222222222222^FS
^FT100,954^A0I,23,24^FH\^FD###VAR4###^FS
^FT240,954^A0I,23,24^FH\^FD###VAR5###^FS

^BY2,3,77^FT335,1074^BCI,,Y,N
^FD>:AUFTRAGLS^FS
^FT776,613^A0I,28,28^FH\^FD###VAR6###^FS
^PQ1,0,1,Y^XZ
Diese Datei bzw. diesen String dängelst Du dann mit Deinen Werten um schickst das per Indy direkt an den Drucker.
Das klappt wunderbar und ist pfeilschnell, weil sehr schlank

Gruß
  Mit Zitat antworten Zitat
Graw

Registriert seit: 26. Apr 2017
77 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Zebra Drucker Etiketten Variablen

  Alt 7. Sep 2018, 07:46
Zitat:
Diese Datei bzw. diesen String dängelst Du dann mit Deinen Werten um schickst das per Indy direkt an den Drucker.
Das klappt wunderbar und ist pfeilschnell, weil sehr schlank
Klappt das auch mit einem über USB angeschlossenen Zebra Drucker?
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#18

AW: Zebra Drucker Etiketten Variablen

  Alt 7. Sep 2018, 08:01
Zitat:
Diese Datei bzw. diesen String dängelst Du dann mit Deinen Werten um schickst das per Indy direkt an den Drucker.
Das klappt wunderbar und ist pfeilschnell, weil sehr schlank
Klappt das auch mit einem über USB angeschlossenen Zebra Drucker?
Im Windows Netzwerk haben wir Zebra Drucker auf die wir reine ASCII (ZPL) Daten senden, dazu verwenden wir den Windows Sharenamen in der Form \\printserver\druckername

Hier wird beschrieben wie man einen lokalen USB Drucker einen Windows Share Namen zuweist:

http://www.nrgsoft.com/support/activ...?questionid=11

Dann die Druckdaten per Stringlist.SaveToFile('\\mypc\mylocalprinter') ausgeben.

(Disclaimer: mit lokalen Druckern habe ich es nicht selber getestet)
Michael Justin
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#19

AW: Zebra Drucker Etiketten Variablen

  Alt 7. Sep 2018, 10:16
Hmm..

Wieso der Umweg über LPT....

Den Drucker ganz normal unter Windows installieren!

Und dann reicht folgendes, um jedes Script (kann ZPL, EPL oder anderes RAW-Script sein!) direkt programmtechnisch an den Drucker zu schicken:

Delphi-Quellcode:
uses
  WinSpool, Printers;

function SendRAWData(RAWData: AnsiString; Port : Ansistring):boolean;
var
  dwCount : DWORD;
  hPrinter : THandle;
  DocInfo : TDocInfo1A;
  dwJOB : DWORD;
  dwBytesWritten : DWORD;
begin
  result:=false;
  dwCount := Length(RAWData);
  if OpenPrinterA(PAnsiChar(Port), hPrinter, Nil) then begin
    try
      DocInfo.pDocName := 'RAWPrint';
      DocInfo.pOutputFile := Nil;
      DocInfo.pDatatype := 'RAW';
      dwJob := StartDocPrinterA(hPrinter, 1, @docInfo);
      if dwJob <> 0 then
        try
          if StartPagePrinter(hPrinter) then
            try
              if WritePrinter(hPrinter, PAnsichar(RAWData), dwCount, dwBytesWritten) then
                if dwBytesWritten <> dwCount then
                  raise Exception.Create('Übertragungsprobleme mit '+Port+'!')
                else result:=true;
            finally
              EndPagePrinter(hPrinter)
            end
        finally
          EndDocPrinter(hPrinter);
        end
    finally
      ClosePrinter(hPrinter)
    end;
  end else raise Exception.Create('Drucker '+Port+' nicht zur Verfügung!');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Port : string;
  Data : string;
begin
  if PrintDialog1.Execute then begin
    Port := Printer.Printers[Printer.PrinterIndex];
    Data := 'DIES IST DAS ASCII-SCRIPT';
    SendRAWData(Data,Port);
  end;
end;
(Ist nicht optimiert und verwendet nur ASCII (ANSI), was aber OK ist, da die meisten Scriptfähigen Drucker nicht Unicode per Script können!)

Es ist hierbei egal, ob der Drucker per USB/LPT/Netzwerk oder wie auch immer angeschlossen ist.

(Den Printdialog habe nur als Beispiel verwendet, der Drucker kann auch schon vorher selektiert/gespeichert worden sein.)

Edit:
Kann sogar auf normalen z.B. Laserdrucker verwendet werden, um direkt Text zu drucken.

Geändert von HolgerX ( 7. Sep 2018 um 10:36 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#20

AW: Zebra Drucker Etiketten Variablen

  Alt 7. Sep 2018, 21:17

Wieso der Umweg über LPT....

Den Drucker ganz normal unter Windows installieren!
LPT habe ich hier noch nicht bei den Antworten gesehen (sollte aber im Prinzip so wie ein Share funktionieren). Mit dem Umweg über den Druckertreiber haben wir in einem Windows 2008 Server Umfeld (mit Delphi 2009 Enterprise) Anfang letzten Jahres keine guten Erfahrungen gemacht, was laut Informationen hier im Forum der Printers Unit geschuldet ist. Effekt war, dass nach einigen Ausdrucken die Printerqueue fehlerhafte Jobs enthielt, man dann immer die Queue löschen musste und jedesmal alle Ausdrucke verloren gingen. Der Ausdruck per Stringlist.SaveToFile('\\printserver\printername') mit tausenden Ausdrucken pro Woche deutlich stabiler. Nach Recherchen soll die Printers Unit in Delphi seit Delphi 2009 auch keine wesentlichen Verbesserungen erhalten haben. Wir wollten den Druckertreiber eigentlich nur dazwischenschalten um den Ausdruck mit kleinerer Schriftart auszugeben, und so einige Bäume einzusparen.
Michael Justin
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz