Boleto desktop

May 14, 2012 at 10:53 AM

Bom dia pessoal,

Estou usando a ultima versão disponibilizada, e fiz a minha aplicação da seguinte forma:

1) Coloquei um botão para gerar o boleto,

2) Coloquei um webbrowser no meu form, onde os boletos são visualizados,

3) Coloquei um botão com um printPreviewDialog  para imprimir o boleto.

4) O boleto é Visualizado e impresso.

Funciona muito bem, mas tem um detalhe que não consigo resolver, o tamanho do html de cada boleto, eu queria deixa-lo configurado do tamanho de um A4, 210 mm de largura e 297 mm de altura.

Alguem sabe como resolver, ou onde tenho que configurar para que funcione desta forma?

Att.

Onério

 

 

 

Developer
May 15, 2012 at 10:47 PM

Olá Onério.

O lance é um pouco complexo, pois envolve várias situações mas acho que eu consegui resolver dessa forma:

Chame a função ConfiguraPaginaImpressaoBoleto(), logo após vc chamar o preview ou o webbrowser.navigate.  Essa função faz a configuração do browser, como vc normalmente faz no próprio IE...

 ''' <summary>Subrotina para configuração da impressão de boletos.</summary>   

Friend Sub ConfiguraPaginaImpressaoBoleto()
        Dim strREGKEY As String = "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\PageSetup"
        'Sem Header e sem Footer       

My.Computer.Registry.SetValue(strREGKEY, "header", "")       

My.Computer.Registry.SetValue(strREGKEY, "footer", "")
        'Configuração das margens de impressão para WEB       

'Para cálculo das medidas de impressão, converter milímetros em polegadas       

My.Computer.Registry.SetValue(strREGKEY, "margin_top", Replace(FormatNumber(CDbl(My.Settings.PRTMargemTop) * 0.03937, 5), ",", "."))        My.Computer.Registry.SetValue(strREGKEY, "margin_bottom", Replace(FormatNumber(CDbl(My.Settings.PRTMargemBottom) * 0.03937, 5), ",", "."))        My.Computer.Registry.SetValue(strREGKEY, "margin_left", Replace(FormatNumber(CDbl(My.Settings.PRTMargemLeft) * 0.03937, 5), ",", "."))        My.Computer.Registry.SetValue(strREGKEY, "margin_right", Replace(FormatNumber(CDbl(My.Settings.PRTMargemRight) * 0.03937, 5), ",", "."))        My.Computer.Registry.CurrentUser.Flush()       

My.Computer.Registry.CurrentUser.Close()
    End Sub

As variáveis ...PRTMargem.Top, Right e Bottom tem valor zero e Left é 20....que ficam visivelmente melhores.  Antes, no lugar do zero eram 10.

Obs.: Porque comentei que é complexo ? Porque, se vc setar o browser do IE, de uma forma e depois vc setar por este método acima, prevalece sempre o último, isto é, cada computador pode ter uma configuração diferente, dependendo do usuário.

Ah. e tem mais, se não me engano, configurei todas as impressoras (nas propriedades de impressora, preferências de impressão e avançado, padrões de impressão) para que só imprimissem em folha A4 e solicitei que nenhum usuário alterasse a modalidade.

Não sei se responde a sua dúvida. 

abraços,

May 16, 2012 at 12:02 PM

Bom dia, Jsoda,

 

Eu vou testar, se funcionar te informo, como eu vou fazer a configuração a cada impressão dos boletos e isto estará dentro do meu form, não vou me preocupar se alguem quiser imprimir alguma coisa pelo I.E. vai ter que configurar novamente.

 

Abraço, muito obrigado e eu retorno.

 

Onério

 

Developer
May 17, 2012 at 1:38 AM

Estamos às ordens...rs.

Abraços,