jueves, 28 de septiembre de 2017

Ejemplo 2: Estilos básicos de fuente

Bien, primeramente crearemos un nuevo documento, lo llamaremos formatos.aspx (recuerde, tiene que colocar el código en un archivo independiente) si no sabe como crear un nuevo documento en Visual Web Developer, vea el ejemplo 1. No olvide agregar las referencias necesarias.

Imports System

Imports System.IO

Imports iTextSharp.text

Imports iTextSharp.text.pdf

En este ejemplo permitiremos al usuario que escriba el texto que aparecerá en el documento PDF, lo vamos a tomar de un Textbox. Agregaremos los siguientes controles al documento, un Textbox, un botón de comando y un Radio button list. A los cuales asignaremos las siguientes propiedades.

image

El resultado debería ser similar a esta imagen.

clip_image002

Bien, ahora vamos a dar doble clic sobre el botón (Cmd_PDF) para entrar al editor de código, y vamos a agregar el código necesario para crear el documento PDF. Debido a que la creación del documento PDF con ITextSharp contiene ciertas partes del código que siempre existen, ya no vamos a explicar esa sección. El código que siempre existe, se muestra a continuación.

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()

'Todo el contenido del documento PDF va en esta seccion

Doc.Close()

Response.Redirect("file.pdf")


Bueno, en el ejemplo en el que estamos trabajando podemos copiar el código que se muestra en el cuadro de arriba, y solo trabajar en la sección que tiene los comentarios.

Ahora vamos a comenzar a dar formato a la fuente que vamos a utilizar. Primeramente necesitamos crear la variable que contendrá las características de la fuente, la declararemos como una variable tipo FONT (Dim FUENTE As New Font) y posteriormente asignaremos las propiedades a la variable que hayamos declarado. En este ejemplo vamos a asignar el tamaño en 14 y el estilo, lo vamos a asignar de acuerdo al valor que se obtenga del Lst_Formato para esto utilizaremos un select case.

'Declaramos la fuente

Dim FUENTE As New Font

'Asignamos el tamaño

FUENTE.Size = 14

'Dependiendo de la opcion seleccionada, se asignará el estilo

Select Case Lst_Formato.SelectedIndex

Case 0

         FUENTE.SetStyle(iTextSharp.text.Font.BOLD)

Case 1

         FUENTE.SetStyle(iTextSharp.text.Font.UNDERLINE)

Case 2

        FUENTE.SetStyle(iTextSharp.text.Font.ITALIC)

End Select

Ya tenemos el tamaño y estilo de la fuente definido, ahora simplemente hay que agregar el texto con el formato al documento. Doc.Add(New Paragraph(Txt_Mitexto.Text, FUENTE)), esta linea tiene que ir entre el doc.Open() y el Doc.Close()

Con esta ultima línea terminamos el ejemplo, el cual debe de generar un documento PDF con el contenido del cuadro Texto, y con el formato que le asignamos (negrita, subrayado o itálica), hay que mencionar que en este ejemplo solo se mencionaron 3 estilos, pero al escribir iTextSharp.text.Font. el sistema mostrara todos los otros estilos que existen.


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 id="Head1" 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;</div>
         <asp:RadioButtonList ID="Lst_Formato" runat="server">
             <asp:ListItem Value="1">Negritas</asp:ListItem>
             <asp:ListItem Value="2">Subrayado</asp:ListItem>
             <asp:ListItem Value="3">Italica</asp:ListItem>
         </asp:RadioButtonList>
         <asp:Button ID="Cmd_PDF" runat="server" Text="Button" />
     </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()
         'Declaramos la fuente
         Dim FUENTE As New Font
         'Asignamos el tamaño
         FUENTE.Size = 14
         Select Case Lst_Formato.SelectedIndex
             Case 0
                 FUENTE.SetStyle(iTextSharp.text.Font.BOLD)
             Case 1
                 FUENTE.SetStyle(iTextSharp.text.Font.UNDERLINE)
             Case 2
                 FUENTE.SetStyle(iTextSharp.text.Font.ITALIC)
         End Select
         Doc.Add(New Paragraph(Txt_Mitexto.Text, FUENTE))
         Doc.Close()
         Response.Redirect("file.pdf")
     End Sub
End Class


Como puede observar a diferencia del ejemplo 1, aquí al agregar el texto agregamos un parámetro más al párrafo, anteriormente lo agregábamos como

Doc.Add(New Paragraph(Txt_Mitexto.Text))

Y en este ejemplo lo agregamos como

Doc.Add(New Paragraph(Txt_Mitexto.Text, FUENTE))

Bueno esto es debido a que la clase paragraph contiene una serie de propiedades adicionales que se pueden utilizar, en este caso, le agregamos la propiedad de la fuente.

La variable tipo FONT, puede ser declarada en cualquier parte del código que va a generar el documento, no es necesario que sea declarada entre el Doc.Open() y el Doc.Close(), sin embargo tiene que haber sido declarada y le se le deben de asignar las propiedades antes de hacer uso de ella, en caso contrario, iTextSharp utilizara las características por omisión de la fuente.

No hay comentarios:

Publicar un comentario