/[projects]/dao/DelphiScanner/LabelPrint.pas
ViewVC logotype

Diff of /dao/DelphiScanner/LabelPrint.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2790 by torben, Fri Dec 4 14:07:48 2015 UTC revision 3086 by torben, Mon Aug 15 12:44:21 2016 UTC
# Line 16  type Line 16  type
16    
17      procedure CheckPrintQue(tjektype : string; PrinterNavn : String);      procedure CheckPrintQue(tjektype : string; PrinterNavn : String);
18    
19        procedure PrintLabel( Stregkode : String);
20    
21      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');
22    
23      procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);      procedure PrintFuldPakkeLabel( PakkeshopLabel : TPakkeshopLabel);
24    
25    
26      procedure PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn : String) ;      procedure PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn : String) ;
27    
28        procedure TestZpl();
29        procedure PrintZPL( ZplData : string);
30    
31      function GetPrinterCount() : Integer;      function GetPrinterCount() : Integer;
32    
33    private    private
# Line 45  uses Line 51  uses
51    Windows,    Windows,
52    SysUtils, //Format    SysUtils, //Format
53    Math, // DegToRad() bruges i PrintPakkeshopLabel    Math, // DegToRad() bruges i PrintPakkeshopLabel
54    Forms    Forms,
55      IdHTTP
56    ;    ;
57    
58    
# Line 107  begin Line 114  begin
114    with Printer do    with Printer do
115        begin        begin
116          BeginDoc;          BeginDoc;
117    
118          Canvas.Font.Size := Config.FontSizeRute;          Canvas.Font.Size := Config.FontSizeRute;
119          if (Length(RuteNummer) > 7) then          if (Length(RuteNummer) > 7) then
120          begin          begin
# Line 128  begin Line 136  begin
136          Canvas.TextOut(Config.XPosBoghandler, Config.YPosBoghandler, BoghandlerNavn);          Canvas.TextOut(Config.XPosBoghandler, Config.YPosBoghandler, BoghandlerNavn);
137          EndDoc;          EndDoc;
138        end;        end;
139    
140    
141    
142      Printers.SetPrinter( TPrinter.Create() ).Free();//Work around for KB3177725
143    
144  end;  end;
145    
146    
# Line 219  begin Line 232  begin
232          ClosePrinter(hPrinter);          ClosePrinter(hPrinter);
233      end;      end;
234    end;    end;
235    
236    
237      Printers.SetPrinter( TPrinter.Create() ).Free();//Work around for KB3177725
238    
239  end;  end;
240    
241    
242    procedure TLabelPrint.PrintLabel( Stregkode : String);
243    var
244      url: String;
245      response: String;
246    
247      httpClient: TIdHTTP;
248    
249    
250    
251    begin
252      url := Config.BaseURL + '/BogpakkeKontrol/PrintLabel.php?stregkode=' + Trim(Stregkode);
253    
254      httpClient := TIdHTTP.Create();
255      httpClient.ReadTimeout := 1000;//max 1 secound
256      httpClient.ConnectTimeout := 1000;
257    
258      response := httpClient.Get(url);
259      httpClient.Free();
260    
261    
262    
263    
264    end;
265    
266  procedure TLabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  procedure TLabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');
267  begin  begin
268      with Printer do      with Printer do
# Line 262  begin Line 303  begin
303    
304        EndDoc;        EndDoc;
305      end;      end;
306    
307    
308        Printers.SetPrinter( TPrinter.Create() ).Free();//Work around for KB3177725
309    
310  end;  end;
311    
312    
313    
314  // ToDo: PrintPakkeshopLabel()  // ToDo: PrintPakkeshopLabel()
315  procedure TLabelPrint.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);  procedure TLabelPrint.PrintFuldPakkeLabel( PakkeshopLabel : TPakkeshopLabel);
316  var  var
317    XForm, XFormOld: TXForm; //Bruges til rotate X-formation    XForm, XFormOld: TXForm; //Bruges til rotate X-formation
318    Angle: integer;    Angle: integer;
# Line 294  begin Line 339  begin
339    
340    
341        // Skriv ikke 'Pakkeshop' overskrift hvis det er en shop2direkte        // Skriv ikke 'Pakkeshop' overskrift hvis det er en shop2direkte
342        if (  (PakkeshopLabel.Shop2Direkte = '') OR (PakkeshopLabel.Shop2Direkte = '0')  ) then        if (  PakkeshopLabel.PakkeshopNavn <> ''  ) then
343        begin        begin
344          Canvas.TextOut(110, 240, 'Pakkeshop:');          Canvas.TextOut(110, 240, 'Pakkeshop:');
345            Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);
346            Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);
347            Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);
348    
349        end;        end;
350    
351    
       Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);  
       Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);  
       Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);  
352    
353        Canvas.TextOut(350, 240, 'Afsender:');        Canvas.TextOut(350, 240, 'Afsender:');
354        Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);        Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);
# Line 384  begin Line 430  begin
430      end;      end;
431    
432    
433      Printers.SetPrinter( TPrinter.Create() ).Free();//Work around for KB3177725
434    
435  end;  end;
436    
437    
# Line 397  begin Line 445  begin
445      Result := p;      Result := p;
446  end;  end;
447    
448    // Online zpl viewer
449    // http://labelary.com/viewer.html
450    procedure TLabelPrint.TestZpl();
451    var
452      zpl: string;
453    begin
454      zpl :=
455    '^XA'#13#10 +
456    '^PON'#13#10 +
457    '^FWN'#13#10 +
458    
459    '^FX Top section with company logo, name and address.'#13#10 +
460    '^CF0,60'#13#10 +
461    '^FO50,50^GB100,100,100^FS'#13#10+
462    '^FO75,75^FR^GB100,100,100^FS'#13#10+
463    '^FO88,88^GB50,50,50^FS'#13#10+
464    '^FO220,50^FDInternational Shipping, Inc.^FS'#13#10+
465    '^CF0,40'#13#10+
466    '^FO220,100^FD1000 Shipping Lane^FS'#13#10+
467    '^FO220,135^FDShelbyville TN 38102^FS'#13#10+
468    '^FO220,170^FDUnited States (USA)^FS'#13#10+
469    '^FO50,250^GB700,1,3^FS'#13#10 +
470    '^XZ'#13#10
471      ;
472    
473      PrintZpl(zpl);
474    end;
475    
476    procedure TLabelPrint.PrintZPL( ZplData : string);
477    var
478      ADevice, ADeviceName, ADevicePort: array[0..255]of Char;
479      PrinterHandle: THandle;
480      DocInfo: TDocInfo1;
481      dwJob: cardinal;
482      dwBytesWritten: cardinal;
483      AUtf8: UTF8string;
484      ADeviceMode: THandle;
485    
486    begin
487    
488    
489      Printer.GetPrinter(ADevice, ADeviceName, ADevicePort, ADeviceMode);
490    
491        if not OpenPrinter(ADevice, PrinterHandle, nil) then
492        begin
493          Exit;
494          parentForm.Msg('error on openprinter');
495        end;
496    
497         //Fill in the structure with info about this "document"
498      DocInfo.pDocName := PChar('Spooler Document Name');
499      DocInfo.pOutputFile := nil;
500      DocInfo.pDatatype := 'RAW';
501    
502       //Inform the spooler the document is beginning
503      dwJob := StartDocPrinter(PrinterHandle, 1, @DocInfo);
504      if dwJob = 0 then
505      begin
506        ClosePrinter(PrinterHandle);
507        PrinterHandle := 0;
508        Exit;
509      end;
510    
511      //Start a page
512      if not StartPagePrinter(PrinterHandle) then
513      begin
514        EndDocPrinter(PrinterHandle);
515        ClosePrinter(PrinterHandle);
516        PrinterHandle := 0;
517        Exit;
518      end;
519    
520      //your zebra code...
521      AUtf8 := UTF8string(ZplData);
522      WritePrinter(PrinterHandle, @AUtf8[1], Length(AUtf8), dwBytesWritten);
523    
524      //End the page
525      if not EndPagePrinter(PrinterHandle) then
526      begin
527        EndDocPrinter(PrinterHandle);
528        ClosePrinter(PrinterHandle);
529        PrinterHandle := 0;
530        Exit;
531      end;
532    
533      //Inform the spooler that the document is ending
534      if not EndDocPrinter(PrinterHandle) then
535      begin
536        ClosePrinter(PrinterHandle);
537        PrinterHandle := 0;
538        Exit;
539      end;
540    
541      //Tidy up the printer handle
542      ClosePrinter(PrinterHandle);
543      PrinterHandle := 0;
544    
545    end;
546    
547    
548  function TLabelPrint.GetPrinterCount() : Integer;  function TLabelPrint.GetPrinterCount() : Integer;
549  begin  begin

Legend:
Removed from v.2790  
changed lines
  Added in v.3086

  ViewVC Help
Powered by ViewVC 1.1.20