Array
(
)

Reports

Paula Oliveira
   - 12 fev 2010

Olá, pessoal!
preciso criar uma ferramenta que gere relátórios em pdf e envie por email...
entretanto preciso fazer isso em lote...
alguém tem alguma idéia de como eu posso fazer isso?

Obrigada...

Alfran Junior
   - 12 fev 2010

Boa Noite Paula,


Vamos por partes quanto a geração de arquivos PDF eu custumo utilizar em minha aplicações a API iTextSharp disponivel em (http://sourceforge.net/projects/itextsharp/).
Com ela voce tem varias possibilidades dentre elas a de criação de Arquivos PDF a partir de codigo HTML ou seja usando toda formatação de uma simples linguagem de marcação de texto e bastante conhecida.
 
Para utilizar a biblioteca basta adicionar a referencia da dll no projeto.
 
Segue abaixo codigo como exemplo em C# da geração do mesmo.
 

//Cria um guid para o nome do arquivo


System.Guid nomeArquivo = System.Guid.NewGuid();


//Cria o documento no iTextSharp


Document documento = new Document(PageSize.A4, 80, 50, 30, 65);


//Seta no documento o arquivo pdf


PdfWriter.GetInstance(documento, new FileStream(Server.MapPath(nomeArquivo.ToString() + ".pdf"), FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite));



//Criacao do sb para apendar o HTML


StringBuilder sb = new StringBuilder();


//HTML do Relatorio


sb.Append("<html><body><br /><br />");


sb.Append("<table width='100%' ><tr><td align='center' colspan='2'><p>Contrato nr. @NrContrato</p><br /><br /><br /><br /></td></tr></table>");



sb.Append("</body></html>");



//Parametros (Vou cria metodos para receber uma collection de parametros e ja fazer os replaces para o string builder)


sb = sb.Replace("@NrContrato", "20100000038");


documento.Open();

string tempFile = Path.GetTempFileName();


using (StreamWriter tempWriter = new StreamWriter(tempFile, false))


{


tempWriter.Write(sb.ToString());


}


HtmlParser.Parse(documento, tempFile);


documento.Close();


File.Delete(tempFile);


documento = null;


Response.Redirect(nomeArquivo.ToString() + ".pdf",true);


--------------------------------------------------------------------------------------
 
Para envio de emails em massa tu pode utilizar o proprio framework .net para fazer isso enviando o arquivo em anexo. Caso precise de ajuda pode me enviar email juniorsebr@gmail.com

0
|
0

Paula Oliveira
   - 18 fev 2010

Cara, você pode colocar as suas referências aí?
não tô encontrando

0
|
0

Netasper
   - 18 fev 2010

Paula,   Use o ABCpdf, muito bom. Gere os pdfs usando o componente acima. Construa um windows service ou mesmo uma rotina VBS que vai executar quando for agendada e pronto..   []s

0
|
0