componente TPrinterMatrix

e

componente TPrinterBobbin  (descendente de TPrinterMatrix)  

 

Desenvolvi estes componentes para meu uso próprio, mas como muitos usuários/programadores em Delphi também tem a necessidade de algo parecido com estes, resolvi colocá-los à disposição de todos que desejarem:

 

		
	Apresentação
	Propriedades e Funções do componente
	Compatibilidades e Garantias
	Custo (não tem! mas...)
	Como instalar o componente TPrinterMatrix no IDE do Delphi 
	TPrinterBobbin (este é novo)
	Download   tprintermatrix.zip   (só os componentes)
		dprintermatrix.zip   (os componentes + demonstração)
	contate-me pelo jnolasco@com4.com.br
 
autor: Jeferson Nolasco

 

 

 

 

 

 

 

               
		

 

 

Apresentação

 

 

Se você é um programador Delphi, sabe do problema de usar uma impressora Matricial com impressão em modo rápido (como no antigo DOS).  E é exatamente o que este componente faz, imprimir em modo rápido em impressoras matriciais diretamente para a porta (Lpt1, Lpt2...) sem usar a API do Windows, a impressão pode ser Local ou na Rede do Windows, se o seu caso for este último, é só você ir em Configurações de Impressoras do Windows e Capturar a Porta correspondente à sua impressora da rede que este componente irá funcionar normalmente como se a impressora fosse local. E tem mais, você pode escolher a letra (condensada, normal, expandida ou expandida+condensada), imprimir em Negrito, Alinhamento do Texto e até mesmo Acentuação entre outros.

Como fiz para o meu uso, coloquei somente três tipos de opções de "papel" (isto é somente para o componente saber qual a largura máxima de impressão), 1) Bobina com largura de 75mm,  2) Bobina com largura de 89mm  e   3) Papel tipo formulário continuo que tem a largura aproximada de 210mm, mas isto é coisa fácil de ser alterada no componente (poderia até mesmo ao invés de restringir o tipo de papel informar apenas a largura do mesmo em milímetros, não é mesmo?), aceito opiniões.

 

 

<volta para o início>

 

 

 

 

 

  

Propriedades e Funções do componente

 

 

O componente TPrinterMatrix é fácil de usar, aliás, você não precisará fazer quase nada para já começar a imprimir. Veja aqui as Propriedades que você poderá alterar, as Funções disponíveis, os Eventos que são gerados pelo componente TPrinterMatrix, as Enumerações e as Propriedades Protegidas "somente leitura".

        Enumerações:

  1. TPorts = (LPT1, LPT2, LPT3, LPT4, LPT5);
  2. TFontType = (ftCondensed,ftSingle,ftMiddle,ftExpand);
  3. TAlignment = (taLeft,taCenter,taRight);
  4. TPaper = (paBobbin75,paBobbin89,paLetter);

        Eventos:

  1. TTerminateEvent = procedure( Sender: TObject ) of object;    => este evento é gerado quando o TPrinterMatrix "fecha" a Porta da impressora.
  2. TStartedEvent = procedure( Sender: TObject; Port: String) of object;   => este evento é gerado quando o TPrinterMatrix "abre" a Porta da impressora, é enviado como parâmetro a Porta que foi aberta.
  3. TErrorEvent = procedure( Sender: TObject; MessageError: String ) of object;  => este evento é gerado quando algum erro é detectado em TPrinterMatrix e é enviado a Mensagem do Erro ocorrido.

        Funções/Procedures:

  1. function Start: Boolean;  (Inicializa "abre" a porta da impressora e retorna False se não conseguir abrir a porta)
  2. function PrinterOnLine(Porta: TPorts): Boolean;  (Verifica se a impressora está respondendo através da porta informada no parâmetro)
  3. procedure Terminate; (Finaliza a impressão)
  4. procedure Print(Text: String; Column: Byte=0; NextLine: Boolean=true);  (Imprime o Texto na Coluna informada, esta coluna só será considerada pelo TPrinterMatrix se o Alinhamento for igual a taLeft. O NextLine indica se é para avançar uma linha após a impressão.)
  5. procedure Eject; ("Ejeta" uma página, esta procedure não faz muito sentido se você estiver usando "bobinas")
  6. procedure Line; (Avança um linha)

        Propriedades:

  1. Port:  => A porta "Lpt1, Lpt2..." que será utilizada na impressão.
  2. FontType: => Tipo da Letra, que poderá ser:  Condensada, Normal, Expandida ou Expandida+Condensada.
  3. Alignment: => Como o Texto será impresso, se for igual a taLeft, então TPrinterMatrix irá verificar qual a "Coluna" que você especificou no parâmetro da chamada à procedure Print, ou irá imprimir no Centro caso Alignment for igual a taCenter ou na Direita caso seja igual a taRight.
  4. AdvanceLines: Normalmente, após a impressão, para "facilitar a vida" do usuário costumamos avançar a "bobina" em algumas linhas, isto é para posicioná-la de modo que o usuário possa destacar/cortá-la sem a necessidade de intervenção manual nos botões da impressora. Então é só você informar a quantidade de linhas que é para avançar ao final da impressão nesta propriedade.
  5. Paper: Aqui é o tipo de papel que você irá imprimir, que poderá ser: 1) Bobina com largura de 75mm,   2) Bobina com largura de 89mm  ou  3) Formulário contínuo que tem aproximadamente 210mm.  Isto pode não ser muito bom, pois estamos restringindo o uso deste componente à apenas estes três "tipos de papel", e o componente TPrinterMatrix usa esta propriedade apenas para "saber" qual a largura máxima que poderá imprimir, então, poderíamos ao invés de informar o "tipo de papel" informar a "largura do papel" em milímetros, não é mesmo ?  ;-)    ...aceito opiniões...
  6. Bold: Independente do tipo da letra "FontType", você poderá imprimir em Negrito, é só informar True nesta propriedade.

                    
        
        Propriedades (somente leitura)

  1. Printing:  Se o componente TPrinterMatrix estiver em modo de "imprimindo" esta propriedade será True.
  2. MaxColumns: Esta propriedade informa a quantidade máxima de caracteres que poderá ser impresso, isto depende dos valores que forão definidos nas propriedades FontType e Paper.
  3. PortStr: É a porta da impressora que está definida em TPrinterMatrix.

 

 

<volta para o início>

 

 

 

 

 

 

 

Compatibilidades e Garantias

 

 

Compatibilidade com as versões do Delphi 1,2,3 e 4 eu não sei, pois só testei no Delphi 5. Se você usar TPrinterMatrix em alguma destas outras versões, informe-me se teve sucesso ou não, eu agradeço.  ;-)

Garantias:  Não dou nenhuma garantia de que este componente irá funcionar sem problemas em sua(s) máquina(s), use-o com o seu próprio risco. :-(

 

 

<volta para o início>

 

 

 

 

 

 

 

  Custo (não tem! mas...)

 

          

Vou disponibilizar o código fonte do componente TPrinterMatrix à qualquer colega da área (ou não) gratuitamente (sem custo algum), mas as únicas exigências que faço são as seguintes:

  1. Distribua-o livremente, mas completo incluindo este arquivo "ReadMe.htm";
  2. Deixe o meu "Royalts" (os meus dados)  no código fonte, pois afinal, foi eu que fiquei aqui sentado, três dias "direto", com dor nas costas, ao invés de me divertir, etc, etc, etc.   É claro que se você fizer alguma alteração poderá incluir o seu nome também!  Ha, e não esqueça de me enviar as alterações que você fez, ok? :-)
  3. e por último, mande-me através de e-mail, os dados de duas Farmácias ou Drogarias de sua região para que eu possa entrar em contato com os responsáveis (os dados são: e-mail (se tiver), telefone, cidade, nome da Farmácia/Drogaria e nome de quem eu devo entrar em contato).   -  Você acha isso estranho?  não é não!  é que estou em fase final do meu projeto "Orpheu" que é um completo sistema voltado para esta área de atuação comercial, e estou precisando divulgá-lo. Se você tiver alguma dica, sugestão ou quiser propor algum tipo de parceria, entre em contato comigo que estarei "aberto" à negociações...

 

 

<volta para o início>

 

 

 

 

 

 

Como instalar o componente TPrinterMatrix no IDE do Delphi 5 

 

 

Para instalar o componente TPrinterMatrix no Delphi 5, proceda:

  1. Descompacte o arquivo zipado que você baixou em seu HD;
  2. Execute o Delphi, escolha as opções File / Open e selecione o arquivo Free.dpk que está no diretório que você descompactou o arquivo zipado e em seguida pressione Install, só isso! procure uma nova paleta do Delphi com o nome de FreeUtils.

 

 

<volta para o início>

 

 

 

 

 

 

 

 

 

 

 

 

TPrinterBobbin

 

 

Como já disse aí em cima, o componente TPrinterMatrix fiz para meu uso pessoal, e em seguida desenvolvi um outro chamado TPrinterBobbin que é descendente do TPrinterMatrix e em consequência disto, herda todas as propriedades e funções de seu descendente. As diferenças são novos Registros de Dados e novas Procedures voltadas diretamente para a impressão de bobinas, veja:

Dois Registros:

TEmpresa = record                             ( neste você coloca os dados que serão impresso no topo da bobina )
      Nome: String;
      Endereco: String;
      Cidade_UF_Cep: String;
      Cnpj: String;
      Ie: String;
      email: String;
      Telefone: String;
end;


TRodape = record                             ( neste você coloca os dados que serão impresso no final da bobina )
      Mensagem: array[1..10] of string[60];       ( até 10 Linhas de mensagens ) 
      Autor: String[60];
end;

 

Duas Funções/Procedure

function PrintTop(DadosEmpresa: TEmpresa; Title,Subtitle: String): boolean;
procedure PrintBottom(Dados: TRodape);

( acho que aqui podemos dispensar os comentários...)

 

Obs.:  Tudo o que você já viu para o componente TPrinterMatrix (apresentação, propriedades, compatibilidades, e outros) serve também para este. Aliás, quando você instalar o TPrinterMatrix este também será instalado e ficará a sua disposição na paleta do Delphi.


<volta para o início>