Bueno, en seguida pongo el codigo completo que estoy utilizando:
Código Delphi
[-]
Procedure imprimir(Prn: TPrinter);
var
bmp : TBitmap;
begin
with prn do
begin
BeginDoc;
canvas.pen.Width:=15;
canvas.Rectangle(40,40,3450,2430);
Canvas.Font.Name := 'Arial';
Canvas.Font.Color := clBlue;
Canvas.Font.Size := 22;
Canvas.TextOut(250, 250, 'CORRESPONDENCIA EL TIEMPO');
Canvas.Font.Color := clBlack;
Canvas.Font.Size := 15;
Canvas.TextOut(250, 650, 'Destino: ' + form3.DataSource1.DataSet.FieldByName('Ciudad Destino').AsString);
Canvas.TextOut(250, 850, 'Direccion: ' + form3.DataSource1.DataSet.FieldByName('Ruta').AsString);
Canvas.TextOut(250, 1050, 'Destinatario: ' +form3.DataSource1.DataSet.FieldByName('Nombre Destinatario').AsString);
Canvas.TextOut(250, 1550, 'Remitente: ' + form3.DataSource1.DataSet.FieldByName('Nombre Remitente').AsString);
Canvas.TextOut(250, 1750, 'Fecha envio: ' + form3.DataSource1.DataSet.FieldByName('Fecha').AsString);
Canvas.Font.Size := 30;
Canvas.Font.Name := 'Code128bWin';
Printer.Canvas.TextOut(2400, 2000,form3.DataSource1.DataSet.FieldByName('id').AsString);
newpage;
EndDoc;
end;
end;
procedure TForm3.Button1Click(Sender: TObject);
begin
u:=1;
If MessageDlg ('Desea imprimir la etiqueta para esta entrada?', mtConfirmation ,[mbyes,mbno],0) = mrYes Then
begin
if printdialog1.Execute then
begin
dbf2.Last;
try
while u <= StrToInt(contregedit.Text) do
begin
imprimir(Printer);
u:=u+1;
end;
finally
Printer.Free;
end;
end;
end;
end;
tambien tengo el problema que necesito imprimir varias paginas en el mismo documento, pero ya que enddoc; esta en el procedimiento solo se imprime de a una.
Mi intecion es que pueda utilizar el codigo del procedimiento en varias partes del programa sin tener que escribirlo de nuevo.