Fala, galera!!
Segue uma dica rápida e útil para quem utiliza banco de dados Oracle.
Ao tentar se conectar no Oracle utilizando o driver Sytem.Data.OracleClient pode ocorrer o seguinte erro:
"System.Data.OracleClient requires Oracle cliente software version 8.1.7 or greater"
A solução não é a atualização do Driver, como sugere a mensagem de erro, mas a troca do mesmo para o ODP.net (Oracle Data Provider for .Net)
A própria Microsoft sugere o uso do ODP.net.
O driver da Oracle pode ser baixado no endereço abaixo:
http://www.oracle.com/technetwork/database/windows/downloads/index-101290.html
Segue link do site da Oracle sobre o ODP.net:
http://www.oracle.com/technetwork/topics/dotnet/index-085703.html
Comparativo entre o ODP.net e Microsoft.OracleClient:
http://www.oracle.com/technetwork/topics/dotnet/index-154765.html
OBS: Reinicie a máquina após a instalação do ODP.net.
Um abraço e até a próxima!!
quinta-feira, 8 de novembro de 2012
quinta-feira, 1 de novembro de 2012
Gerando PDF a partir de uma URL
Fala, galera!!
Hoje vou postar um código de grande utilidade para quem precisa trabalhar com a geração de PDF.
Pesquisando na internet encontrei muitos componentes pagos e alguns gratuitos, mas que não funcionavam de forma tão simples. O simples, no meu caso, é criar um arquivo PDF a partir de uma URL.
Testei o iTextSharp que é um dos mais conhecidos, mas não funcionou da forma que eu esperava.
Eis que encontrei o wkhtmltopdf.
O componente pode ser baixado em: http://code.google.com/p/wkhtmltopdf/
Basicamente, é um arquivo exe que recebe como parâmetro a url que será convertida em pdf e o nome do arquivo pdf que será gerado.
O lado negativo é que ao usar um servidor compartilhado você pode ter problemas de permissão para executar o componente. Já fiz alguns testes em servidores compartilhados e não tive esse problema. Mas cada ambiente é um ambiente.
O componente não precisa ser instalado. O instalador apenas desempacota os arquivos para um diretório escolhido. Você pode simplesmente copiar esse diretório para o diretório de sua aplicação no servidor e executá-lo a partir da aplicação.
O código é bastante simples:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Hidden; //Faz com que o processo seja executado em background
startInfo.FileName = "c:\diretorio\wkhtmltopdf.exe" ;
startInfo.Arguments = "http://www.suaurl.com/pagina. aspx + " " + "c:\diretorio\arquivo.pdf";
Process processo = Process.Start(startInfo);
processo.WaitForExit();
processo.Close();
processo.Dispose();
Um abraço e até a próxima!!
Hoje vou postar um código de grande utilidade para quem precisa trabalhar com a geração de PDF.
Pesquisando na internet encontrei muitos componentes pagos e alguns gratuitos, mas que não funcionavam de forma tão simples. O simples, no meu caso, é criar um arquivo PDF a partir de uma URL.
Testei o iTextSharp que é um dos mais conhecidos, mas não funcionou da forma que eu esperava.
Eis que encontrei o wkhtmltopdf.
O componente pode ser baixado em: http://code.google.com/p/wkhtmltopdf/
Basicamente, é um arquivo exe que recebe como parâmetro a url que será convertida em pdf e o nome do arquivo pdf que será gerado.
O lado negativo é que ao usar um servidor compartilhado você pode ter problemas de permissão para executar o componente. Já fiz alguns testes em servidores compartilhados e não tive esse problema. Mas cada ambiente é um ambiente.
O componente não precisa ser instalado. O instalador apenas desempacota os arquivos para um diretório escolhido. Você pode simplesmente copiar esse diretório para o diretório de sua aplicação no servidor e executá-lo a partir da aplicação.
O código é bastante simples:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Hidden; //Faz com que o processo seja executado em background
startInfo.FileName = "c:\diretorio\wkhtmltopdf.exe"
startInfo.Arguments = "http://www.suaurl.com/pagina.
Process processo = Process.Start(startInfo);
processo.WaitForExit();
processo.Close();
processo.Dispose();
Um abraço e até a próxima!!
Assinar:
Postagens (Atom)