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.
El resultado debería ser similar a esta imagen.
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> </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