/[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 3088 by torben, Mon Aug 15 15:56:50 2016 UTC revision 3128 by torben, Thu Oct 20 06:02:09 2016 UTC
# Line 4  interface Line 4  interface
4    
5  uses  uses
6    ParentForm,    ParentForm,
7    PakkeshopLabels,    LabelData,
8    Configuration,    Configuration,
9    StBarc;    StBarc;
10    
# Line 18  type Line 18  type
18    
19      procedure PrintLabel( Stregkode : String);      procedure PrintLabel( Stregkode : String);
20    
     procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  
21    
22      procedure PrintFuldPakkeLabel( PakkeshopLabel : TPakkeshopLabel);      procedure PrintTestLabel();
     procedure PrintFuldPakkeLabelLille( PakkeshopLabel : TPakkeshopLabel);  
     procedure PrintFuldPakkeLabelStor( PakkeshopLabel : TPakkeshopLabel);  
23    
24        // PrintLabelData bliver brugt til PrinterTest
25        // og blicer derfor nødt til at være Public
26    
     procedure PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn : String) ;  
27    
     procedure TestZpl();  
     procedure PrintZPL( ZplData : string);  
28    
29      function GetPrinterCount() : Integer;      function GetPrinterCount() : Integer;
30    
31    
32    
33    private    private
34      parentForm : IParentForm;      parentForm : IParentForm;
35      Barcode : TStBarcode;      Barcode : TStBarcode;
36      var Config: TConfiguration;      var Config: TConfiguration;
37    
38    
39        procedure PrintZPL( ZplData : string);
40    
41        procedure PrintLabelData( LabelData : TLabelData);
42        procedure PrintSimpelLabel( LabelData : TLabelData) ;
43    
44        procedure PrintFuldPakkeLabel( PakkeshopLabel : TLabelData);
45        procedure PrintFuldPakkeLabelLille( PakkeshopLabel : TLabelData);
46        procedure PrintFuldPakkeLabelStor( PakkeshopLabel : TLabelData);
47    
48        procedure SendTilPrinter_old(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');
49        procedure PrintDaodirekteLabel_old( RuteNummer, Kommentar, BoghandlerNavn : String) ;
50    
51    
52    
53      function SavePChar(p: PChar): PChar;      function SavePChar(p: PChar): PChar;
54      function GetCurrentPrinterHandle(): THandle;      function GetCurrentPrinterHandle(): THandle;
55    
# Line 52  uses Line 64  uses
64    WinSpool,    WinSpool,
65    Windows,    Windows,
66    SysUtils, //Format    SysUtils, //Format
67    Math, // DegToRad() bruges i PrintPakkeshopLabel    Math, // DegToRad() bruges i PrinTLabelData
68    Forms,    Forms,
69    IdHTTP,    IdHTTP,
70    Graphics    Graphics,
71      XMLDoc
72    ;    ;
73    
74    
# Line 112  begin Line 125  begin
125  end;  end;
126    
127    
128  procedure TLabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn : String) ;  procedure TLabelPrint.PrintDaodirekteLabel_old( RuteNummer, Kommentar, BoghandlerNavn : String) ;
129  begin  begin
130    with Printer do    with Printer do
131        begin        begin
# Line 163  begin Line 176  begin
176  //            'Test'  skal vise alarmlinie, samt opdatere listbox1  //            'Test'  skal vise alarmlinie, samt opdatere listbox1
177  //            'Timer' skal kun vise alarmlinie  //            'Timer' skal kun vise alarmlinie
178    
179    if (PrinterNavn = 'Ingen') and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then  //  if (PrinterNavn = 'Ingen') and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then
180    begin  //  begin
181    //
182      parentForm.LogMessage( 'Der er fravalgt printer i dette program' );  //    parentForm.LogMessage( 'Der er fravalgt printer i dette program' );
183    end  //  end
184    else if (Printer.Printers.Count = 0) and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then  //  else
185      if (Printer.Printers.Count = 0) and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then
186    begin    begin
187      parentForm.LogMessage( 'Der er ikke installeret en printer på denne PC' );      parentForm.LogMessage( 'Der er ikke installeret en printer på denne PC' );
188    end    end
# Line 249  var Line 263  var
263    
264    httpClient: TIdHTTP;    httpClient: TIdHTTP;
265    
266      XMLDocument1: TXMLDocument;
267    
268      LabelData: TLabelData;
269    
270    
271  begin  begin
# Line 263  begin Line 280  begin
280    httpClient.Free();    httpClient.Free();
281    
282    
283      XMLDocument1 := parentForm.GetXMLDocument();
284    
285      XMLDocument1.LoadFromXML(response);
286    
287      LabelData := TLabelData.Create(XMLDocument1);
288      PrintLabelData(LabelData);
289      LabelData.Free();
290    
291    
292  end;  end;
293    
294  procedure TLabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  procedure TLabelPrint.PrintTestLabel();
295    var
296      LabelData : TLabelData;
297    begin
298      LabelData := TLabelData.Create(nil);
299      LabelData.LabelType := 'simpel';
300      LabelData.SimpelLinie1 := 'Test Label';
301      LabelData.SimpelLinie2 := 'Test Label';
302      LabelData.SimpelLinie3 := 'Test Label';
303    
304      PrintLabelData(Labeldata);
305    
306      LabelData.Free();
307    end;
308    
309    procedure TLabelPrint.PrintLabelData( LabelData : TLabelData);
310    begin
311      if LabelData.LabelType = 'zpl' then
312      begin
313        PrintZPL(LabelData.ZPL);
314      end
315      else if (LabelData.LabelType = 'simpel') then
316      begin
317        PrintSimpelLabel(LabelData);
318      end
319      else
320      begin
321        PrintFuldPakkeLabel(LabelData);
322      end;
323    end;
324    
325    
326    
327    procedure TLabelPrint.SendTilPrinter_old(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');
328  begin  begin
329      with Printer do      with Printer do
330      begin      begin
# Line 314  begin Line 371  begin
371  end;  end;
372    
373    
374  procedure TLabelPrint.PrintFuldPakkeLabel( PakkeshopLabel : TPakkeshopLabel);  procedure TLabelPrint.PrintFuldPakkeLabel( PakkeshopLabel : TLabelData);
375  begin  begin
376    PrintFuldPakkeLabelStor(  PakkeshopLabel );    if (Config.LabelStor = 1) then
377      begin
378        PrintFuldPakkeLabelStor(  PakkeshopLabel );
379    
380      end
381      else
382      begin
383        PrintFuldPakkeLabelLille(  PakkeshopLabel );
384    
385      end;
386    
387  end;  end;
388    
389  // Bruges til label der passer til 60x100  // Bruges til label der passer til 60x100
390  procedure TLabelPrint.PrintFuldPakkeLabelLille( PakkeshopLabel : TPakkeshopLabel);  procedure TLabelPrint.PrintFuldPakkeLabelLille( PakkeshopLabel : TLabelData);
391  var  var
392    XForm, XFormOld: TXForm; //Bruges til rotate X-formation    XForm, XFormOld: TXForm; //Bruges til rotate X-formation
393    Angle: integer;    Angle: integer;
# Line 334  begin Line 400  begin
400        BeginDoc();        BeginDoc();
401    
402    
403        Canvas.Font.Size := 16;        Canvas.Font.Size := 15;
404        Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + '     '  + PakkeshopLabel.Overskrift);        Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + '     '  + PakkeshopLabel.Overskrift);
405    
406    
407    
408        Canvas.TextOut(25, 90, PakkeshopLabel.Navn );        Canvas.TextOut(25, 90, PakkeshopLabel.Navn );
409        Canvas.TextOut(25, 135, PakkeshopLabel.Vejnavn );        Canvas.TextOut(25, 140, PakkeshopLabel.Vejnavn );
410        Canvas.TextOut(25, 180, PakkeshopLabel.Postnr );        Canvas.TextOut(25, 190, PakkeshopLabel.Postnr );
411    
412    
413        Canvas.Font.Size := 9;        Canvas.Font.Size := 9;
# Line 445  end; Line 511  end;
511    
512    
513  // Bruges til label der passer til 100x150  // Bruges til label der passer til 100x150
514  procedure TLabelPrint.PrintFuldPakkeLabelStor( PakkeshopLabel : TPakkeshopLabel);  procedure TLabelPrint.PrintFuldPakkeLabelStor( PakkeshopLabel : TLabelData);
515  var  var
516    XForm, XFormOld: TXForm; //Bruges til rotate X-formation    XForm, XFormOld: TXForm; //Bruges til rotate X-formation
517    Angle: integer;    Angle: integer;
# Line 592  begin Line 658  begin
658  end;  end;
659    
660  // Online zpl viewer  // 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  
   ;  
661    
   PrintZpl(zpl);  
 end;  
662    
663  procedure TLabelPrint.PrintZPL( ZplData : string);  procedure TLabelPrint.PrintZPL( ZplData : string);
664  var  var
# Line 690  begin Line 731  begin
731    
732  end;  end;
733    
734    procedure TLabelPrint.PrintSimpelLabel( LabelData : TLabelData) ;
735    begin
736      with Printer do
737          begin
738            BeginDoc;
739    
740            Canvas.Font.Size := 20;
741            Canvas.TextOut(10, 20, LabelData.SimpelLinie1);
742            Canvas.TextOut(10, 120, LabelData.SimpelLinie2);
743            Canvas.TextOut(10, 220, LabelData.SimpelLinie3);
744    
745            EndDoc;
746          end;
747    
748    
749    
750      Printers.SetPrinter( TPrinter.Create() ).Free();//Work around for KB3177725
751    
752    end;
753    
754    
755    
756  function TLabelPrint.GetPrinterCount() : Integer;  function TLabelPrint.GetPrinterCount() : Integer;
757  begin  begin

Legend:
Removed from v.3088  
changed lines
  Added in v.3128

  ViewVC Help
Powered by ViewVC 1.1.20