Impressão com TPrinter

Delphi

06/02/2003

Olá pessoal,
estopu imprimindo um .bmp e depois o conteudo de um RichEdit,
usando o TPrinter, o problema é se eu altero a fonte de determinada parte do
conteudo do RichEdit, na hora de
imprimir sai tudo com a mesma fonte, ou seja preciso imprimir com
a fonte igual está no RichEdit,
segue abaixo a rotina de impresão,
desde já agradeço,

Procedure TMainForm.PrintDoc(Texto: TRichEdit; Titulo: String);
var
ScaleX, ScaleY: Integer;
R: TRect;
i, e, altura : Integer;
sMemo : String;
begin
Printer.BeginDoc;
with Printer do
try
Title := Titulo;
ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
R := Rect(Image1.Left * ScaleX, Image1.Top, (Image1.Picture.Width *
ScaleX) + (Image1.Left * ScaleX), (Image1.Picture.Height * ScaleY) +
Image1.Top);
Canvas.StretchDraw(R, Image1.Picture.Graphic);
Altura := Image1.Picture.Height * ScaleY;
With Canvas do
begin
e := 2; //Imprimir 2 linhas abixo da imagem.
for i := 0 to Texto.Lines.Count - 1 do
begin
e := e+1;
sMemo := Texto.Lines[I];
TextOut(1, (e*(TextHeight(sMemo))) + Altura, sMemo);
end;
end;
finally
EndDoc;

end;
end;


Anonymous

Anonymous

Curtidas 0

Respostas

Pinetlux

Pinetlux

06/02/2003

Sua dúvida é bastante comum, e não sei como ninguém respondeu até agora.

Pelo que me parece, você está jogando cada linha do seu RichEdit dentro de uma string. Ao fazer isto, você perde a formatação.

sMemo := Texto.Lines[I]; // não aconselhado

Utilize o método Print encapsulado no componente RichEdit e mande o conteúdo todo de uma vez para a impressora:

RichText1.Print(varTituloDocumento);

Se seu BMP é um tipo de cabeçalho ou marca dágua, verifique a possibilidade de manter papeis já timbrados para impressão.

Espero que funcione.


GOSTEI 0
POSTAR