Ver Mensaje Individual
  #8  
Antiguo 06-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Lucas.

A ver si de este modo te resulta más sencillo:
Código Delphi [-]
...
uses Printers;

function LinesDown(ACanvas: TCanvas; const Lineas: Integer): Integer;
begin
  ACanvas.TextOut(Printer.PageWidth div 15, Lineas*Printer.PageHeight div 50,'');
  Result:= Lineas
end;

procedure PrintLineAt(ACanvas:TCanvas; const X: Integer; var Y: Integer;
  const Str: string);
begin
  ACanvas.TextOut(ACanvas.TextWidth('O')*X, Y* Printer.PageHeight div 50, Str);
  Inc(Y)
end;

procedure PrintLine(ACanvas: TCanvas; const X:Integer; var Y: Integer;
  const Str: string);
begin
  Acanvas.TextOut(X, Y * Printer.PageHeight div 50, Str);
  Inc(Y)
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  x, y: Integer;
  nLin: Integer;
  s: string;
begin
  with TPrinter.Create do
  try
    x := Printer.PageWidth div 15;
    y := Printer.PageHeight div 50;
    nLin:= 1;
    BeginDoc;
    Canvas.Font.Name:= 'Times new Roman';
    Canvas.Font.Color:= clBlack;
    Canvas.Font.Height:= Printer.PageHeight div 60;
    PrintLine(Canvas,(Printer.PageWidth-Canvas.TextWidth(s)) div 2, nLin, 'El titulo del documento');
    nLin:= LinesDown(Canvas, 3); // TRES LINEAS ABAJO
    PrintLine(Canvas, x, nLin, 'Fecha: '+Label10.Caption+'     Nº: '+  Label11.Caption);
    ClientDataSet.First;
    while not ClientDataSet.Eof do
    begin
      s:= ClientDataSet.FieldByName('Name').AsString +' '+
          ClientDataSet.FieldByName('Capital').AsString;
      PrintLine(Canvas,Printer.PageWidth div 15, nLin, s);
      ClientDataSet.Next;
    end;
    PrintLineAt(Canvas, 10, nLin, 'Total: '+ Edit3.Text);  // 10 A LA DERECHA
    PrintLine(Canvas, x, nLin,'ETIQUETA1: ' + Edit1.Text + '  ETIQUETA2: ' + Edit2.Text);
    EndDoc;
  finally
    Free;
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita