--- dao/DelphiScanner/LabelPrint.pas 2016/08/16 21:06:46 3091 +++ dao/DelphiScanner/LabelPrint.pas 2016/08/21 20:51:45 3095 @@ -4,7 +4,7 @@ uses ParentForm, - PakkeshopLabels, + LabelData, Configuration, StBarc; @@ -20,14 +20,15 @@ procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = ''); - procedure PrintFuldPakkeLabel( PakkeshopLabel : TPakkeshopLabel); - procedure PrintFuldPakkeLabelLille( PakkeshopLabel : TPakkeshopLabel); - procedure PrintFuldPakkeLabelStor( PakkeshopLabel : TPakkeshopLabel); + procedure PrintSimpelLabel( LabelData : TLabelData) ; + + procedure PrintFuldPakkeLabel( PakkeshopLabel : TLabelData); + procedure PrintFuldPakkeLabelLille( PakkeshopLabel : TLabelData); + procedure PrintFuldPakkeLabelStor( PakkeshopLabel : TLabelData); procedure PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn : String) ; - procedure TestZpl(); procedure PrintZPL( ZplData : string); function GetPrinterCount() : Integer; @@ -52,10 +53,11 @@ WinSpool, Windows, SysUtils, //Format - Math, // DegToRad() bruges i PrintPakkeshopLabel + Math, // DegToRad() bruges i PrinTLabelData Forms, IdHTTP, - Graphics + Graphics, + XMLDoc ; @@ -249,6 +251,9 @@ httpClient: TIdHTTP; + XMLDocument1: TXMLDocument; + + LabelData: TLabelData; begin @@ -263,6 +268,29 @@ httpClient.Free(); + XMLDocument1 := parentForm.GetXMLDocument(); + + XMLDocument1.LoadFromXML(response); + + LabelData := TLabelData.Create(XMLDocument1); + + if LabelData.LabelType = 'zpl' then + begin + PrintZPL(LabelData.ZPL); + end + else if (LabelData.LabelType = 'simpel') then + begin + PrintSimpelLabel(LabelData); + end + else + begin + PrintFuldPakkeLabel(LabelData); + end; + + + + + end; @@ -314,7 +342,7 @@ end; -procedure TLabelPrint.PrintFuldPakkeLabel( PakkeshopLabel : TPakkeshopLabel); +procedure TLabelPrint.PrintFuldPakkeLabel( PakkeshopLabel : TLabelData); begin if (Config.LabelStor = 1) then begin @@ -330,7 +358,7 @@ end; // Bruges til label der passer til 60x100 -procedure TLabelPrint.PrintFuldPakkeLabelLille( PakkeshopLabel : TPakkeshopLabel); +procedure TLabelPrint.PrintFuldPakkeLabelLille( PakkeshopLabel : TLabelData); var XForm, XFormOld: TXForm; //Bruges til rotate X-formation Angle: integer; @@ -454,7 +482,7 @@ // Bruges til label der passer til 100x150 -procedure TLabelPrint.PrintFuldPakkeLabelStor( PakkeshopLabel : TPakkeshopLabel); +procedure TLabelPrint.PrintFuldPakkeLabelStor( PakkeshopLabel : TLabelData); var XForm, XFormOld: TXForm; //Bruges til rotate X-formation Angle: integer; @@ -601,32 +629,7 @@ end; // Online zpl viewer -// http://labelary.com/viewer.html -procedure TLabelPrint.TestZpl(); -var - zpl: string; -begin - zpl := -'^XA'#13#10 + -'^PON'#13#10 + -'^FWN'#13#10 + - -'^FX Top section with company logo, name and address.'#13#10 + -'^CF0,60'#13#10 + -'^FO50,50^GB100,100,100^FS'#13#10+ -'^FO75,75^FR^GB100,100,100^FS'#13#10+ -'^FO88,88^GB50,50,50^FS'#13#10+ -'^FO220,50^FDInternational Shipping, Inc.^FS'#13#10+ -'^CF0,40'#13#10+ -'^FO220,100^FD1000 Shipping Lane^FS'#13#10+ -'^FO220,135^FDShelbyville TN 38102^FS'#13#10+ -'^FO220,170^FDUnited States (USA)^FS'#13#10+ -'^FO50,250^GB700,1,3^FS'#13#10 + -'^XZ'#13#10 - ; - PrintZpl(zpl); -end; procedure TLabelPrint.PrintZPL( ZplData : string); var @@ -699,6 +702,41 @@ end; +procedure TLabelPrint.PrintSimpelLabel( LabelData : TLabelData) ; +begin + with Printer do + begin + BeginDoc; + + Canvas.Font.Size := Config.FontSizeRute; + if (Length(LabelData.SimpelLinie1) > 7) then + begin + Canvas.Font.Size := Config.FontSizeRuteLille; + end; + Canvas.TextOut(Config.XPosRute, Config.YPosRute, LabelData.SimpelLinie1); + Canvas.Font.Size := Config.FontSizeKommentar; + LabelData.SimpelLinie2 := StringReplace(LabelData.SimpelLinie2, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]); + if (LabelData.SimpelLinie2 = 'Ok') or (LabelData.SimpelLinie2 = 'ALLEREDE SCANNET') then + begin + LabelData.SimpelLinie2 := ''; + end; + if (LabelData.SimpelLinie3 = 'PAKKE ER SCANNET') then + begin + LabelData.SimpelLinie3 := ''; + end; + Canvas.TextOut(Config.XPosKommentar, Config.YPosKommentar, LabelData.SimpelLinie2); + Canvas.Font.Size := Config.FontSizeBoghandler; + Canvas.TextOut(Config.XPosBoghandler, Config.YPosBoghandler, LabelData.SimpelLinie3); + EndDoc; + end; + + + + Printers.SetPrinter( TPrinter.Create() ).Free();//Work around for KB3177725 + +end; + + function TLabelPrint.GetPrinterCount() : Integer; begin