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.
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!

