none
imprimir modo texto RRS feed

  • 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

    sábado, 12 de julho de 2008 20:34

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
    sábado, 19 de julho de 2008 05:00
  •  

    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!

    domingo, 20 de julho de 2008 15:16
  • 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 ;-)
    domingo, 20 de julho de 2008 17:05