Ir ao topo

Tecnobyte

Logomarca da Tecnobyte
Contato por WhatsApp

WhatsApp

(69) 3421-6756

Contato por Telefone

(69) 3421-6756

(69) 3421-6757

Enviar mensagem

Enviar

mensagem

Contato por Facebook

Facebook

Atendimento de segunda a sexta, das 08h00 às 19h00 (horário de Brasília).

Delphi - Impressão

Como imprimir o texto de um TMemo diretamente para a impressora?

Banner
Inclua na seção uses: Printers
Para imprimir um campo memo (objeto TMemo) podemos usar 
diversos métodos. Um deles é acessar a impressora como se
fosse um arquivo. Para isto é necessário atribuir a impressora
a uma variável arquivo (AssignPrn), abrir o arquivo (ReWrite),
escrever nele (write e writeln) e finalmente fechar o 
arquivo (CloseFile). Talvez seja mais fácil entender o que 
estou dizendo estudando a rotina abaixo.

procedure ImprimirMemo(Memo: TMemo);
var
  I: integer;
  F: Text;
begin
  AssignPrn(F);
  Rewrite(F);
  try
    for I := 0 to Memo.Lines.Count -1 do
      WriteLn(F, Memo.Lines[I]);
  finally
    CloseFile(F);
  end;
end;

Para imprimir um memo com esta rotina basta chamá-la passando
como parâmetro o objeto TMemo. Exemplo:

ImprimirMemo(Memo1);

Observações

Este método está longe de ser perfeito, mas quebra um galho. Uma alternativa que oferece mais precisão na impressão é usar o Canvas do objeto Printer (Printer.Canvas), mas isto será alvo de outra dica. Outra alternativa bastante prática é usar os recursos de um gerador de relatórios (exemplo: QuickReport). Eu particularmente não sou fã do QuickReport!

O conteúdo desta página pode ajudar alguém? Compartilhe!