usar a dll num projeto desktop

Sep 27, 2010 at 3:38 PM

Opa..

tenho um sistema csharp que funciona em windows forms... consigo utilizar a boleto.net? fazer as impressões dos meus boletos pela minha aplicação, mesmo não sendo web?

 

vlw!!!

Developer
Sep 28, 2010 at 12:19 PM

Bom dia, huggentobler,

Com certeza.  Tenho uma aplicação em VB.net que está funcionando bem.  Basta você utilizar o controle webbrowser.  Abraços, Jorge.

Sep 29, 2010 at 1:38 PM
Edited Sep 29, 2010 at 2:07 PM

jsoda, como vc consegue rodar uma página Asp -- com boleto.net -- no WebBrowser se páginas Asp precisam estar hospendadas num IIS? Até entendo rodar no WebBrowser um html local, mas Asp? Eu ainda tentei, mas não consegui, pra mostrar que você não é falastrão -- ihihi -- por favor, explica melhor como se implementa tua metodologia faixa preta.... te pago um almoço até!

PS: lembrando que o objetivo original da pergunta é de alguma forma usar o Boleto.Net em uma aplicação desktop -- Wpf App, Win Forms App -- logo, deve poder rodar off-line, sem requerer webserver, pois não se pode exigir dos clientes webserver só pra gerar boleto...

Developer
Sep 29, 2010 at 3:10 PM
Edited Sep 29, 2010 at 3:11 PM

Olá Cleber.

Fiquei até chateado com você...rs.

Sim, entendi perfeitamente o objetivo original desta pergunta, mas eu não rodo página ASP.

Mesmo porque eu tenho um Windows Forms, VB.net que desenvolvi, desde o ano passado.  O controle WEBBROWSER, se estiver on-line, acessa as páginas de internet/intranet, como outro browser qualquer, certo.  Mas ele serve também para visualizar arquivos texto, xml, html, etc, não é ?  Pois então, o que o aplicativo DESKTOP deve fazer é só gerar o arquivo HTML e postar no controle.  Simples assim:

WebBrowser.Navigate("C:\boletos\Boleto_cliente_aaaammdd.html")

Pode mandar o almoço em $$ para minha conta...rs.

Abraços.

Sep 29, 2010 at 7:02 PM

Blza jsoda,

> o que o aplicativo DESKTOP deve fazer é só gerar o arquivo HTML

Aí é que está minha dúvida, pois o que não parece possível é um WinFormsApplication executar o Boleto.Net para obter o tal HTML, pois como eu também disse, abrir um html com o WebBrowser é realmente simples. Mas eis a limitação em que estou "travando":

- não é possível adicionar o assemply "System.Web" ou mesmo "System.Web.UI" às References do meu projeto WinFormsApplication, e ainda, mesmo conseguindo adicionar o assemply "Boleto.Net", o Visual Studio não permite, em um WinForm, adicionar "using BoletoNet;", nem o Intellisense reconhece, nem compila;

- mesmo que fosse possível referenciar, como o Asp.Net do BoletoNet poderia ser executado num WinFormsApplication sem ter um Application Server pra renderizar o boleto e devolver o html que queremos?

Você poderia dizer como conseguiu renderizar aspx para html na sua WinFormsApplication, não precisa ser agora, caso esteja mto atucanado...

 

Developer
Sep 29, 2010 at 8:44 PM

Olá Cleber.

Acho que você está equivocado.  Quando você coloca um controle WebBrowser, automaticamente, o VS coloca a referência System.Web (isso se já não estiver lá).

Não sei como é desenvolver WinFormsApp no C#, porém, eu faço isso em um projeto VB.  Existem algumas limitações entre as linguagens, mas duvido muito que a Microsoft não tenha colocado essa facilidade no C#.  Eis o resumo geral do que eu faço:

1)  Imports BoletoNet no form que eu gero a imagem do boleto;

2) Carrego algumas variáveis que o BoletoNet vai precisar (cedente, agencia, conta, instruções, datas);

3) Executo uma rotina :

Private Sub GeraLayout(ByVal objLISTBOLETOS As List(Of BoletoBancario))

        Dim strHTML As New StringBuilder()
        For Each objBOLETO As BoletoBancario In objLISTBOLETOS
            strHTML.Append(objBOLETO.MontaHtml())
        Next

        strARQUIVO = Path.GetTempFileName()

        Using objFILESTREAM As New FileStream(strARQUIVO, FileMode.Create)
            Dim objWRITER As New StreamWriter(objFILESTREAM, Encoding.[Default])
            objWRITER.Write(strHTML.ToString())
            objWRITER.Close()
            objFILESTREAM.Close()
        End Using

    End Sub

4)  WebBrowser.Navigate(strARQUIVO).

Só isso !

Espero que tenha ajudado.

Mais um almoço !  Desse jeito vou ficar a semana toda almoçando na faixa...rs.

Abraços.

Sep 30, 2010 at 1:33 PM

> Só isso !

cara, num é não...

> Acho que você está equivocado.  Quando você coloca um controle WebBrowser, automaticamente, o VS coloca a referência System.Web (isso se já não estiver lá).

isso só ocorre numa AspNetApp, nas outras não, porque o WebBrowser pra uso em app desktop, não é um web control, é descendente de Windows.Forms.Control, então não, System.Web não é referenciado automaticamente pq não é referenciavel em uma aplicação desktop... com isso todo o teu exemplo, que é simples, nem compila... só se for numa AspNetApp...

TÓPICO FECHADO.

Developer
Sep 30, 2010 at 4:16 PM

Ok, Cleber.

Não vou discutir com você. Desculpe minha ignorância a respeito de como as coisas acontecem no C#, não sou expert nessa linguagem, nem tampouco em VB.net.  Você entrou na conversa contrariando um fato.  Estou aqui para tentar procurar respostas e ajudar com minha experiência.  De qualquer forma, na Home do projeto existe uma referência de 2 pessoas que fizeram o BoletoNet funcionar em Windows Forms.  Peguei os exemplos deles e fiz funcionar aqui também.

Abraços.

Oct 8, 2010 at 8:14 PM
Edited Oct 8, 2010 at 8:15 PM

Senhores, pra simplificar as coisas:

 

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim txtVencimento = New DateTime(2009, 3, 6).ToString("dd/MM/yyyy")
        Dim txtValorBoleto = "656,40"
        Dim txtNumeroDocumentoBoleto = "B20005446"

        'Cedente
        Dim txtCodigoCedente As String = "0806498"
        Dim txtNossoNumeroBoleto As String = "000003332007"
        Dim txtCPFCNPJ As String = "59.323.998/0001-08"
        Dim txtNomeCedente As String = "Uniabc"
        Dim txtAgenciaCendente As String = "432"
        Dim txtContaCedente As String = "0806498"

        'Sacado
        Dim txtCPFCNPJSacado As String = "000.000.000-00"
        Dim txtNomeSacado As String = "Fulado da Silva Cicrano"
        Dim txtEnderecoSacado As String = "Rua Sem Fim"
        Dim txtBairroSacado As String = "Sei não, moço!"
        Dim txtCidadeSacado As String = "Terra do Nunca"
        Dim txtCEPSacado As String = "12345-000"
        Dim txtUFSacado As String = "CA"

        '###############################################################################################

        Dim c = New Cedente(txtCPFCNPJ, txtNomeCedente, txtAgenciaCendente, txtContaCedente)

        c.Codigo = CInt(txtCodigoCedente)

        Dim b = New Boleto(CDate(txtVencimento), CDbl(txtValorBoleto), "102", txtNossoNumeroBoleto, c)

        b.NumeroDocumento = txtNumeroDocumentoBoleto

        b.Sacado = New Sacado(txtCPFCNPJSacado, txtNomeSacado)
        b.Sacado.Endereco.End = txtEnderecoSacado
        b.Sacado.Endereco.Bairro = txtBairroSacado
        b.Sacado.Endereco.Cidade = txtCidadeSacado
        b.Sacado.Endereco.CEP = txtCEPSacado
        b.Sacado.Endereco.UF = txtUFSacado

        Dim i As New Instrucao_Santander()
        i.Descricao = "Não Receber após o vencimento"
        b.Instrucoes.Add(i)

        b.EspecieDocumento = New EspecieDocumento_Santander(17)

        Dim bb As New BoletoBancario()
        bb.CodigoBanco = 33
        bb.Boleto = b
        bb.MostrarCodigoCarteira = True
        bb.Boleto.Valida()

        bb.MostrarComprovanteEntrega = False

        WebBrowser1.DocumentText = bb.MontaHtml()
    End Sub

 

 

Não esqueçam de adicionar as sequintes referências:

 - System.Web

 - BoletoNet

 

Utilizei como base um exemplo do próprio fórum. Somente joguei o conteúdo do HTML no WebBrowser1.DocumentText.

Abraços e boa sorte!

Developer
Oct 8, 2010 at 10:03 PM

Grande !!!  da_villa.

Abraços.

Dec 11, 2010 at 6:49 PM

Pessoal,

Boa tarde...

Estou adicionando a dll BoletoNet no meu projeto mas quando tento compilar perde a referência, alguem pode me ajudar?

Developer
Dec 12, 2010 at 2:00 AM

Olá, Juliano.

Eu costumo colocar os projetos dentro de uma solução e o projeto principal eu seto como StartupProjet.

Coloco a referência do boleto.net na pasta "References" e compilo.  Acho que não tem muito segredo.

Qual a linguagem que vc está usando, qual a versão do RAD (VS2005, VS2008, VBExpress) ?

Abraços,

Dec 12, 2010 at 3:08 AM

Estou usando o vs2010, foi realmente o que eu fiz, adicionei uma referencia no references.

Quando eu adiciono consigo criar os objetos, mas quando mando debugar da esse erro.

Grato,

Juliano

Developer
Dec 12, 2010 at 8:56 PM

Hummm.  Nesse caso acho que não posso ajudar, desculpe-me.  Ainda não fiz nenhum teste em projetos com VS2010.

Vou tentar fazer alguma coisa nesse sentido e caso vc consiga algo antes, avise-nos por favor.  Tem um porém, acho que o projeto BoletoNet ainda não está atualizado para VS2010.  Tente confirmar com o Stiven.

Abraços.

Coordinator
Dec 13, 2010 at 11:34 AM
Pessoal,
tem um exemplo desktop nesse link (http://stiven.callas.com.br/post/BoletoNet-Enviando-o-Boleto-Bancario-em-PDF-por-email.aspx), acho que pode ser util.
Abraços,
Stiven
From: [email removed]
Sent: Sunday, December 12, 2010 6:56 PM
To: [email removed]
Subject: Re: usar a dll num projeto desktop [boletonet:228721]

From: jsoda

Hummm. Nesse caso acho que não posso ajudar, desculpe-me. Ainda não fiz nenhum teste em projetos com VS2010.

Vou tentar fazer alguma coisa nesse sentido e caso vc consiga algo antes, avise-nos por favor. Tem um porém, acho que o projeto BoletoNet ainda não está atualizado para VS2010. Tente confirmar com o Stiven.

Abraços.

Jul 24, 2014 at 4:24 PM
Bom dia!, olá pessoal.
sei que este post é antigo, pois estou passando por este problema só agora.

estou desenvolvendo uma aplicação em windowsform e quando tendo usar dll do boletonet a referencia some.
alguem poderia me ajudar?

Quem poder me add para me dar uma ajuda eu agradeço.
skype rsueth
email contato@suethnet.com.br Ricardo Sueth.
Jul 28, 2014 at 2:27 AM
Problema resolvido consegui usar a DLL, estava faltando referenciar o system.web ai só foi seguir o exemplo acima e pronto.
agora estou tentando gerar os arquivo de remessa.
obrigado pela contribuições de todos que participam deste forum.