Converter HTML para PDF usando iTextSharp e Powershell

Tempo de leitura: 2 minutos

Converter HTML para PDF usando iTextSharp e Powershell

Recentemente precisei desenvolver uma interface com powershell para consulta de relatorios, porém ela deveria, dentre outras funcionalidades, salvar os relatórios em PDF. Após pesquisar muito encontrei o projeto iTextSharp, que é uma implementação .NET do projeto iText original, feito em Java.

Pois bem, após muitos testes pude perceber que esta biblioteca atenderia minhas necessidades. Neste post irei demostrar como podemos converter codigo HTML para PDF usando esta biblioteca.

Iremos precisar de 2 arquivos do projeto para esta tarefa, o iTextSharp.dll e o iTextSharp.XMLworker.dll. A versão utilizada é a 5.5.1, a mais recente até a data desta postagem.

Primeiro vamos carregar os assemblies para poder utilizar as classes e metodos necessários. Não se esqueçam de desbloquear os arquivos antes, caso contrario eles nao irão carregar corretamente.

Caso o conteúdo nao seja forçado em formato String, ele automaticamente será criado como uma array, o que irá gerar um erro durante o processo.

Agora iremos criar o documento e definir o tamanho da página para A4:

Agora para inicializar a escrita no arquivo, primeiro é necessário criar o Stream de escrita e definir usando o StringReader para ler a string HTML que geramos anteriormente, lembre se que no Stream fica o caminho no qual será salvo o arquivo:

Agora iremos criar a instancia do writer para poder iniciar de fato a conversão, com um pequeno ajuste no InitialLeading, que tem um bug, quando nao definido, fica em 0, o que de forma intermitente, gera erro durante criação do PDF:

Agora podemos acessar o documento para iniciar a escrita de fato:

O método ParseXHtml irá veriricar o Writer gerado, para escrever no documento e inserir o código contido no reader

Após a conclusão do processo acima, basta invocar o método close para finalizar a escrita no arquivo:

Resultado final:

2014-06-11 12_54_14-Test.pdf - Adobe Reader

Você poderá encontrar esse artigo também em: https://guidooliveira.com/2014/06/11/converter-html-para-pdf-usando-itextsharp-e-powershell/

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *