/[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 2705 by torben, Fri Sep 4 12:39:33 2015 UTC revision 3077 by torben, Thu Jul 28 21:25:58 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 222  begin Line 229  begin
229  end;  end;
230    
231    
232    procedure TLabelPrint.PrintLabel( Stregkode : String);
233    var
234      url: String;
235      response: String;
236    
237      httpClient: TIdHTTP;
238    
239    
240    
241    begin
242      url := Config.BaseURL + '/BogpakkeKontrol/PrintLabel.php?stregkode=' + Trim(Stregkode);
243    
244      httpClient := TIdHTTP.Create();
245      httpClient.ReadTimeout := 1000;//max 1 secound
246      httpClient.ConnectTimeout := 1000;
247    
248      response := httpClient.Get(url);
249      httpClient.Free();
250    
251    
252    
253    
254    end;
255    
256  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 = '');
257  begin  begin
258      with Printer do      with Printer do
# Line 267  end; Line 298  end;
298    
299    
300  // ToDo: PrintPakkeshopLabel()  // ToDo: PrintPakkeshopLabel()
301  procedure TLabelPrint.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);  procedure TLabelPrint.PrintFuldPakkeLabel( PakkeshopLabel : TPakkeshopLabel);
302  var  var
303    XForm, XFormOld: TXForm; //Bruges til rotate X-formation    XForm, XFormOld: TXForm; //Bruges til rotate X-formation
304    Angle: integer;    Angle: integer;
# Line 291  begin Line 322  begin
322    
323    
324        Canvas.Font.Size := 9;        Canvas.Font.Size := 9;
325        Canvas.TextOut(110, 240, 'Pakkeshop:');  
326        Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);  
327        Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);        // Skriv ikke 'Pakkeshop' overskrift hvis det er en shop2direkte
328        Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);        if (  PakkeshopLabel.PakkeshopNavn <> ''  ) then
329          begin
330            Canvas.TextOut(110, 240, 'Pakkeshop:');
331            Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);
332            Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);
333            Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);
334    
335          end;
336    
337    
338    
339        Canvas.TextOut(350, 240, 'Afsender:');        Canvas.TextOut(350, 240, 'Afsender:');
340        Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);        Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);
# Line 389  begin Line 429  begin
429      Result := p;      Result := p;
430  end;  end;
431    
432    // Online zpl viewer
433    // http://labelary.com/viewer.html
434    procedure TLabelPrint.TestZpl();
435    var
436      zpl: string;
437    begin
438      zpl :=
439    '^XA'#13#10 +
440    '^PON'#13#10 +
441    '^FWN'#13#10 +
442    
443    '^FX Top section with company logo, name and address.'#13#10 +
444    '^CF0,60'#13#10 +
445    '^FO50,50^GB100,100,100^FS'#13#10+
446    '^FO75,75^FR^GB100,100,100^FS'#13#10+
447    '^FO88,88^GB50,50,50^FS'#13#10+
448    '^FO220,50^FDInternational Shipping, Inc.^FS'#13#10+
449    '^CF0,40'#13#10+
450    '^FO220,100^FD1000 Shipping Lane^FS'#13#10+
451    '^FO220,135^FDShelbyville TN 38102^FS'#13#10+
452    '^FO220,170^FDUnited States (USA)^FS'#13#10+
453    '^FO50,250^GB700,1,3^FS'#13#10 +
454    '^XZ'#13#10
455      ;
456    
457      PrintZpl(zpl);
458    end;
459    
460    procedure TLabelPrint.PrintZPL( ZplData : string);
461    var
462      ADevice, ADeviceName, ADevicePort: array[0..255]of Char;
463      PrinterHandle: THandle;
464      DocInfo: TDocInfo1;
465      dwJob: cardinal;
466      dwBytesWritten: cardinal;
467      AUtf8: UTF8string;
468      ADeviceMode: THandle;
469    
470    begin
471    
472    
473      Printer.GetPrinter(ADevice, ADeviceName, ADevicePort, ADeviceMode);
474    
475        if not OpenPrinter(ADevice, PrinterHandle, nil) then
476        begin
477          Exit;
478          parentForm.Msg('error on openprinter');
479        end;
480    
481         //Fill in the structure with info about this "document"
482      DocInfo.pDocName := PChar('Spooler Document Name');
483      DocInfo.pOutputFile := nil;
484      DocInfo.pDatatype := 'RAW';
485    
486       //Inform the spooler the document is beginning
487      dwJob := StartDocPrinter(PrinterHandle, 1, @DocInfo);
488      if dwJob = 0 then
489      begin
490        ClosePrinter(PrinterHandle);
491        PrinterHandle := 0;
492        Exit;
493      end;
494    
495      //Start a page
496      if not StartPagePrinter(PrinterHandle) then
497      begin
498        EndDocPrinter(PrinterHandle);
499        ClosePrinter(PrinterHandle);
500        PrinterHandle := 0;
501        Exit;
502      end;
503    
504      //your zebra code...
505      AUtf8 := UTF8string(ZplData);
506      WritePrinter(PrinterHandle, @AUtf8[1], Length(AUtf8), dwBytesWritten);
507    
508      //End the page
509      if not EndPagePrinter(PrinterHandle) then
510      begin
511        EndDocPrinter(PrinterHandle);
512        ClosePrinter(PrinterHandle);
513        PrinterHandle := 0;
514        Exit;
515      end;
516    
517      //Inform the spooler that the document is ending
518      if not EndDocPrinter(PrinterHandle) then
519      begin
520        ClosePrinter(PrinterHandle);
521        PrinterHandle := 0;
522        Exit;
523      end;
524    
525      //Tidy up the printer handle
526      ClosePrinter(PrinterHandle);
527      PrinterHandle := 0;
528    
529    end;
530    
531    
532  function TLabelPrint.GetPrinterCount() : Integer;  function TLabelPrint.GetPrinterCount() : Integer;
533  begin  begin

Legend:
Removed from v.2705  
changed lines
  Added in v.3077

  ViewVC Help
Powered by ViewVC 1.1.20