VDOPrint acentuação
Pessoal, estou usando o VDOPrint para meus relatorios e estou muito satisfeito, a não ser por um detalhe.
Não estou conseguindo fazer a acentuação sair impressa.
Exemplo: Notificação sai Notificacao
Estou usando uma Epson FX-1170
Att
Não estou conseguindo fazer a acentuação sair impressa.
Exemplo: Notificação sai Notificacao
Estou usando uma Epson FX-1170
Att
Armando.boza
Curtidas 0
Respostas
Vinicius2k
16/12/2005
Olá Armando !
Não é bug, eu o fiz para não imprimir acentuação, realmente. :)
O texto é ´limpo´ antes de ser enviado à impressora para maximizar a compatibilidade com os diferentes modelos de impressoras matriciais.
Se desejar, altere o código fonte desta forma:
1. Abra a unit [b:5ec5aab5a4]VDODmPrinter.pas[/b:5ec5aab5a4] (´raiz\src´).
2. Localize o método [b:5ec5aab5a4]Print[/b:5ec5aab5a4] (procedure TVDODmPrinter.Print).
3. Comente a linha:
Deixando-a desta forma:
4. Salve a unit, abra e recompile o pacote (´raiz\packages\delphiX\VDOPrint.dpk´).
Qualquer dúvida, estou à disposição.
T+
Não é bug, eu o fiz para não imprimir acentuação, realmente. :)
O texto é ´limpo´ antes de ser enviado à impressora para maximizar a compatibilidade com os diferentes modelos de impressoras matriciais.
Se desejar, altere o código fonte desta forma:
1. Abra a unit [b:5ec5aab5a4]VDODmPrinter.pas[/b:5ec5aab5a4] (´raiz\src´).
2. Localize o método [b:5ec5aab5a4]Print[/b:5ec5aab5a4] (procedure TVDODmPrinter.Print).
3. Comente a linha:
Text := CleanText(Text);
Deixando-a desta forma:
// Text := CleanText(Text);
4. Salve a unit, abra e recompile o pacote (´raiz\packages\delphiX\VDOPrint.dpk´).
Qualquer dúvida, estou à disposição.
T+
GOSTEI 0
Armando.boza
16/12/2005
Olá Armando !
Não é bug, eu o fiz para não imprimir acentuação, realmente. :)
O texto é ´limpo´ antes de ser enviado à impressora para maximizar a compatibilidade com os diferentes modelos de impressoras matriciais.
Se desejar, altere o código fonte desta forma:
1. Abra a unit [b:d9c6201423]VDODmPrinter.pas[/b:d9c6201423] (´raiz\src´).
2. Localize o método [b:d9c6201423]Print[/b:d9c6201423] (procedure TVDODmPrinter.Print).
3. Comente a linha:
Deixando-a desta forma:
4. Salve a unit, abra e recompile o pacote (´raiz\packages\delphiX\VDOPrint.dpk´).
Qualquer dúvida, estou à disposição.
T+
Text := CleanText(Text);
// Text := CleanText(Text);
Muito obrigado...
Vou fazer as alterações.
Estou muito satisfeito com o componente, parabéns.
GOSTEI 0
Dopi
16/12/2005
Ola Vinicius,
Gostaria de dar uma sugestão... Seria interessante ter uma propriedade no Componente que ativasse ou não esse filtro de caracteres acentuados...
Acredito que os caracteres acentuados são filtrados devido o motivo de várias impressoras ´se perderem´ quando tentam imprimir alguns deles...
Bom, se for esse o motivo, me lembrei de uma ´técnica´ muito muito antiga, que eu usava quando o Editor de Textos da moda era o WordStar... :)
Para imprimir todos os acentos corretamente, usavamos o comando BackSpace da Impressora, chr(8) (praticamente todas matriciais aceitam) e ´montamos´ o caracter acentuado... Exemplo:
O problema dessa ´ténica´ é que a impressora da um solavanco a cada acento impresso, pois ela Imprime a letra, volta o carro e imprime o acento...
Gostaria de dar uma sugestão... Seria interessante ter uma propriedade no Componente que ativasse ou não esse filtro de caracteres acentuados...
Acredito que os caracteres acentuados são filtrados devido o motivo de várias impressoras ´se perderem´ quando tentam imprimir alguns deles...
Bom, se for esse o motivo, me lembrei de uma ´técnica´ muito muito antiga, que eu usava quando o Editor de Textos da moda era o WordStar... :)
Para imprimir todos os acentos corretamente, usavamos o comando BackSpace da Impressora, chr(8) (praticamente todas matriciais aceitam) e ´montamos´ o caracter acentuado... Exemplo:
´Á´ seria substituido por ´A´ + #8 + ´´´
O problema dessa ´ténica´ é que a impressora da um solavanco a cada acento impresso, pois ela Imprime a letra, volta o carro e imprime o acento...
GOSTEI 0
Vinicius2k
16/12/2005
Olá Daniel !
Sugestão aceita. Realmente, fui arbitrário neste ponto. Esta imposição foi devida a minha própria forma de trabalhar, forma onde impeço até mesmo o cadastramento em BDs utilizando caracteres especiais ou acentos.
Exatamente por isto. Alguns modelos, principalmente os mais antigos, não trabalham bem com acentos e cedilha. Ou não imprimem nada ou imprimem um caracter estranho.
Eu não conhecia esta técnica, mas vou implementar um meio termo. Já ´visualizei´ o problema do solavanco, então, vou criar duas novas proprieades: uma para definir se o usuário deseja ou não os caracteres acentuados e outra aonde ele pode escolher um modo de compatibilidade para estes caracteres caso tenha algum problema com impressoras antigas.
O que vocês acham? Vocês são usuários do VDOPrint como eu sou, então, podem manifestar opinião à vontade ! ;)
Daniel, você conhece os caracteres de controle para as RIMA? Há pouco tempo um usuário me reclamou são conseguir imprimir corretamente e gostaria, se possível, adicionar também o suporte as RIMA nesta nova versão.
Outra coisa: alguém pode criar um package qualquer (pode ser vazio mesmo) para o Delphi 2005 e me enviar e se dispor também a testar o VDOPrint nesta versão do Delphi? Eu não comprei o Delphi 2005 e não sei se a estrutura do package (VCL) foi mudada...
T+
Gostaria de dar uma sugestão... Seria interessante ter uma propriedade no Componente que ativasse ou não esse filtro de caracteres acentuados...
Sugestão aceita. Realmente, fui arbitrário neste ponto. Esta imposição foi devida a minha própria forma de trabalhar, forma onde impeço até mesmo o cadastramento em BDs utilizando caracteres especiais ou acentos.
Acredito que os caracteres acentuados são filtrados devido o motivo de várias impressoras ´se perderem´ quando tentam imprimir alguns deles...
Exatamente por isto. Alguns modelos, principalmente os mais antigos, não trabalham bem com acentos e cedilha. Ou não imprimem nada ou imprimem um caracter estranho.
Para imprimir todos os acentos corretamente, usavamos o comando BackSpace da Impressora, chr(8) (praticamente todas matriciais aceitam) e ´montamos´ o caracter acentuado... Exemplo:
O problema dessa ´ténica´ é que a impressora da um solavanco a cada acento impresso, pois ela Imprime a letra, volta o carro e imprime o acento...
´Á´ seria substituido por ´A´ + #8 + ´´´
Eu não conhecia esta técnica, mas vou implementar um meio termo. Já ´visualizei´ o problema do solavanco, então, vou criar duas novas proprieades: uma para definir se o usuário deseja ou não os caracteres acentuados e outra aonde ele pode escolher um modo de compatibilidade para estes caracteres caso tenha algum problema com impressoras antigas.
O que vocês acham? Vocês são usuários do VDOPrint como eu sou, então, podem manifestar opinião à vontade ! ;)
Daniel, você conhece os caracteres de controle para as RIMA? Há pouco tempo um usuário me reclamou são conseguir imprimir corretamente e gostaria, se possível, adicionar também o suporte as RIMA nesta nova versão.
Outra coisa: alguém pode criar um package qualquer (pode ser vazio mesmo) para o Delphi 2005 e me enviar e se dispor também a testar o VDOPrint nesta versão do Delphi? Eu não comprei o Delphi 2005 e não sei se a estrutura do package (VCL) foi mudada...
T+
GOSTEI 0
Eniorm
16/12/2005
[b:2cae7351c9]E a opção Transliterate ??? [/b:2cae7351c9]
e pra sair corretamente acentuado a impressora deve estar configurada pra suportar os caracteres acentuados...
abraço
e pra sair corretamente acentuado a impressora deve estar configurada pra suportar os caracteres acentuados...
abraço
GOSTEI 0
Dopi
16/12/2005
Vinicius,
Acho que é possível fazer toda a configuração com apenas uma propriedade... Exemplo:
Explicando:
aceNaoInterferir -> Envia os caracteres da maneira que eles chegaram
aceNenhumAcento-> Limpa os acentos
aceBackSpace -> Usa a técnica do BackSpace para imprimir os acentos
aceDuasLinhas -> Imprime a linha em dois passos. No primeiro passo, imprime a linha toda com as letras sem os acentos... Depois disso, manda apenas um retorno de carro (CR) ou #13.. e Imprima na mesma linha os acentos nas posições corretas...
Observe que lembrei de uma nova ´técnica´ :) que também era usada na época do WordStar, porém sem provocar vários ´solavancos´... Isso é muito útil quando o texto tem vários acentos na mesma linha...
Acho que são são os mesmos códigos das primeiras EPSONs... Os código que conheço estão [url=http://forum.clubedelphi.net/viewtopic.php?t=58409]nesse post[/url]... Acho que a RIMA não aceita todos os comandos começados com ESC... Mas afinal quem ainda tem esse dinossauro ? :)
Já tive relatos de usuários que instalaram o ACBr no Delphi 2005... e eu nunca preparei um package específico para essa versão... Acho que ele abre bem o package do D7
Olá Daniel !
Eu não conhecia esta técnica, mas vou implementar um meio termo. Já ´visualizei´ o problema do solavanco, então, vou criar duas novas proprieades: uma para definir se o usuário deseja ou não os caracteres acentuados e outra aonde ele pode escolher um modo de compatibilidade para estes caracteres caso tenha algum problema com impressoras antigas.
Acho que é possível fazer toda a configuração com apenas uma propriedade... Exemplo:
TVDOPrintAcentuacao = (aceNaoInterferir, aceNenhumAcento, aceBackSpace, aceDuasLinhas)
Explicando:
aceNaoInterferir -> Envia os caracteres da maneira que eles chegaram
aceNenhumAcento-> Limpa os acentos
aceBackSpace -> Usa a técnica do BackSpace para imprimir os acentos
aceDuasLinhas -> Imprime a linha em dois passos. No primeiro passo, imprime a linha toda com as letras sem os acentos... Depois disso, manda apenas um retorno de carro (CR) ou #13.. e Imprima na mesma linha os acentos nas posições corretas...
Observe que lembrei de uma nova ´técnica´ :) que também era usada na época do WordStar, porém sem provocar vários ´solavancos´... Isso é muito útil quando o texto tem vários acentos na mesma linha...
Olá Daniel !
Daniel, você conhece os caracteres de controle para as RIMA? Há pouco tempo um usuário me reclamou são conseguir imprimir corretamente e gostaria, se possível, adicionar também o suporte as RIMA nesta nova versão.
Acho que são são os mesmos códigos das primeiras EPSONs... Os código que conheço estão [url=http://forum.clubedelphi.net/viewtopic.php?t=58409]nesse post[/url]... Acho que a RIMA não aceita todos os comandos começados com ESC... Mas afinal quem ainda tem esse dinossauro ? :)
Outra coisa: alguém pode criar um package qualquer (pode ser vazio mesmo) para o Delphi 2005 e me enviar e se dispor também a testar o VDOPrint nesta versão do Delphi? Eu não comprei o Delphi 2005 e não sei se a estrutura do package (VCL) foi mudada...
Já tive relatos de usuários que instalaram o ACBr no Delphi 2005... e eu nunca preparei um package específico para essa versão... Acho que ele abre bem o package do D7
GOSTEI 0
Dopi
16/12/2005
Não sei se ajuda... mas lembrei que certa vez tinha achado na NET um arquivo .DBF com códigos para vários modelos de impressoras... Segue o Link
http://www.the-oasis.net/files/general/prnfile.zip
http://www.the-oasis.net/files/general/prnfile.zip
GOSTEI 0
Vinicius2k
16/12/2005
Daniel,
Pois é. :)
Acabei percebendo isto antes de ler seu post. Mas valeu a dica. Só não tinha pensado a 4ª forma. Esta 4ª alternativa, já me parece mais difícil de implementar devido a forma com que o VDOPrint trabalha, bufferizando a linha toda antes de enviá-la para a impressora. Vou ter que pensar com cuidado sobre isto...
[quote:1e453ad24f=´Sobre RIMA, Dopi´]Acho que são são os mesmos códigos das primeiras EPSONs... Os código que conheço estão [url=http://forum.clubedelphi.net/viewtopic.php?t=58409]nesse post[/url]... Acho que a RIMA não aceita todos os comandos começados com ESC... Mas afinal quem ainda tem esse dinossauro ? :)[/quote:1e453ad24f]
Acho que pouca gente, mas ainda existe. Pode acreditar :)
Que bom. Eu ainda não tive nenhum feedback sobre isto com o VDOPrint. Enquanto isto, vou deixar desta forma, mas nos próximos meses devo adquirir o Delphi 2006, então a compatibilidade do VDOPrint irá aumentar.
Acho que é possível fazer toda a configuração com apenas uma propriedade... Exemplo:
Explicando:
aceNaoInterferir -> Envia os caracteres da maneira que eles chegaram
aceNenhumAcento-> Limpa os acentos
aceBackSpace -> Usa a técnica do BackSpace para imprimir os acentos
aceDuasLinhas -> Imprime a linha em dois passos. No primeiro passo, imprime a linha toda com as letras sem os acentos... Depois disso, manda apenas um retorno de carro (CR) ou #13.. e Imprima na mesma linha os acentos nas posições corretas...
TVDOPrintAcentuacao = (aceNaoInterferir, aceNenhumAcento, aceBackSpace, aceDuasLinhas)
Pois é. :)
Acabei percebendo isto antes de ler seu post. Mas valeu a dica. Só não tinha pensado a 4ª forma. Esta 4ª alternativa, já me parece mais difícil de implementar devido a forma com que o VDOPrint trabalha, bufferizando a linha toda antes de enviá-la para a impressora. Vou ter que pensar com cuidado sobre isto...
[quote:1e453ad24f=´Sobre RIMA, Dopi´]Acho que são são os mesmos códigos das primeiras EPSONs... Os código que conheço estão [url=http://forum.clubedelphi.net/viewtopic.php?t=58409]nesse post[/url]... Acho que a RIMA não aceita todos os comandos começados com ESC... Mas afinal quem ainda tem esse dinossauro ? :)[/quote:1e453ad24f]
Acho que pouca gente, mas ainda existe. Pode acreditar :)
Já tive relatos de usuários que instalaram o ACBr no Delphi 2005... e eu nunca preparei um package específico para essa versão... Acho que ele abre bem o package do D7
Que bom. Eu ainda não tive nenhum feedback sobre isto com o VDOPrint. Enquanto isto, vou deixar desta forma, mas nos próximos meses devo adquirir o Delphi 2006, então a compatibilidade do VDOPrint irá aumentar.
GOSTEI 0