viernes, 29 de septiembre de 2017

Fuentes

En cualquier documento digital, la utilización de la fuente correcta, puede marcar la diferencia entre un documento llamativo y fácil de leer con uno poco llamativo ó difícil de leer. Hasta esta parte del libro nos habíamos enfocado en mostrarle como diseñar documentos PDF con diversos tamaños de fuente, estilos y tamaños, pero ahora, vamos a aprender a seleccionar la fuente que vamos a utilizar en nuestro documento.

¿Que es una fuente?

Un tipo de letra o fuente es una familia de uno o más conjuntos de moldes de letras diseñadas con unidad de estilo, cada uno de esos conjuntos está compuesto por un grupo coordinado de glifos o caracteres, Por lo general no sólo incluye un alfabeto de letras, dígitos, signos de puntuación y marcas diacríticas, sino que también puede incluir ideogramas y símbolos, o estar constituido enteramente de ellos, por ejemplo, con símbolos matemáticos o cartográficos.

No todas las fuentes poseen todos los caracteres, especialmente cuando se trabaja con idiomas que contienen ciertos caracteres como letras acentuadas (á, é, í, ó, ú), y signos que no se utilizan en el alfabeto anglosajón (como la letra ñ) por tal motivo es importante conocer si el tipo de fuente elegido puede representar esos símbolos. De no hacerlo por lo general estos símbolos son sustituidos por sus equivalentes, en el caso de letras acentuadas por las letras sin acento y en caso de no haber un carácter con que sustituirlas, se utiliza un carácter vacío.

  • Courrier
  • Helvetica
  • Times-Roman
  • Symbol
  • ZapfDingbats

Fuentes embedidas contra fuentes no embedidas.

Cuando creamos documentos que sabemos que se van a visualizar en diversas computadoras tenemos que ser consientes de la posibilidad de que alguna o todas las fuentes que utilizamos en nuestros documentos no se encuentre instalada en la computadora del cliente, si utilizamos una aplicación stand alone podríamos incluir las fuentes en el paquete de instalación, pero si trabajamos con aplicaciones web, eso no es posible.

Si el visor PDF no encuentra la fuente especificada y esta no esta embedida (incrustada) en el documento, la fuente será reemplazada por otra fuente, lo que podría provocar que nuestro documento no se visualice de la manera exacta a como nosotros deseamos. Aunque Adobe realiza un buen trabajo al reemplazar fuentes, no debemos dejar al azar este trabajo por que podría incluso llegar a ser ilegible para el cliente.

Una de las razones para utilizar los documentos PDF es que siempre deben de verse exactamente igual en cualquier sistema, esta es excepción más importante a esta regla. Pero existen maneras para asegurarnos de que la fuente correcta sea utilizada y asegurarnos de que el documento se vea exactamente igual a la forma en como usted la diseñó para los usuarios.

Para esto es necesario incrustar la fuente, aunque esto conlleva el incremento del archivo. Si el tamaño es un inconveniente, puedes optar con utilizar una fuente estándar ó si necesita usar caracteres que no están disponibles en una fuente estándar, puede seleccionar incrustar solo un subconjunto de la fuente. De esta forma el documento PDF solo contendrá los glifos que corresponden con los caracteres que son usados.

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

Colores RGB

Es un modelo de color basado en la síntesis aditiva, con el que es posible representar un color mediante la mezcla por adición de los tres colores luz primarios. El modelo de color RGB no define por sí mismo lo que significa exactamente rojo, verde o azul, por lo que los mismos valores RGB pueden mostrar colores notablemente diferentes en diferentes dispositivos que usen este modelo de color. Aunque utilicen un mismo modelo de color, sus espacios de color pueden variar considerablemente.

Para indicar con qué proporción mezclamos cada color, se asigna un valor a cada uno de los colores primarios, de manera, por ejemplo, que el valor 0 significa que no interviene en la mezcla y, a medida que ese valor aumenta, se entiende que aporta más intensidad a la mezcla. Aunque el intervalo de valores podría ser cualquiera (valores reales entre 0 y 1, valores enteros entre 0 y 37, etc.), es frecuente que cada color primario se codifique con un byte (8 bits). Así, de manera usual, la intensidad de cada una de las componentes se mide según una escala que va del 0 al 255.

Un detalle que hay que tener en cuenta al utilizar la paleta de colores RGB es que se tiene que conocer a fondo los colores o hacer diversas pruebas hasta obtener el color deseado, por que de otra forma, el resultado podría no ser el que uno desea. Al final de este libro se agrega una tabla con los colores RGB que puede utilizar como referencia. (La tabla maneja valores exadecimales, hay que convertirlos a decimales para poder utilizarlos con iTextSharp).

Anteriormente se menciono que los colores RGB se crean asignando un valor al Rojo, al Verde y al Azul, en algunos programas se pueden asignar valores poniendo cada valor al lado del siguiente FF00FF (como se hace en HTML) pero cuando se maneja valores decimales, por lo general cada valor es separado del anterior por una coma (,) 255,0,255.

Por ejemplo, para crear el color azul, como es un color primario, basta con asignar un valor al azul, y dejar el Rojo y el Verde sin un valor, si ponemos 0,0,1 nos da un tono azul, pero debido a que es muy poco el color azul asignado el resultado sería un azul muy oscuro realmente se vería negro. Así que hay que recordar que entre más bajo sea el valor asignado a cada color, el resultado seria un color mas oscuro, y entre mayor sea el valor el resultado será mas claro. Por ejemplo 0,0,100 y 0,0,255 ambos nos da un color azul, pero el ejemplo con el valor 255 nos da un azul mas claro y el que tiene el valor 100 nos da un color azul oscuro. Lo mismo sucedería si se ponen valores bajos en el rojo y el verde.

image

En RGB podemos crear los colores primarios Rojo Verde, Azul simplemente colocando el valor en 255 en el canal correspondiente (R, G, B). El Negro se crea con la ausencia de los 3 colores primarios (0,0,0) y el Blanco con las tonalidades al máximo de los 3 colores primarios (255,255,255).

image

image

Color de fuente

Todos sabemos que un podemos utilizar colores de fuente para darle mas impacto a nuestros documentos, iTextSharp nos permite incluir también el color de fuente en nuestros documentos PDF, para esto tenemos dos propiedades de la clase fuente, Color y SetColor.

Color nos permite hacer uso del espacio de nombres iTextSharp.text.BaseColor para asignar 13 colores ya definidos por el espacio de nombres, entre los colores que podemos encontrar están (Negro, azul, verde, amarillo, naranja). Este espacio de nombres utiliza los colores más comunes que podríamos utilizar en un documento. Sin embargo para algunos quizá se nos haga un poco limitada la cantidad de colores que podemos asignarle.

SetColor por su parte, nos permite asignarle los colores utilizando colores RGB (Red, Geen, Blue), de esta forma, podemos crear una paleta de colores mucho más amplia. Para lograr esto, hay que asignarle el valor correspondiente a R a G y a B de una forma similar a como lo hacemos en HTML a diferencia que aquí vamos a manejar valores enteros decimales (1-255) no exadecimales (00-FF).

Ejemplos. (Ambos dan el mismo resultado un texto con fuente azul)

Propiedad Color          FUENTE.Color = iTextSharp.text.BaseColor.BLUE

Propiedad SetColor    FUENTE.SetColor (0,0,255)

El uso de la propiedad Color o SetColor es a decisión del programador, yo personalmente recomiendo utilizar el espacio de nombres cuando vayamos a utilizar los colores más comunes, y la propiedad SetColor cuando necesitemos utilizar colores que no son muy comunes, o variantes de los colores (Colores más claros u oscuros). Recuerde que así como la asignación de más un valor a la misma propiedad solo se asignará el último valor, lo mismo ocurre si intentamos utilizar las dos propiedades (Color y SetColor) en la misma sentencia, solo se aplicará la última utilizada, por ejemplo:

FUENTE.Color = iTextSharp.text.BaseColor.BLUE 'Fuente de color Azul

FUENTE.SetColor (0,255, 0) 'Fuente de color Verde

En este ejemplo mostrado arriba, el resultado sería una fuente de color verde, debido a que el color asignado en SetColor es el la ultima propiedad declarada y esta sustituye a la propiedad Color.

FUENTE.SetColor (0,255, 0) 'Fuente de color Verde

FUENTE.Color = iTextSharp.text.BaseColor.BLUE 'Fuente de color Azul

Invertido el código se obtiene una fuente de color Azul, debido a que la propiedad en la que se le asigna el color azul (Color), es la última declarada.

Estilos de fuente avanzados.

Para trabajar con este ejemplo, vamos a utilizar el mismo Webform que para el ejemplo 2, en el diseño, le vamos a agregar un nuevo Textbox al cual llamaremos Txt_Formato y vamos a eliminar el Lst_Formato (RadioButtonList).

clip_image001

Y en el código vamos a quitar el fragmento de código que utilizábamos para variar el formato (el select case)

Select Case Lst_Formato.SelectedIndex
             Case 0
                 FUENTE.SetStyle(16)
             Case 1
                 FUENTE.SetStyle(iTextSharp.text.Font.UNDERLINE)
             Case 2
                 FUENTE.SetStyle(iTextSharp.text.Font.ITALIC)
End Select

Y lo vamos a sustituir con esta línea de código:

FUENTE.SetStyle(CInt(Txt_Formato.Text))

Con esto, vamos a poder ver los diferentes estilos de fuente, colocando en el textbox el número entero que represente el estilo.

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;
             </div>
                 <asp:TextBox ID="Txt_Formato" runat="server"></asp:TextBox><br />
                 <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()
         Dim FUENTE As New Font
         FUENTE.Size = 14
         FUENTE.SetStyle(CInt(Txt_Formato.Text))
         Doc.Add(New Paragraph(Txt_Mitexto.Text, FUENTE))
         Doc.Close()
         Response.Redirect("file.pdf")
     End Sub
End Class


El resultado de este ejemplo es una página en la cual el usuario puede teclear cualquier texto, y asignarle un estilo que se vera reflejado al momento de generar el archivo PDF.

Estilos de fuente

En el ejemplo 2, trabajamos con los estilos de fuente, pero ahora veremos mas detalladamente cuales son los estilos de fuente que podemos utilizar en iTextSharp. Al igual que la mayoría de los editores de texto, iTextSharp puede hacer uso de los estilos de fuente más comunes, tales como:

  • Negritas
  • Negrita Cursiva
  • Cursiva (Itálica)
  • Subrayado
  • Tachada
  • Normal
  • Entre otros.

iTextSharp podemos asignarle los estilos de dos formas diferentes, asignandole la propiedad utilizando el espacio de nombres iTextSharp.text.font. y elegir el estilo de fuente que desee, o puede asignarlo directamente mediante el numero entero que represente el estilo de fuente deseado. Utilizando este método solamente podra asignarle los 6 estilos mas comunes (negritas, negritas cursiva, cursiva, subrayado, tachado y normal).

Ejemplo. (se obtiene el mismo resultado, asignando el numero o el espacio de nombres)

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

ó

FUENTE.SetStyle(4)

La ventaja de asignarle el numero entero que represente el estilo de fuente deseado, es que utilizando el numero entero, tenemos la posibilidad de utilizar los estilos comunes y sus diferentes combinaciones de 2, 3 o hasta 4 estilos.

En esta tabla, se detallan los estilos que podemos utilizar para nuestros documentos PDF, los primeros 5 los podemos asignar tanto con el espacio de nombres como utilizando el numero entero, del estilo negrita subrayado en adelante, solo se pueden asignar utilizando el numero entero.



image

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.

martes, 19 de septiembre de 2017

iTextSharp-- Trabajando con fuentes.

Un documento digital puede contener una gran cantidad de formatos y fuentes que logran que el documento sea más llamativo y fácil de leer. Imagine que realiza un gran documento en Word o cualquier otro procesador de texto y todo se ve igual, todo del mismo tipo de fuente, el mismo tamaño, nada de negritas o cursiva, un texto con esas características pierde su impacto o incluso puede llegar a ser confuso ya que quizá si no ponemos atención, seria muy difícil identificar donde inicia o donde termina un capitulo. Lo mismo sucedería si hacemos un documento PDF y no sabemos manejar algo tan simple y cotidiano como el formato de fuentes.
Para lograr eso podemos utilizar diversos tipos de fuentes, tamaños, estilos y color; iTextSharp posee una serie de herramientas que nos permiten trabajar con estas características logrando documentos bien elaborados y llamativos para nuestros clientes.
Para trabajar con las características de las fuentes en iTexSharp necesitamos hacer uso de la clase FONT la cual nos provee de todas las herramientas para configurar y hacer uso de dicha clase. Algo importante a considerar es que los archivos PDF pueden contener en si mismos las fuentes, lo que por un lado puede ser una ventaja ya que nos aseguramos de que nuestro documento siempre se vea exactamente igual y, por otro lado, si nuestro documento posee una gran variedad de fuentes, el tamaño de nuestro documento podría llegar a ser muy grande.
Dim FUENTE As New Font
Con la variable tipo FONT vamos a poder asignarle las caracteristicas de presentación a las fuentes que vamos a utilizar en nuestro documento, al crear esta variable vamos a poder acceder o asignarle sus caracteristicas. En la Tabla 1 podemos ver una breve descripción de las caracteristicas mas comunes de la fuente.

Propiedad
Descripción
Size
Esta propiedad sirve para establecer el tamaño de la fuente, solo podemos utilizar números enteros.
SetFamily
Sirve para establecer la familia o el tipo de fuente que se utilizará para el texto.
Color
Nos permite establecer el color de la fuente.
SetColor
Al igual que color sirve para establecer el color de la fuente, pero aquí podemos utilizar los valores RGB en lugar de los colores base de iTextSharp. La ventaja de esta propiedad sobre la anterior (color) es que podemos crear una paleta de colores mayor.
SetStyle
Sirve para establecer el estilo de la fuente tales como negritas, cursiva, subrayado, etc.





Ejemplo 1: Hola Mundo

Este primer ejemplo mostraremos como crear un nuevo documento PDF, con el mensaje “Hola Mundo”. Primeramente necesitará crear un nuevo proyecto siga las instrucciones del capitulo 2 para crear un nuevo proyecto.

Con el proyecto y el primer formulario creado (este se crea automaticamente al iniciar un nuevo proyecto) vamos a comenzar a trabajar en nuestro primer archivo PDF. Antes de escribir cualquier línea de código es necesario agregar la referencia al proyecto (vea el capitulo 2 en la sección agregando la referencia al proyecto).

Una vez agregada la referencia a nuestro proyecto debemos importar cuatro espacios de nombres los cuales vamos a utilizar para generar los archivos PDF, en caso de que no los importemos, entonces las variables y las declaraciones en el código, el depurador los va a considerar como error y no podremos ni siquiera ejecutar nuestra aplicación. Los espacios de nombre que vamos a agregar van antes de toda declaración arriba del Public Class

Imports System
Imports System.IO

Estos dos espacios de nombre nos permiten escribir un documento en el disco duro, ya sea en la carpeta de instalación del programa o de nuestro servidor Web. Debido a que es necesario escribir en el disco duro, es importante tener una carpeta habilitada con permisos de escritura. Estos espacios de nombre no son de la librería iTextSharp sino del propio lenguaje y pueden ser utilizados siempre que necesitemos escribir algún archivo con nuestra aplicación.

Imports iTextSharp.text
Imports iTextSharp.text.pdf

Los espacios de nombre de iTextSharp, son los encargados de generar el documento PDF, permitir agregar contenido al documento y agregar las propiedades del mismo, tales como las fuentes, colores, imágenes, tablas y demás contenido.
img7
Una vez agregados los espacios de nombre antes mencionados, el documento debería verse de la siguiente manera. (El nombre de la Clase puede ser diferente).

Imports System
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Public Class Form1
End Class

Ya tenemos todo lo necesario para comenzar a crear documentos PDF desde visual basic .Net, los pasos que hemos realizado hasta este momento, (agregar la referencia al proyecto, y agregar los espacios de nombre al formulario que vamos a utilizar para generar el PDF, va a ser siempre de la misma manera, independientemente si vamos a generar un documento sencillo o muy elaborado).

Ahora vamos a crear la intefaz grafica, para este ejemplo vamos a crear una interfaz similar a la que podemos ver en la Imagen 8, como puede ver esta imagen solo contiene un botón de comando (command button), este boton se encargara de crear el archivo PDF.

img8
Para agregar código al botón de comando vamos a dar doble clic sobre el botón de comando, y nos abrirá la pantalla de código del formulario. El codigo para crear los documentos se componen de varias partes, este por ser el primer ejemplo lo vamos a explicar a detalle, ya que este es el codigo base para generar los documentos PDF.

Primeramente tenemos que crear una variable tipo Document que va a ser el nuestra variable sobre la cual vamos a agregar el contenido (texto, imagenes, tablas) a nuestro archivo PDF. Para facilitar la comprension esta variable será nuestro archivo PDF, sobre esta variable trabajaremos siempre que ocupemos modificar las propiedades y caracteristicas de nuestro documento PDF.

Dim Doc As Document = New Document

Posteriormente tenemos que crear una variable que sera la que nos permitirá escribir en nuestro documento (la variable que declaramos arriba), para esto se hace uso del espacio de nombres de iTextSharp.text.pdf.PdfWrier

Dim WRITER As iTextSharp.text.pdf.PdfWriter

Una vez creadas las primeras dos variables hay que asignarle el valor a la variable WRITER como un PdfWriter.GetInstance, le vamos a indicar cual va a ser documento sobre el que se va a generar el archivo PDF (En este ejemplo la variable Doc) y el FileStream que es la ubicación donde se guardará archivo en nuestro disco duro.

El FileStream se encarga de guardar el documento en el disco duro, este se compone de dos parámetros, el primero es el nombre del archivo el cual debe contener la dirección completa de la ubicacion donde se va a guardar el archivo, el nombre del archivo y la extension .pdf (ej. C:\Mis archivos\Mi archivo.pdf). Como segundo parametro la funcion del FileStream en este caso como vamos a escribir en el disco duro debemos de poner FileMode.Create que es el que nos permite crear un nuevo documento. Como nota importante, el nombre que se le va a poner al archivo PDF, es un String Por lo que se pueden utilizar variables para asignar el nombre u obtenerlo de algun textbox.

WRITER = PdfWriter.GetInstance(Doc, New FileStream("C:\Isharp\File" & ".pdf", FileMode.Create))
Procederemos a abrir el documento para agregarle el contenido (texto e imágenes).
Doc.Open()

Una vez abierto el documento, utilizaremos la funcion Add que nos sirve para agregar contenido a nuestro documento, cualquier cosa que se agregue con esta función sera visible en el documento PDF. iTextSharp no permite agregar texto de manera libre, el texto debe ser agregado como un chunk (Pieza), Phrase (Frase) ó como un Paragraph (Parrafo), estos terminos se aclararan un poco mas adelante, por lo pronto utilizaremos un Paragraph para agregar la frase “Hola Mundo”.

Doc.Add(New Paragraph("Hola Mundo"))

Una vez agregado todo el contenido al documento, es necesario cerrar el documento. Ya que de otra forma el documento seguira siendo utilizado por el proceso (nuestro programa) y no podremos abrir el documento PDF desde el explorador de archivos o del programa en visual basic .Net

Doc.Close()
Una vez escrito el código, hacemos clic en el botón iniciar depuración (PlayButton ) para asegurarnos que nuestro programa funciona correctamente y que nos genera un documento PDF con el texto “Hola Mundo”.
El resultado deberia ser similar a la siguiente imágenimg9

Imports System
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Public Class Form1
           Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
                   Dim Doc As Document = New Document
                   Dim WRITER As iTextSharp.text.pdf.PdfWriter
                   WRITER = PdfWriter.GetInstance(Doc, New FileStream("C:\File" & ".pdf", FileMode.Create))
                  Dim OC As New Phrase
                  Doc.Open()
                  Doc.Add(New Paragraph("Hola Mundo"))
                  Doc.Close()
           End Sub
End Class



Si esta trabajando en una aplicación web y tiene, tiene problemas con el codigo, debe asegurarse que el archivo del codigo y del diseño esten en archivos independientes. iTextSharp no funciona en Webforms donde el diseño y el codigo estan en un mismo archivo a menos que utilice una Clase.

lunes, 18 de septiembre de 2017

Utilizando iTextSharp en nuestros proyectos.

Los ejemplos aquí mostrados, serán desarrollados para aplicaciones para Windows, sin embargo los ejemplos funcionaran de la misma manera en aplicaciones de Web, por lo que no deberia presentar ningun problema al momento de aplicar estos ejemplos.

Se ha optado por mostrar los ejemplos utilizando las versiones Express, esto debido a que son gratuitas y nos permiten generar las aplicaciones necesarias para aprender a utilizar iTextSharp. El código y ejemplos aquí mostrados funcionaran igual en las versiones comerciales.

Para poder trabajar con esta librería se necesita tener instalado el .Net Framework 2.0 o superior, descargar la librería iTexsharp de la página http://itextpdf.com/download.php y tener instalado el IDE de programación, dependiendo el que vayamos a usar y el tipo de aplicación que vayamos a desarrollar. Visual Web Developer 2005 Express o superior (para aplicaciones Web), Visual Basic, C#, para aplicaciones Stand Alone.

Una vez descargada la librería iTextSharp hay que descomprimir el archivo, dentro viene un archivo llamado iTextSharp.dll, esa es la librería que utilizaremos en nuestros proyectos.

Las versiones Express Visual Basic, C# o Visual Web Developer (todos con la tecnología .Net) pueden ser descargadas de la siguiente página http://www.microsoft.com/express/Downloads/ ahí se encuentran todas las versiones Express que se pueden utilizar para aprender a utilizar iTextSharp (En este libro los ejemplos se realizaran con la versión 2005 Express). Las versiones Express son gratuitas y solo requieren registrarse (el registro es gratuito) para obtener una licencia valida. (Las versiones Express se encuentran en varios idiomas, incluido el español)

Antes de iniciar, debemos tener instalado el IDE que vamos a utilizar, en nuestro caso utilizaremos Visual Basic 2005 Express (VB.Net), en caso de no tener instalado el IDE descarguelo de internet e instalelo, la instalacion tomara unos cuantos minutos dependiendo de su velocidad de internet. (En este libro no abordaremos la instalación del IDE de programación).

Primeramente ejecutaremos el programa y crearemos un proyecto nuevo
img1

Nos aparecerá un cuadro de dialogo en el cual debemos seleccionar el tipo de proyecto que vamos a crear, en nuestro caso para los ejemplos utilizaremos Aplicación para Windows
img2
Debemos escribir un nombre para el proyecto, podemos escribir cualquier nombre que deseemos, sin embargo se recomienda que sea un nombre descriptivo y corto para su proyecto. Ya que tenga el nombre del proyecto haga clic en el botón aceptar, se creará el proyecto en blanco con un solo formulario lo que será nuestra solución
img3
Ya podemos empezar a trabajar en el, sin embargo el proyecto ni la estructura ha sido guardada aun, así que es recomendable que lo guardemos antes de empezar a trabajar.
Haga clic en el menú archivo—> Guardar todo
img4
Una vez que el proyecto fue guardado, en la carpeta que seleccionamos, se guardara toda la información referente a la solución que acabamos de crear, dentro de esa encontraremos el archivo del proyecto, los formularios (constan de 2 archivos). Conforme vaya trabajando en el proyecto mas archivos se irán generando, especialmente si es un proyecto complejo.

Además de los archivos antes mencionados se creará una carpeta llamada Bin en la cual se almacenaran todas las librerías adicionales que utilicemos en el proyecto es decir librerias que no pertenezcan al .Net framework y al mismo tiempo esa carpeta servirá para realizar el proceso de depuración y la generación de la solución.

Las librerías adicionales que agregamos a nuestro proyecto son copiados a la carpeta Bin del proyecto, si necesitamos utilizar a alguna librería que ya la hayamos agregado a otro proyecto, podemos buscarla en la carpeta Bin de ese proyecto, esto es especialmente útil, cuando borramos por error la librería que descargamos de Internet y no queremos volver a descargarla.

Agregando la librería al proyecto.
Ahora agregaremos la referencia a iTextSharp, Vamos a hacer clic en el menú Proyectoà Agregar referencia (Imagen 5), Nos aparecerá un cuadro de dialogo con cuatro pestañas (Imagen 6), vamos a hacer clic en la pestaña Examinar, nos mostrara un cuadro de dialogo similar al cuadro de dialogo abrir de cualquier programa de Windows, simplemente hay que movernos entre las carpetas hasta encontrar el archivo iTextSharp.dll La ubicación del archivo dependerá del lugar en donde haya descargado y descomprimido el archivo, una vez seleccionado encontrado el archivo, selecciónelo y haga clic en aceptar. La referencia será agregada al proyecto, pero no aparecerá ningún icono ya que esta libreria no posee una interfaz gráfica.

Img5
Img6
En caso que este utilizando Visual Web Developer Express, en lugar de Visual Basic Express, el procedimiento es similar, haga clic en el menú Sitio Web –> Agregar referencia. Se habrira el cuadro de dialogo agregar referencia, muévase entre las carpetas hasta encontrar el archivo itextsharp.dll y haga clic en aceptar.

Con el procedimiento anterior ya tenemos agregada la referencia de la libreria iTextSharp a nuestro proyecto, pero aun no podemos utilizarla, ya que necesitamos agregar los espacios de nombres los cuales nos permitirán declarar los tipos de datos que necesitaremos para crear los archivos PDF.

Imports iTextSharp.text
Imports iTextSharp.text.pdf

Ya podemos crear en archivo PDF, in embargo los archivos PDF no se generan en memoria sino en un archivo en el disco duro de la computadora o del servidor, por lo que es necesario importar los espacios de nombres que no permitan escribir en el disco duro para no tener ningun inconveniente.

Imports System
Imports System.IO

¿Que son los documentos PDF?

PDF (acrónimo del inglés portable document format, formato de documento portátil) es un formato de almacenamiento de documentos, desarrollado por la empresa Adobe Systems. Este formato es de tipo compuesto (imagen vectorial, mapa de bits y texto).

Está especialmente ideado para documentos susceptibles de ser impresos, ya que especifica toda la información necesaria para la presentación final del documento, determinando todos los detalles de cómo va a quedar, no requiriéndose procesos anteriores de ajuste ni de maquetación.

Características
  • Es multiplataforma, es decir, puede ser presentado por los principales sistemas operativos (Windows, Unix/Linux o Mac), sin que se modifiquen ni el aspecto ni la estructura del documento original.
  • Puede ingerir cualquier combinación de texto, elementos multimedia como vídeos o sonido, elementos de hipertexto como vínculos y marcadores, enlaces y miniaturas de páginas.
  • Es uno de los formatos más extendidos en Internet para el intercambio de documentos. Por ello es muy utilizado por empresas, gobiernos e instituciones educativas.
  • Es una especificación abierta, para la que se han generado herramientas de software libre que permiten crear, visualizar o modificar documentos en formato PDF. Un ejemplo es la suite ofimática OpenOffice.org y el procesador de textos LaTeX.
  • Puede cifrarse para proteger su contenido e incluso firmarlo digitalmente.
  • El archivo PDF puede crearse desde varias aplicaciones exportando el archivo, como es el caso de los programas de OpenOffice.org y del paquete ofimático Microsoft Office 2007 (si se actualiza a SP2).
  • Puede generarse desde cualquier aplicación mediante la instalación de una impresora virtual en el sistema operativo, en caso de usar aplicaciones sin esa funcionalidad embebida.
  • Es el estándar ISO (ISO 19005-1:2005) para archivos contenedores de documentos electrónicos con vistas a su preservación de larga duración.[2]
  • Los documentos PDF son independientes del dispositivo, el mismo archivo puede imprimirse en una impresora de inyección de tinta o una filmadora. Para la optimización de la impresión podremos configurar las opciones de creación del archivo PDF.
Los archivos PDF, junto con las aplicaciones que podían ver y crear este tipo de documentos, comenzaron a desarrollarse a partir de 1991, y su adopción comercial y general era muy reducida. Su software se distribuía como software de licencia comercial. En esa época el visor de documentos PDF estaba disponible de forma gratuita, pero no de forma libre.

Las versiones tempranas de los documentos PDF no tenían hipervínculos externos; por este motivo, su adopción en Internet era considerablemente reducida y no tenía mucha popularidad. En esos tiempos, eran comunes las conexiones a Internet a través de módem telefónico, y el tamaño de los documentos PDF era mucho más grande que otros tipos de documentos, como el texto simple (sin formato), por ejemplo; por lo tanto, la banda ancha fue un factor clave para su aceptación en Internet. Además, ya existían otros tipos de documentos que le hacían fuerte competencia al tipo de documentos PDF, como por ejemplo, los documentos "PostScript" (.ps), los cuales, en esos tiempos, eran considerablemente comunes.

Con el tiempo, los documentos PDF fueron adquiriendo popularidad de varias formas diferentes, como publicidad. Este tipo de documentos empezó a popularizarse considerablemente, hasta convertirse en un estándar. Este tipo de documento es visto como una página digital que está lista para imprimirse exactamente como se muestra en la pantalla, sin problemas de márgenes a la hora de imprimir, tal como sucede en otros documentos digitales.

En los años recientes de su popularidad, han salido varias aplicaciones lectoras de este tipo de archivos. Su popularidad ha abierto la posibilidad de crear documentos PDF con programas de software libre, como lo hace en la actualidad OpenOffice.org. Otras aplicaciones, son incluso capaces de editarlos, sin necesidad de usar la típica aplicación para crear y editar documentos PDF de Adobe.

El formato de archivos PDF ha cambiado varias veces, pues las nuevas versiones del Acrobat de Adobe se han lanzado. Ha habido nueve versiones de PDF:
  • (1993) - PDF 1.0 / Acrobat 1.0
  • (1994) - PDF 1.1 / Acrobat 2.0
  • (1996) - PDF 1.2 / Acrobat 3.0
  • (1999) - PDF 1.3 / Acrobat 4.0
  • (2001) - PDF 1.4 / Acrobat 5.0
  • (2003) - PDF 1.5 / Acrobat 6.0
  • (2005) - PDF 1.6 / Acrobat 7.0
  • (2006) - PDF 1.7 / Acrobat 8.0
  • (2008) - PDF 1.7, Adobe Extension Level 3 / Acrobat5.00
Formato de documento PDF
Independientemente de como se haya creado el documento PDF, todos ellos comparten la misma estructura interna compuesta de cuatro partes:
  • Cabecera: Información sobre la especificación del estándar PDF que se ha seguido en donde se indica, por ejemplo, la versión.
  • Cuerpo: Descripción de los elementos usados en las páginas del documento.
  • Tabla de referencias cruzadas: Información de los elementos usados en las páginas del documento.
  • Coda: Indica donde encontrar la tabla de referencias cruzadas.
Hay que notar que cuando un archivo PDF es modificado y se añade nuevo contenido, éste tendrá nuevas secciones de cuerpo, tabla de referencias cruzadas y coda pero al guardar este documento podemos optimizarlo para que las secciones duplicadas se fusionen en sólo una y se reorganice el archivo.

Introducción a iTexSharp

iTextSharp es una librería que permite crear y manipular archivos en PDF. Desde que me inicie en el mundo de la programación Web me vi en la necesidad de tener que crear reportes de una forma similar a como lo hacía en las aplicaciones de Windows, sin embargo no era tan sencillo, en las aplicaciones de Windows utilizaba como motor de base de datos Microsoft Access (muchos dirán que no sirve, pero a mi experiencia y lo que les enseñe a mis estudiantes durante los semestres que fui profesor de programación, no importa si usas Access, SQL o MySQL, ninguno es mejor que otro propiamente, sino que el mejor es aquel que cumpla con tus necesidades sin desperdiciar recursos o solicitando super computadoras para poder utilizar el sistema) y como reporteador utilizaba Crystal Reports.

Al pasar a las aplicaciones web, necesitaba un motor de base de datos más robusto ya que no iba a trabajar con 3 o 4 usuarios al mismo tiempo, sino que mi primer sistema iba a trabajar con al menos 40 usuarios de forma simultánea y en diferentes partes de México y aunque en un principio la base de datos de Access hubiese funcionado a la larga se iba a convertir en un cuello de botella para la aplicación, así que fue en ese momento cuando decidí cambiarme a SQL Server en aquella época iniciaban las versiones express que aun con sus limitantes era suficiente para iniciar el proyecto y migre toda la información y código para poder utilizar una base de datos SQL Server, sin embargo debido a su forma de trabajar, se me dificultaba mucho el crear reportes con Crystal reports ya que tanto el reporteador como el motor de la base de datos necesitaban acceso exclusivo a la base de datos era muy difícil poder hacer que coexistieran. Busque información en internet y como era realmente poca mi experiencia con SQL no pude hacer que funcionara correctamente. Por lo que tuve que buscar otras alternativas y en eso llego la idea que crear directamente archivos en PDF.

La búsqueda de alguna herramienta o librería para hacer este tipo de trabajo no fue fácil, busque muchas opciones, algunas más complejas que otras, hasta que di con una librería que en este momento no recuerdo su nombre, era sencilla, fácil, tan fácil como enviar las cadenas para que creara el documento, indicar cuantas celdas iba a tener la tabla y comenzar a enviar los datos, era de cierta forma justo lo que yo buscaba, pero como no todo es tan sencillo, me topé con 2 grandes problemas, el primero era que no tenía un control total sobre el documento, no podía configurar muchas de las características de los textos como negritas o cursiva entre texto normal, o que necesitaba un tratamiento especial en las imágenes para poder pegarlas al documento. En primera instancia no parecía algo tan malo, pero conforme quise avanzar en el proyecto y crear mi documento exactamente como yo lo deseaba se comenzó a complicar la situación. Por otro lado, al investigar más afondo esta librería, resulto que el proyecto tenía unos 4 meses que había sido abandonado así que no tenía sentido que continuara utilizando una librería que al cabo de 1 o 2 años, ya no iba a tener soporte o que no se iban a corregir más los errores.

Opte por buscar otras alternativas hasta que di con iTextSharp, en un principio fue muy difícil entender su funcionamiento, en primera porque toda la documentación estaba enfocada para trabajar con java, y yo utilizaba la versión para .NET.

Yo me considero a mí mismo un programador que tiene la capacidad de aprender rápidamente otro lenguaje, se programar en java, pero por mi experiencia en la plataforma .NET se me facilita más trabajar en esos lenguajes C# o VB. Decidí darle una oportunidad y como todo, en un principio me enfoque en crear un documento sencillo con la clásica frase “Hola Mundo” (Ya no utilizo esa frase, ahora utilizo “Hola Ke Hace”) y funciono, poco a poco fui entendiendo el funcionamiento de esta librería, la eh usado por varios años, eh aprendido a crear documentos muy vistosos, con gran cantidad de estilos de fuente, tipos de fuente, tamaños, imágenes y tabla de diferentes tipos.

Día a día he seguido aprendiendo ya que la utilizo en varios de mis proyectos, desde hace mucho tiempo, la eh recomendado, incluso la eh implementado en mis clases, pero más allá de eso, quise comenzar un libro acerca de esta librería, con ejemplos, sin embargo por cuestiones de tiempo no eh podido terminar, mas sin embargo en uno de los foros en que solía participar recomendé esta librería y subí las primeras parte de ese libro que yo quería terminar de escribir y recibí críticas positivas. Ahora nuevamente intentare hacer un poco más, ya no en un simple libro, sino publicando a travéz de este blog aquellos ejemplos que tenía listos y algunos que eh aprendido desde aquel entonces.

Espero que esta serie de ejemplos les sean tan útiles para ustedes, como lo fueron para mi conforme fui aprendiendo.

miércoles, 6 de septiembre de 2017

Crear USB Booteable para instalar Windows 7 o superior

Para crear el USB podemos encontrar varios programas en internet, pero es mejor hacerlo de forma manual, porque sabemos lo que le metemos al USB, a mí nunca me ha fallado y por último, si ocupamos realizar este proceso lo podemos hace en cualquier pc, incluso si no tiene Windows vista o superior, puede iniciar la instalación y con el mismo instalador realizar el procedimiento.
Para realizar este proceso requerimos:
  • Una Pc con Windows Vista o superior (Puede utilizar el instalador)
  • Memoria USB con 4 Gb o más.
  • Disco de instalación de Windows o ISO (se deben extraer las carpetas y archivos del ISO)
  • img1

Una vez que tengamos todo listo vamos a comenzar.
1. Si lo vamos a hacer desde Windows Vista hay que abrir el intérprete de Comandos (CMD.exe) si lo vamos a hacer con el disco de instalación de Windows al estar en la pantalla de selección de disco para instalar vamos a presiona las teclas Shift (mayus) + F10 para abrir el intérprete de comando (CMD.exe).img2
2. En el intérprete de comando escribimos diskpart y presionamos Enter.
3. Tardará unos segundos en iniciarse el programa diskpart, ya que se abra, vamos a escribir list disk y presionamos Enter.
4. Nos va a aparecer la lista de discos que tenga conectados la computadora. Aquí lo importante es detectar la memoria, ya que nos va a mostrar todos los discos incluyendo los discos duros. En el caso de las memorias es fácil identificarlo por el tamaño, en este caso, para mi es fácil porque sé que la memoria es de 14Gb y es la que muestra como Disco 2. Este proceso es delicado porque si nos equivocamos y tenemos más de 1 disco podemos eliminar el contenido del disco. Escribiremos Select Disk 2 (el numero depende del número asignado por diskpart) y presionamos Enter.
5. Vamos a limpiar el disco con el comando clean y luego Enter.
6. Una vez limpio el disco escribimos Create partition Primary y presionamos enter.
7. Ya que creamos la partición la vamos a activar con el comando Active y luego enter.
8. Ya que este activa la partición la vamos a formatear como ntfs con el comando format fs=ntfs img3y vamos a presionar enter. Esperaremos a que termine, el proceso puede tardar unos 15 o 20 minutos dependiendo del tamaño de la memoria.
9. Una vez que termine de formatear asignamos la unidad con el comando Assign y luego enter.
10. Y escribimos exit para salir del intérprete de comandos.
Con esto ya tenemos la memoria lista para copiar el contenido del cd o el ISO y que sea booteable
Podemos revisar que la memoria esta asignada en Equipo, como se ve en la siguiente imagen.
11. Ya que este asignada la letra a la memoria vamos a copiar el contenido a la memoria con la img5instrucción xcopy f:*.* /s/e/f h:/ donde la F es la unidad donde este el disco de instalación (puede ser el directorio donde este el contenido del ISO) y H: es la letra que se le asignó a la memoria USB presione Enter, hay que esperar a que termine el proceso de copia de archivos el cual puede tomar varios minutos dependiendo del sistema operativo a instalar y la velocidad de la memoria.
img6img7
Ya que finalice puede comprobar que la memoria esta correcta, quitándola y volviéndola a conectar, si lo hace a través de Windows aparecerá el icono de instalación igual que el CD.
img8
Ahora solo hace falta configurar la computadora para permitir el inicio desde la memoria USB