Fórum imprimir direto para impressora matricial #212812

10/02/2004

0

Estou enviando direto para matricial com os seguintes comandos:

var
Prt : TAdvancedPrinter; // Declaração do objeto


//aqui vão os comandos...
Prt := TAdvancedPrinter.Create;
Prt.Language := lngEPFX;
Prt.OpenDoc(´Cupom Fiscal´);
Prt.SendData(#2767100); //numero de linhas (100)
Prt.Write(´linha a imprimir´);

Quero comprimir a impressão, então mando o comando:
Prt.Write(15+´teste de comprimido´+18); para impressora, só que ela
simplesmente ignora, imprimi do mesmo jeito ´Normal´ e não comprime, uso
impressora EPSON LX-300

Alguém tem alguma luz?

Obrigada,
Debora


Debora

Debora

Responder

Posts

10/02/2004

Sremulador

Amiga debora, você poderia usar o fortes reporter que e o melhor gerador de ralatórios para impressoras matriciais :D


Responder

Gostei + 0

12/02/2004

Thomaz_prg

Débora, tente enviar desta forma:

Prt.Write(#2715+´teste de comprimido´...

é que dependendo da impressora, ela necessita de um caracter de controle de configuração, e pode estar sendo este seu caso.


Responder

Gostei + 0

13/02/2004

Allen74

Olá Débora.

Vejo que você está utilizando a biblioteca que criei para enviar trabalhos de impressão direto para o spool do windows para impressoras matriciais em modo caractere. Como você está utilizando a classe TAdvancedPrinter, você não precisa enviar escape codes para formatação do texto.

Para definir o tamanho da fonte, basta você alterar a seguinte propriedade antes de enviar o texto:

Prt.FontSize := pfs5cpi;

que colocaria a impressora com fontes de 5cpi, correspondente ao modo de 40 colunas no caso da LX-300. Os valores possíveis são:

pfs5cpi (5 caracteres por polegada)
pfs10cpi, pfs12cpi, pfs17cpi, pfs20cpi.

Para saber quantas colunas de texto você terá para cada tamanho de fonte, basta multiplicar o tamanho do formulário em polegadas pela quantidade de caracteres por polegada de cada constante. Para um formulário contínuo de 80 colunas, que tem 8 polegadas, o modo pfs12cpi te permitirá um máximo de 96 colunas de texto.

Você também pode alterar o estilo do texto combinando as constantes psBold, psItalic e psUnderline com a propriedade TextStyle do TAdvancedPrinter. Por exemplo:
Prt.TextStyle := []; // texto normal nada de negrito, sublinhado ou itálico
Prt.TextStyel := [psBold, psUnderline]; // texto em negrito e sublinhado

Todo texto enviado através do método SendData() ou Write() obedecerá à ultima formatação enviada para a impressora pelas propriedades que acabei de explicar.

Para o TAdvancedPrinter também criei alguns métodos adicionais que auxiliam muito na formatação de seu relatório. São eles:

[b:5007a80443]procedure CR;[/b:5007a80443] - Retorno de carro (Carriage Return), retorna o carro da impressora para o início da linha sem pular para a próxima linha.

[b:5007a80443]procedure LF; overload;[/b:5007a80443] - Avanço de linha (Line Feed), avança uma linha.

[b:5007a80443]procedure LF (Lines : integer);[/b:5007a80443] - Avança uma determinada quantidade de linhas especificadas como parâmetro.

[b:5007a80443]procedure CRLF;[/b:5007a80443] - Avanço de linha e retorno de carro combinados, quando você quer pular para o início da próxima linha.

[b:5007a80443]procedure FF;[/b:5007a80443] - Avanço de formulário (Form Feed), pula para a próxima página;

[b:5007a80443]procedure Write (txt : string);[/b:5007a80443] - Envia um texto qualquer para a impressora;

[b:5007a80443]procedure WriteLeft (txt, fill : string; size : integer);[/b:5007a80443] - Envia um texto alinhado à esquerda, com tamanho fixo (size). Se o tamanho do texto for menor que size, os caracters restantes à direita serão preenchidos com a repetição da string fill.

[b:5007a80443]procedure WriteRight (txt, fill : string; size : integer);[/b:5007a80443] - Funcionamento semelhante ao método anterior, com a diferença de que o alinhamento é realizado à direita. Ideal para formatar colunas de valores numéricos.

[b:5007a80443]procedure WriteCenter(txt, fill : string; size : integer);[/b:5007a80443] - Semelhante aos dois anteriores, mas centralizando o texto.

[b:5007a80443]procedure WriteRepeat(txt : string; quant : integer);[/b:5007a80443] - envia para a impressora uma repetição da string informada no parâmetro txt limitada pelo tamanho informado no parâmetro quant.

Espero que estes esclarecimentos te auxiliem. Uma observação final: com o envio do comando (#2767100) você está informando para a impressora que sua página terá 100 linhas. Isso não quer dizer que caberão 100 linhas em uma folha do formulário contínuo, ok?


Responder

Gostei + 0

23/07/2015

Leonardo Alice

Boa tarde.
Estou com uma dúvida relacionada à classe TAdvancedPrinter e registrei essa dúvida no post do link abaixo:
https://www.devmedia.com.br/forum/impressao-com-tadvancedprinter-sempre-comeca-com-zero/526635

Se alguém puder me ajudar, ficarei grato!

Obrigado!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar