[update]Gostaria de salientar que este post e o seguinte contem apenas explicacoes. Nada de codigo. Se, por algum motivo, houver preferencia por ver apenas um codigo de exemplo do uso do iTextSharp, sugiro ir direto para o terceiro post, mas acho que a leitura das explicacoes pode ajudar bastante.[/update]Nos proximos dias, a ideia e falar sobre criacao de documentos em pdf.Pra quem ainda nao viu, um tempo atras eu fiz um post sobre geracao de arquivos do Excel.A ideia aqui segue a mesma linha:Eu precisava gerar um documento. A reacao inicial foi: "Vou gerar um documento do Word, a biblioteca deve ser bem parecida com a do Excel". Mas entao recebi a sugestao de trabalhar com '.pdf', ja que pode ser aberto em um visualizador que e distribuido gratuitamente, ao contrario do '.doc' que usa o Word. Gostei da sugestao e fui pesquisar sobre bibliotecas para geracao de pdf que eu pudesse integrar ao meu projeto em C#. Acabei encontrando o iTextSharp.iTextSharp e uma biblioteca (ou um componente, se preferirem ver dessa forma) que permite fazer diversas operacoes com documentos pdf. Das varias possibilidades que encontrei na internet ele e com certeza um dos mais completos na area, embora ainda faltem alguns recursos que, em determinados momentos, poderiam ter sido extremamente uteis para mim. Mas nenhum grande transtorno.Bom, a intencao, entao, e falar sobre esse "cara", ou ao menos comecar a falar.Vejamos o que pretendo abordar nos proximos dias:- Criacao do documento em si, principais parametros.- Principais observacoes sobre como adicionar, ao documento: - Paragrafos, utilizando a classe Paragraph. - Frases, utilizando a classe Phrase. - Imagens (superficialmente).- Abordagem rapida sobre como adicionar tabelas, mas com foco em demostrar os problemas que tive, e como os resolvi.Eu mudei um pouco a ideia de como produzir os posts. Tenho preferido fazer uma explicacao e depois deixar o codigo todo agrupado, ao inves de ter um paragrafo de explicacao e um trecho de codigo, como nos primeiros posts. Embora isso deixe a explicacao com uma aparencia um pouco densa, acredito que o codigo agrupado e melhor. Em todo caso vou tentar separar a explicacao em pequenos titulos dessa vez.No ultimo post eu colocarei apenas um codigo de exemplo. Embora me pareca ruim a ideia de o codigo estar separado do post acho que fica melhor organizado dessa forma.Sobre o iTextSharp.Ele e gratuito e voce pode baixa-lo aqui, ou pela pagina abaixo:http://sourceforge.net/projects/itextsharp/Sobre o documento.Criacao do documentoPara a criacao do documento em pdf sera necessario fazer uso da classe Document em conjunto com o metodo GetInstance, da classe PdfWriter.A classe Document pode ser instanciada sem parametros, com um Rectangle que representa o tamanho da pagina, ou com um Rectangle e as medidas das bordas (quatro objetos float).No codigo irei mostrar o instanciamento com o tamanho da pagina e as bordas.Feito isso sera necessario iniciar uma sequencia try/catch.Dentro do try e feita a chamada ao PdfWriter.GetInstance, com 2 parametros: uma classe Document e uma FileStream. A classe Document e, obviamente, a que instanciamos antes do try e a FileStream pode ser instanciada ali mesmo, passando um nome