viernes, 29 de septiembre de 2017

Ejemplo 4- Colores de fuente (RGB)

En este ejemplo utilizaremos los colores de fuente para que nuestro archivo PDF se vea más llamativo y cause un mayor impacto en nuestros usuarios. Utilizaremos el mismo WebForm que utilizamos en el ejemplo 2 y 3 (llamado Formatos). Hasta el ejemplo 3 hemos agregado el estilo (negritas, cursiva, etc) y el tamaño. Ahora también agregaremos el color de fuente.

Para agregar un color de fuente, como se mencionó anteriormente, tenemos dos opciones, la propiedad Color y la propiedad SetColor, en este ejemplo vamos a utilizar la propiedad SetColor debido a que es la que se puede volver más compleja por la cantidad de colores que podemos generar. (Recuerde que para usar la propiedad Color hay que hacer uso del espacio de nombres iTextSharp.text.BaseColor. y le mostrara la lista de colores disponibles)

Vamos a agregar a nuestro WebForm 3 nuevos textbox, y a cada uno le agregaremos la leyenda Rojo, Verde, Azul, y los llamaremos Txt_Rojo, Txt_Verde, Txt_Azul, respectivamente, esto con el objetivo hacer pruebas asignando manualmente los valores de cada canal, el resultado nos debería quedar con el de la imagen


image

Debido a que en este ejemplo nos vamos a enfocar en los colores, vamos a agregar la propiedad SetColor, esta propiedad acepta valores enteros así que es necesario convertir los valores a numeros enteros, para esto utilizaremos la funcion Cint para convertir el número a un número entero. Agregaremos solamente una línea de codigo, justo debajo de la linea de codigo en la que le asignamos el tamaño a la fuente (FUENTE.Size = 14).

FUENTE.SetColor(CInt(Txt_Rojo.Text), CInt(Txt_Verde.Text), CInt(Txt_Azul.Text))

Con esto, el programa utilizará los valores de las cajas de texto, para crear el color que se utilizará como color de fuente. Al ejecutar el programa debe ser capaz de crear el documento, con diversos colores dependiendo de los valores asignados.

Archivo Formatos.aspx

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Formatos.aspx.vb" Inherits="Formatos" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
     <title>Página sin título</title>
</head>
<body>
     <form id="form1" runat="server">
     <div>
         <asp:TextBox ID="Txt_Mitexto" runat="server" Height="122px" TextMode="MultiLine" Width="462px"></asp:TextBox>&nbsp;<br />
         <asp:TextBox ID="Txt_Formato" runat="server"></asp:TextBox><br />
         <asp:Button ID="Cmd_PDF" runat="server" Text="Button" /><br />
     </div>
         <br />
         Rojo:&nbsp; &nbsp;<asp:TextBox ID="Txt_Rojo" runat="server"></asp:TextBox><br />
         Verde:<asp:TextBox ID="Txt_Verde" runat="server"></asp:TextBox><br />
         Azul: &nbsp;&nbsp;<asp:TextBox ID="Txt_Azul" runat="server"></asp:TextBox><br />&nbsp;&nbsp;
     </form>
</body>
</html>


Archivo Formatos.aspx.vb

Imports System
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf

Partial Class Formatos
     Inherits System.Web.UI.Page

    Protected Sub Cmd_PDF_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Cmd_PDF.Click
         Dim Doc As Document = New Document
         Dim WRITER As iTextSharp.text.pdf.PdfWriter
         WRITER = PdfWriter.GetInstance(Doc, New FileStream("C:\Inetpub\Isharp\File" & ".pdf", FileMode.Create))
         Doc.Open()
         Dim FUENTE As New Font
         FUENTE.Size = 14
         FUENTE.SetStyle(CInt(Txt_Formato.Text))
         FUENTE.SetColor(CInt(Txt_Rojo.Text), CInt(Txt_Verde.Text), CInt(Txt_Azul.Text))
         Doc.Add(New Paragraph(Txt_Mitexto.Text, FUENTE))
         Doc.Close()
         Response.Redirect("file.pdf")
     End Sub
End Class

No hay comentarios:

Publicar un comentario