Fórum Impressao direto para impressora #262790
20/12/2004
0
Preciso fazer um programa para imprimir valores em folha de cheque que vem em formularios continuos, entao vai ter la
_____________________________________________________________
3.567,97
TRES MIL E QUINHENTOS E SESSENTA E SETE REAIS E NOVENTA E SETE
CENTAVOS
JOAO DA SILVA
SAO PAULO, 20 DE DEZEMBRO DE 2004
_____________________________________________________________
So que tem um problema caso o extenso do valor for maior que uma linha tem que ter uma divisao do extenso para a segunda linha e tbm essa medida tem que ser exata, e pelos testes que fiz nao adianta so pular uma linha, as vezes tem que pular uma linha e um pouquinho para chegar na medida da linha de baixo. Se alguem tiver alguma function que de para ajustar a impressao com detalhes em medidas me avise !!! Acho que enviando direto para a impressora fica mais facil que fazer por componente visual tipo report builder etc...
Peterks
Peterks
Curtir tópico
+ 0Posts
20/12/2004
Dopi
geralmente cheques usam espaçamento de 1/8 ou 7/72 e nao 1/6 que é o padrão das Impressoras
Pode ser que ajude...
O componente ACBrCHQ do projeto ACBr (Free e Multiplataforma) pode imprimir cheques nas Impressoras Chronos, Shalter, Bematech, e também em matriciais comuns...
O arquivo ACBrCHQImpressoraComum.pas faz todo o trabalho de impressão de Cheques em Impressoras matriciais, pode servir de subsidio para a sua rotina...
Gostei + 0
20/12/2004
Peterks
Email astalavista13@bol.com.br
Obrigado pela dica.. !!!
Gostei + 0
20/12/2004
Vinicius2k
Se vc já pesquisou, já deve ter visto, mas se não, dê uma olhada no VDOPrint em http://devres.freeprohost.com
Ele não é específico para trabalhar com cheques como os do colega Dopi, mas é capaz de fazer a interface da sua aplicação diretamente com impressoras, matriciais ou InkJet / Laser.
Dentre as opções de espaçamento existe 1/8 que pode solucionar seu problema de salto.
No fórum do site existe uma modificação feita por um dos usuários adicionando a opção de espaçamento de 7/72. Esta opção não está implementada no componente por não ser aceito em todos os modelos de impressoras.
Se o pacote como um todo não lhe servir, como ele também é Open Source, vc pode analisar o código e aproveitar o que lhe interessar...
É apenas uma opção a mais, apesar de achar provável que os componentes do colega Dopi sejam mais apropriados para seu caso...
T+
Gostei + 0
20/12/2004
Dopi
Download em http://acbr.sourceforge.net
Gostei + 0
20/12/2004
Dopi
Vinicius, há alguma possibilidade do VDOPrint ser Multiplaforma e rodar tb no Kylix ? Vc usa alguma chamada direta a API do Windows ?
Gostei + 0
20/12/2004
Peterks
Obrigado mesmo.. Valeu
Gostei + 0
20/12/2004
Vinicius2k
Talvez seja possível, mas eu, realmente não saberia lhe responder... Eu não trabalho, e nunca trabalhei com CLX no Delphi e nem sequer vi a IDE do Kylix até hoje... Meus projetos são direcionados, exclusivamente, para a plataforma Windows por pressão de mercado, infelizmente.
Como desconheço o ambiente, eu até ´travei´ as procedures Register para só deixarem o pacote disponível em aplicações VCL.
Sim. Eu faço chamadas ´indiretas´ à API do Windows que não sei se estariam disponíveis no Kylx. Digo indiretas, pq uso a unit WinSpool como intermediária.
Eu tenho duas classes básicas no pacote :
A TVDOCaPrinter que utilizo para interface com impressoras Inkjet/Laser ou até mesmo matriciais, via driver do Windows. Nesta classe uso internamente o objeto TPrinter da unit Printers que creio poder ser facilmente substituível pela QPrinters (apenas creio, não tenho certeza pelos motivos que expliquei acima)
A TVDODmPrinter já uma implementação inteira e totalmente voltada para as matriciais. Nesta classe também utilizo a unit Printers, mas apenas para dar algumas funcionalidades a mais no componente, como, por exemplo, obter a lista de impressoras instaladas, etc. Eu poderia deixar de utilizar a unit Printers, mas achei desncessário reescrever as implementações que ela possui, como no exemplo de lista de impressoras, a função [i:954fca6088]EnumPrinters[/i:954fca6088] da API.
Mas é nesta classe, como um todo, que pode haver maior dificuldade... Nela trabalho diretamente com a API através das funções da unit WinSpool, não sei se esta unit teria correspondência para CLX. Os documentos são escritos diretamente diretamente na impressora, como faria um driver, e através do Spool, mas o documento é aberto em modo RAW, o que permite a velocidade e ao mesmo tempo a facilidade de liberar a aplicação rapidamente, além de poder ser utilizado com impressoras de rede, sem necessidade de mapear portas.
Faço uso das seguintes funções da API :
function AbortPrinter; external winspl name ´AbortPrinter´; function ClosePrinter; external winspl name ´ClosePrinter´; function EndDocPrinter; external winspl name ´EndDocPrinter´; function EndPagePrinter; external winspl name ´EndPagePrinter´; function OpenPrinter; external winspl name ´OpenPrinterA´; function StartDocPrinter; external winspl name ´StartDocPrinterA´; function StartPagePrinter; external winspl name ´StartPagePrinter´; function WritePrinter; external winspl name ´WritePrinter´;
Faço uso também da definição de tipo [b:954fca6088]TDocInfo1[/b:954fca6088]
Será que é possível transformar o pacote em cross-plataform? Se vc puder, dê uma olhada no código fonte... Confesso que fiquei curioso agora..
T+
Gostei + 0
21/12/2004
Vinicius2k
Colega,
O ACBr é um pacote inteiro para automação comercial... o que o Dopi quis dizer é o pacote tem um componente -- [b:3af6466e2d]ACBrCHQ[/b:3af6466e2d] -- que pode solucionar seu problema, mas que se não solucionar, dentro do pacote existe uma unit que pode lhe embasar para a criação da sua rotina de impressão de cheques -- [b:3af6466e2d]ACBrCHQImpressoraComum.pas[/b:3af6466e2d] --.
Vc deve baixar o pacote, instalar, verificar se o ACBrCHQ lhe atende. Se não atenter, vc deve estudar a unit indicada para implementar sua própria rotina. :wink:
T+
Gostei + 0
21/12/2004
Dopi
Ola Peterks,
esse link vai leva-lo direto para a pagina de Download do arquivo ACBr Ver 0.07a.
http://prdownloads.sourceforge.net/acbr/ACBr-0.07a.ZIP?download
Como o Vinicius disse, o ACBr é um conjunto de componentes voltados para facilitar a interação com diversos equipamentos de automação comercial, conforme consta na Pagina principal do projeto...
Se vc quiser ver o componente ACBrCHQ ´trabalhando´ sem a necessidade de instala-lo, rode o executável CHQTeste.exe que consta no ZIP DemosWin32_0.07a.zip que vem dentro do pacote do ACBr...
Gostei + 0
21/12/2004
Dopi
Ola Vinicius...
Muito obrigado pelas informaçoes detalhadas...
No ACBr tive a necessidade de implementar uma mini classe para acesso direto a Impressoras matriciais Seriais / Paralelas (TACBrDevice)... Mas fiz algo muito simples apenas para suprir as necessidades dos componentes ACBrCHQ e ACBrECF, que emulam em impressoras matriciais convencionais, o funcionamento do Hardware em correspondente...
Acho que um componentes completo para Impressão direta é importante para qq programador de Automaçao Comercial, seja para emissão de NF ou outros formulários continuos... Mas como a Multiplataforma é um dos principais objetivos do projeto, eu precisava que ele fosse compativel com a CLX.
Vou estudar os componentes VDOPrint e verificar a possibilidade de porta-lo pra CLX... Muito obrigado pela ajuda...
Gostei + 0
22/12/2004
Vinicius2k
Blz !
Qualquer dúvida, estou à disposição por e-mail ou no fórum do meu site. :wink:
Sucesso !
T+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)