Inquiridor
imprimir modo texto

Pergunta
-
boa tarde pessoal!!!
to precisando de alguma fonte para imprimir no modo texto, em impressoras matriciais. eu tenho um código para vb6, tentei fazer a conversão e alguns ajustes mas num funcionou n.
achei aki alguns tópicos mas ñ consegui fazer funcionar no visual 2005.
alguém pode me ajudar?
obrigado a todos
Todas as Respostas
-
Isto é um pouco mais complicado do que parece...
.Net só suporta impressão para drivers, não para dispositivos. Isso significa que o .Net apenas manda informações suficientes para o driver da impressora literalmente desenhar a página. No VB6 você conseguia acesso direto ao contexto do dispositivo, permitindo assim imprimir diretamente para a porta usando PRN ou LPT...
A solução mais fácil, porém a menos confiável, é inserir uma impressora do tipo Generic - Text Only e imprimir para ela. Isso vai imprimir em modo texto para a impressora que estiver na porta especificada.
Outra alternativa é compilar uma DLL que esteja funcionando no VB6 como OCX e usá-la em .Net (isso implica em registrar esta DLL no COM, o que não é lá muito agradável).
A solução mais confiável é programar diretamente o subsistema do Windows para impressão (winspool.drv), cujo exemplo está aqui:
http://support.microsoft.com/?scid=kb;EN-US;322090 -
bom, uma coisa mto interessante q eu fiz aki foi o seguinte:
eu tenho todo o código em vb6 q funciona perfeitamente. então eu escrevi todo esse código apenas num módulo, sem formulário nem nada. então, quando meu cliente emitir uma notinha, no final quando ele mandar imprimir essa notinha, o sistema simplesmente chamará um .exe q nada mais é um módulo (sub main) e o sistema começará imprimir essa notinha exatamente do jeito q eu preciso.
bom, agr, se tiver como transformar esse código todo, em apenas uma ocx, ou um dll para poder colocar no .net, talvez seria interessante tbm.
mas a princípio num to querendo isso mais ñ, já q tá funcinando perfeitamente.
agr, o q eh exatamente registrar dll no com? essa parte ñ entendi mto bem.
obrigado pela ajuda!
-
OCX, ou COM, é um sistema antigo da Microsoft para a criação de componentes.
É um sistema falho em diversos pontos, por vários motivos que não vem ao caso agora... Porém é muito utilizado em diversas áreas.
Pode-se pensar em COM como um plug-in do IE ou do FireFox. É uma DLL em um formato específico que você coloca em qualquer lugar na sua máquina e ser chamado por um nome (por exemplo: Dim X = CreateObject("Excel.Application").
Por ser tratada como um nome ou um código GUID e a DLL poder estar em qualquer lugar, é necessário registrar a DLL no registro do Windows.
Isso é feito usando a linha de comando
C:\Windows\System32\RegSvr32 Nome.OCX ou Nome.DLL
Isso vai pegar algumas informações da DLL e jogar no registro, assim, você poderá depois instanciar ela em VB com CreateObject("NomeComponente").
Ela também irá aparecer na lista de componentes COM (as referências do VB 6 ou as referências COM do .Net)
É basicamente o GAC do .net, porém com uns probleminhas a mais, especialmente com controle de versão (por isso o GAC foi inventado).
O VB6 é capaz de criar COM facilmente e, uma vez registrado, você poderá usar este componente em qualquer lugar.
Para maiores detalhes sobre COM:
http://www.microsoft.com/com/default.mspx
Caso a(s) resposta(s) tenha(m) sido útil(s), não esqueça de marcá-las como tal ;-)