Como converter uma imagem em PDF em asp.net C#

0

Este é mais um post da série : “Precisei fazer, e estou postando aqui para espalhar conhecimento” . Pois é, recentemente precisei converter imagens para PDF para poder entregar com marca d’agua para o usuário.

pdf

Hoje vou mostrar um método simples, utilizando a biblioteca iTextSharp que é bem simples de implementar.

Vamos ao método que eu utilizei em uma página de WebForms  :

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;

namespace GeradorPDF
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            GerarPDF();
        }

        protected void GerarPDF()
        {
            //Definindo tamanho do documento
            Document document = new Document(new iTextSharp.text.Rectangle(3508, 2480),40,40,40,40);
            
            MemoryStream msDoc = new MemoryStream();
            
            //Criando documento
            PdfWriter writer = PdfWriter.GetInstance(document, msDoc);
            document.Open();

            //Pegando localização da imagem
            string localizacao = Server.MapPath("imagem.jpg");
            
            //Definindo resolução
            iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(localizacao);
            img.ScaleToFit(3428, 2400);
            
            IElement e = img;          
            doc.Add(e);         
            doc.Close();
            
            //Mandando a imagem para o navegador
            Response.Clear();
            Response.AddHeader("content-disposition", "attachment;filename=Arquivo.pdf");
            Response.ContentType = "application/pdf";
            Response.BinaryWrite(msDoc.ToArray());
            Response.End(); 
            
        }
    }
}

o código é bastante simples, porém muito útil.

Até a próxima!

 

Compartilhe.

Sobre o autor

Criador do blog Código Simples e com mais 9 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist. Atuando em funções analista, desenvolvedor, arquiteto, líder técnico e gestor de equipes. Mais informações em : http://jhonathansoares.com