Mais
×

Como converter HTML para PDF usando o iTextSharp

Atualizado em 22 julho, 2017

O iTextSharp é parte da iText, uma biblioteca Java de código livre para geração de PDFs. Ela foi desenvolvida em C# para a plataforma .NET. Os PDFs são documentos de tamanho fixo frequentemente usados para prover conteúdo passível de impressão em "websites".

Instruções

Converta um documento HTML para PDF (file image by Alex White from Fotolia.com)
  1. Abra um editor C#.

  2. Crie um arquivo C# e adicione o código abaixo.

  3. Use um "namespace" para chamar a biblioteca iTextSharp:

    using iTextShart.text; using iTextSharp.text.pdf;

  4. Chame a classe embudita na iTextSharp e configure o StringBuilder como vazio:

    Document document = new Document(PageSize.A4, 80, 50, 30, 65); StringBuilder strData = new StringBuilder(string.Empty);

  5. Adicione um caminho para o HTML ser gerado a partir do conteúdo do GridView:

    string strHTMLpath = Server.MapPath("MyHTML.html");

  6. Defina o caminho para a construção do arquivo PDF:

    string strPDFpath = Server.MapPath("MyPDF.pdf");

  7. Chame os dados do arquivo HTML e processe o arquivo:

    StringWriter sw = new StringWriter(); sw.WriteLine(Environment.NewLine); sw.WriteLine(Environment.NewLine); sw.WriteLine(Environment.NewLine); sw.WriteLine(Environment.NewLine); HtmlTextWriter htw = new HtmlTextWriter(sw); gvSerchResult.AllowPaging = false; gvSerchResult.AllowSorting = false; BindGridView(); gvSerchResult.RenderControl(htw);

    StreamWriter strWriter = new StreamWriter(strHTMLpath, false, Encoding.UTF8); strWriter.Write("" + htw.InnerWriter.ToString() + ""); strWriter.Close(); strWriter.Dispose();

  8. Use o "parser" para converter o conteúdo do HTML para um PDF:

    iTextSharp.text.html.simpleparser. StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet(); styles.LoadTagStyle("ol", "leading", "16,0"); PdfWriter.GetInstance(document, new FileStream(strPDFpath, FileMode.Create)); document.Open();

  9. Configure as fontes para os elementos na página e adicione itens a ela:

    ArrayList objects; styles.LoadTagStyle("li", "face", "garamond"); styles.LoadTagStyle("span", "size", "8px"); styles.LoadTagStyle("body", "font-family", "times new roman"); styles.LoadTagStyle("body", "font-size", "12px"); document.NewPage(); objects = iTextSharp.text.html.simpleparser. HTMLWorker.ParseToList(new StreamReader(strHTMLpath, Encoding.Default), styles); for (int k = 0; k < objects.Count; k++) { document.Add((IElement)objects[k]); }

  10. Limpe as variáveis da memória e feche os arquivos:

    { document.Close(); Response.Write(Server.MapPath("~/" + strPDFpath)); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("Content-Disposition", "attachment; filename=" + strPDFpath); Response.ContentType = "application/octet-stream"; Response.WriteFile(Server.MapPath("~/" + strPDFpath)); Response.Flush(); Response.Close(); if (File.Exists(Server.MapPath("~/" + strPDFpath))) { File.Delete(Server.MapPath("~/" + strPDFpath)); } }

  11. Execute o arquivo C# para criar o arquivo PDF a partir do arquivo HTML.

O que você precisa

  • Editor C#
Cite this Article A tool to create a citation to reference this article Cite this Article