Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Danilo Bernardo

Alterar PDf de uma URL

Recommended Posts

Para funcionar e preciso a DLL ITextSharp.dll no bin do projeto

Baixe: http://sourceforge.net/projects/itextsharp/

Essa dll tambem gera Pdf e muito mais!!.

 

 public void IncluirTextoPDF()

{

   	PdfTemplate total;

   	BaseFont helv;



   	string bs64Url = FileToBase64("http://url/.pdf");

   	string Base64 = bs64Url.ToString();

   	string strTextoAssinaturaLinha1 = "Uma linha";

   	string strTextoAssinaturaLinha2 = "Duas Linha";

   	System.IO.MemoryStream m = new System.IO.MemoryStream();

   	try

   	{

       	// Converte base64 para  e string  para bytes      	

       	byte[] objByte = Convert.FromBase64String(Base64);



       	PdfReader arquivo = new PdfReader(objByte);



       	iTextSharp.text.Rectangle PDFPageSize = arquivo.GetPageSizeWithRotation(1);



       	Document NewPDF = new Document(PDFPageSize);

       	int npags = arquivo.NumberOfPages;



       	//Instancia um objeto Writer para gravar o novo PDF modificado    	

       	PdfWriter Writer = PdfWriter.GetInstance(NewPDF, m);



       	//Abre o arquivo 

       	NewPDF.Open();

       	total = Writer.DirectContent.CreateTemplate(100, 100);         	

      	 total.BoundingBox = new iTextSharp.text.Rectangle(-20, -20, 100, 100);

    	 helv = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);



       	PdfContentByte CB1 = Writer.DirectContent;

       	CB1.SaveState();



       	// Laco de repeticao para inserir todas as paginas do PDF

       	for (int i = 1; i <= npags; i++)

       	{

           	PdfImportedPage Page1 = Writer.GetImportedPage(arquivo, i);

           	float textBase = NewPDF.Bottom - 13;

           	float textSize = 7;

           	float textBae = NewPDF.Bottom - 1;

           	helv.GetWidthPoint(strTextoAssinaturaLinha2, textSize);



           	CB1.BeginText();

               CB1.AddTemplate(Page1, 0, 0);

           	CB1.SetFontAndSize(helv, textSize);



           	if ((Writer.PageNumber % 2) == 1)

           	{

               	CB1.SetTextMatrix(NewPDF.Left, textBae);

               	//insere o texto2 e posiciona conforme parametros   

               	CB1.ShowTextAligned(200, strTextoAssinaturaLinha1, NewPDF.Left - 20, NewPDF.Bottom - 20, 0);

               	CB1.SetTextMatrix(NewPDF.Left, textBase);

               	//insere o texto2 e posiciona conforme parametros   

               	CB1.ShowTextAligned(200, strTextoAssinaturaLinha2, NewPDF.Left - 20, NewPDF.Bottom - 1, 0);

               	CB1.EndText();

               	// CB1.AddTemplate(total, NewPDF.Left + textSize, textBase);

               	CB1 = Writer.DirectContent;

           	}

           	else

           	{

               	float adjust = helv.GetWidthPoint("0", textSize);

               	CB1.SetTextMatrix(NewPDF.Left - textSize - adjust, textBae);

               	//insere o texto1 e posiciona conforme parametros   

               	CB1.ShowTextAligned(200, strTextoAssinaturaLinha1, NewPDF.Left - 20, NewPDF.Bottom - 20, 0);

               	CB1.SetTextMatrix(NewPDF.Left - textSize - adjust, textBase);

               	//insere o texto2 e posiciona conforme parametros   

               	CB1.ShowTextAligned(200, strTextoAssinaturaLinha2, NewPDF.Left - 20, NewPDF.Bottom - 1, 0);

               	CB1.EndText();



           	}

           	//cria nova pagina

           	NewPDF.NewPage();

       	}

       	// fecha o arquivo alterado

       	NewPDF.Close();

       	Writer.Flush();



   	}

   	catch (Exception ex)

   	{



   	}

   	finally

   	{



   	}



   	HttpContext.Current.Response.Clear();

   	HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=x.pdf");

   	HttpContext.Current.Response.Buffer = true;

   	HttpContext.Current.Response.OutputStream.Write(m.GetBuffer(), 0, m.GetBuffer().Length);

   	HttpContext.Current.Response.OutputStream.Flush();

   	HttpContext.Current.Response.OutputStream.Close();

   	HttpContext.Current.Response.End();



}



/// <summary>

/// Converte um PDF em uma URL em BASE64.

/// </summary>

/// <param name="url">endereco do PDF a ser alterado</param>

/// <returns>String Codificada em BASE64</returns>





public string FileToBase64(string url)

{

   	string strBase64 = string.Empty;



   	WebClient request = new WebClient();



   	request.UseDefaultCredentials = true;



   	byte[] contentBytes = request.DownloadData(url);



   	//convert byte em Base64

   	strBase64 = Convert.ToBase64String(contentBytes);

 

 

 

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm -49.65pt 0pt -3cm; PADDING-LEFT: 90px; mso-layout-grid-align: none" class=MsoNormal> return strBase64; }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.