/[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 3047 by torben, Mon Jun 13 08:54:20 2016 UTC revision 3094 by torben, Fri Aug 19 14:35:39 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 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 : TLabelData);
24        procedure PrintFuldPakkeLabelLille( PakkeshopLabel : TLabelData);
25        procedure PrintFuldPakkeLabelStor( PakkeshopLabel : TLabelData);
26    
27    
28      procedure PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn : String) ;      procedure PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn : String) ;
29    
# Line 47  uses Line 52  uses
52    WinSpool,    WinSpool,
53    Windows,    Windows,
54    SysUtils, //Format    SysUtils, //Format
55    Math, // DegToRad() bruges i PrintPakkeshopLabel    Math, // DegToRad() bruges i PrinTLabelData
56    Forms    Forms,
57      IdHTTP,
58      Graphics
59    ;    ;
60    
61    
# Line 110  begin Line 117  begin
117    with Printer do    with Printer do
118        begin        begin
119          BeginDoc;          BeginDoc;
120    
121          Canvas.Font.Size := Config.FontSizeRute;          Canvas.Font.Size := Config.FontSizeRute;
122          if (Length(RuteNummer) > 7) then          if (Length(RuteNummer) > 7) then
123          begin          begin
# Line 131  begin Line 139  begin
139          Canvas.TextOut(Config.XPosBoghandler, Config.YPosBoghandler, BoghandlerNavn);          Canvas.TextOut(Config.XPosBoghandler, Config.YPosBoghandler, BoghandlerNavn);
140          EndDoc;          EndDoc;
141        end;        end;
142    
143    
144    
145      Printers.SetPrinter( TPrinter.Create() ).Free();//Work around for KB3177725
146    
147  end;  end;
148    
149    
# Line 222  begin Line 235  begin
235          ClosePrinter(hPrinter);          ClosePrinter(hPrinter);
236      end;      end;
237    end;    end;
238    
239    
240      Printers.SetPrinter( TPrinter.Create() ).Free();//Work around for KB3177725
241    
242  end;  end;
243    
244    
245    procedure TLabelPrint.PrintLabel( Stregkode : String);
246    var
247      url: String;
248      response: String;
249    
250      httpClient: TIdHTTP;
251    
252    
253    
254    begin
255    
256      url := Format(Config.URLPrintLabel, [Stregkode] );
257    
258      httpClient := TIdHTTP.Create();
259      httpClient.ReadTimeout := 1000;//max 1 secound
260      httpClient.ConnectTimeout := 1000;
261    
262      response := httpClient.Get(url);
263      httpClient.Free();
264    
265    
266    
267    
268    end;
269    
270  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 = '');
271  begin  begin
272      with Printer do      with Printer do
# Line 265  begin Line 307  begin
307    
308        EndDoc;        EndDoc;
309      end;      end;
310    
311    
312        Printers.SetPrinter( TPrinter.Create() ).Free();//Work around for KB3177725
313    
314  end;  end;
315    
316    
317    procedure TLabelPrint.PrintFuldPakkeLabel( PakkeshopLabel : TLabelData);
318    begin
319      if (Config.LabelStor = 1) then
320      begin
321        PrintFuldPakkeLabelStor(  PakkeshopLabel );
322    
323      end
324      else
325      begin
326        PrintFuldPakkeLabelLille(  PakkeshopLabel );
327    
328      end;
329    
330  // ToDo: PrintPakkeshopLabel()  end;
331  procedure TLabelPrint.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);  
332    // Bruges til label der passer til 60x100
333    procedure TLabelPrint.PrintFuldPakkeLabelLille( PakkeshopLabel : TLabelData);
334  var  var
335    XForm, XFormOld: TXForm; //Bruges til rotate X-formation    XForm, XFormOld: TXForm; //Bruges til rotate X-formation
336    Angle: integer;    Angle: integer;
# Line 297  begin Line 357  begin
357    
358    
359        // Skriv ikke 'Pakkeshop' overskrift hvis det er en shop2direkte        // Skriv ikke 'Pakkeshop' overskrift hvis det er en shop2direkte
360        if (  (PakkeshopLabel.Shop2Direkte = '') OR (PakkeshopLabel.Shop2Direkte = '0')  ) then        if (  PakkeshopLabel.PakkeshopNavn <> ''  ) then
361        begin        begin
362          Canvas.TextOut(110, 240, 'Pakkeshop:');          Canvas.TextOut(110, 240, 'Pakkeshop:');
363            Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);
364            Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);
365            Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);
366    
367        end;        end;
368    
369    
       Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);  
       Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);  
       Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);  
370    
371        Canvas.TextOut(350, 240, 'Afsender:');        Canvas.TextOut(350, 240, 'Afsender:');
372        Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);        Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);
# Line 387  begin Line 448  begin
448      end;      end;
449    
450    
451      Printers.SetPrinter( TPrinter.Create() ).Free();//Work around for KB3177725
452    
453  end;  end;
454    
455    
456    // Bruges til label der passer til 100x150
457    procedure TLabelPrint.PrintFuldPakkeLabelStor( PakkeshopLabel : TLabelData);
458    var
459      XForm, XFormOld: TXForm; //Bruges til rotate X-formation
460      Angle: integer;
461      gMode: integer;
462      Dirigering: string;
463      BarcodeRect : TRect;
464    
465    begin
466        with Printer do
467        begin
468          BeginDoc();
469    
470    
471    
472          Canvas.Font.Style := [TFontStyle.fsBold];
473          Canvas.Font.Size := 16;
474          Canvas.TextOut(25,25, 'Code: ' + PakkeshopLabel.Tjekkode + '           '  + PakkeshopLabel.Overskrift);
475    
476    
477    
478          Canvas.TextOut(80, 220, PakkeshopLabel.Navn );
479          Canvas.TextOut(80, 270, PakkeshopLabel.Vejnavn );
480          Canvas.TextOut(80, 320, PakkeshopLabel.Postnr );
481    
482    
483          Canvas.Font.Size := 9;
484    
485    
486          // Skriv ikke 'Pakkeshop' overskrift hvis det er en shop2direkte
487          if (  PakkeshopLabel.PakkeshopNavn <> ''  ) then
488          begin
489            Canvas.TextOut(170, 460, 'Pakkeshop:');
490            Canvas.TextOut(170, 490, PakkeshopLabel.PakkeshopNavn);
491            Canvas.TextOut(170, 520, PakkeshopLabel.PakkeshopAddr);
492            Canvas.TextOut(170, 550, PakkeshopLabel.PakkeshopPostnr);
493    
494          end;
495    
496    
497    
498          Canvas.TextOut(550, 460, 'Afsender:');
499          Canvas.TextOut(550, 490, PakkeshopLabel.AfsenderNavn);
500          Canvas.TextOut(550, 520, PakkeshopLabel.AfsenderAdresse);
501          Canvas.TextOut(550, 550, PakkeshopLabel.AfsenderPostnr);
502    
503          Dirigering := PakkeshopLabel.PakkeshopSted + ' | ' + PakkeshopLabel.PakkeshopTurid + ' | ' + PakkeshopLabel.PakkeshopNr;
504          if ( PakkeshopLabel.Koreliste <> '') then
505          begin
506            Dirigering := Dirigering + ' > ' + PakkeshopLabel.Koreliste;
507          end;
508    
509    
510          Canvas.Font.Size := 12;
511          Canvas.TextOut(40, 680, Dirigering);
512    
513    
514    
515    
516    
517          //Tegn adskillelses linier
518          Canvas.Pen.Width := 2;
519          //Øverste linie
520          Canvas.MoveTo( 40, 180);
521          Canvas.LineTo(900, 180);
522    
523          // Midterste linie
524          Canvas.MoveTo( 40, 440);
525          Canvas.LineTo(900, 440);
526    
527          //Nederste linie
528          Canvas.MoveTo( 40, 640);
529          Canvas.LineTo(900, 640);
530    
531    
532          //Tegn skrå streger over afsender
533          Canvas.Pen.Width := 1;
534          Canvas.MoveTo(840, 450);
535          Canvas.LineTo(540, 590);
536          Canvas.MoveTo(840, 590);
537          Canvas.LineTo(540, 450);
538    
539    
540    
541          // Resten af rutinen vedr genering og placering af Barcode
542    
543          Barcode.Font.Size := 9;
544          Barcode.BarToSpaceRatio := 0.9;
545    
546    
547          BarCode.BarCodeType := bcCode128;
548          BarCode.Code128Subset := csCodeC;
549          BarCode.Code := PakkeshopLabel.Stregkode;
550          BarCode.Validate(True);
551    
552    
553    //      parentForm.Msg(       inttostr(            Barcode.Font.Size) );//Default 8
554    //      parentForm.Msg(       Double.ToString(      Barcode.BarNarrowToWideRatio) );//Default 2
555    //      parentForm.Msg(       Double.ToString(      Barcode.BarToSpaceRatio) );//Default 1
556    //      parentForm.Msg(  Double.ToString(BarCode.Width ) );//default 200
557    
558    
559          //Start X-formation
560          //ShowMessage( Format('%d %d', [PageWidth, PageHeight]) );
561          GetWorldTransform(Canvas.Handle, XFormOld);
562    
563          Angle := 270;
564          XForm.eM11 := Cos(DegToRad(Angle));
565          XForm.eM12 := Sin(DegToRad(Angle));
566          XForm.eM21 := -Sin(DegToRad(Angle));
567          XForm.eM22 := Cos(DegToRad(Angle));
568          XForm.eDx := 0;
569          XForm.eDy := 0;
570    
571          gMode := SetGraphicsMode(Canvas.Handle, GM_ADVANCED);
572          SetWorldTransform(Canvas.Handle, XForm);
573    
574          // PaintToCanvasSize arbejder i Inches
575          // Første pos argument bliver nu Y og skal være negativ for at rykke den ned
576          //Anden pos er X og skal være positiv for at justere ind fra venstre mod højre
577    
578          BarCode.PaintToCanvasSize(Printer.Canvas, -2.7, 4.8, 0.5);
579    
580    
581    
582    
583          SetWorldTransform(Canvas.Handle, XFormOld);
584          SetGraphicsMode(Canvas.Handle, gMode);
585    
586          EndDoc();
587        end;
588    
589    
590      Printers.SetPrinter( TPrinter.Create() ).Free();//Work around for KB3177725
591    end;
592    
593  function TLabelPrint.SavePChar(p: PChar): PChar;  function TLabelPrint.SavePChar(p: PChar): PChar;
594  const  const
595    error: PChar = 'Nil';    error: PChar = 'Nil';

Legend:
Removed from v.3047  
changed lines
  Added in v.3094

  ViewVC Help
Powered by ViewVC 1.1.20