Fecha de publicación del tutorial: 2007-03-20

Tutorial visitado 11.916 veces Descargar en PDF
Creación de documentos PDF en sitios web utilizando el componente AspPDF - Carixma

Creación de documentos PDF en sitios web utilizando el componente AspPDF

 

1- Introducción

En este tutorial, se presentarán las características principales del componente ASP-PDF que permite gestionar documentos PDF en páginas web, se mostrarán varios ejemplos de su utilización.

Se puede consultar toda la documentación sobre este componente en la siguiente dirección web: http://www.asppdf.com

 

2- Conceptos generales sobre ASP-PDF

AspPDF es un componente ActiveX que permite, a través de páginas ASP, la creación, lectura y modificación de documentos PDF sobre el servidor web.

Con él, podrás generar tus propios documentos PDF para múltiples aplicaciones: creación de facturas online, presupuestos online, recibos, creación de informes financieros, hojas de productos, etc.

Se puede descargar desde la dirección: http://www.asppdf.com/download.html (Versión de evaluación de 30 días)

Se solicita una dirección de email para enviarnos una clave temporal y procedemos a descargarnos el archivo.

Para su instalación, necesitaremos tener instalado un sistema operativo Windows XP Professional ó Windows Server 200, 2003 e IIS (Internet Information Server). Los pasos a seguir son:

  1. Ejecutar el archivo descargado asppdf.exe
  2. Aceptar las condiciones de uso
  3. Incluir la clave enviada por Persist (30 días de evaluación) en la dirección de correo indicada anteriormente.

    Instalacion ASPPDF

  4. Reiniciar los servicios del IIS


  5. Instalacion ASPPDF
  6. Instalación del componente

  7. Instalacion ASPPDF

  8. Finalización de la instalación, permite la posibilidad de leer el manual del componente en la siguiente dirección por defecto: C:\Archivos de programa\Persits Software\AspPDF\Documentation\manual.html

    Instalacion ASPPDF

Características del componente AspPDF

Algunas de las funcionalidades disponibles de este componente de servidor:

  • Capacidad de modificar, leer y generar de manera automática y directa, documentos PDF.
  • Permite leer los documentos desde su espacio en disco o desde base de datos.
  • Puede guardar los documentos PDF en disco, en memoria (método que permite salvar en base de datos) o enviarlos al navegador vía HTTP, utilizando los métodos: SaveToMemory o SaveHttp.
  • Permite insertar imágenes, soportando los formatos GIF, JPEG, BMP y TIFF.
  • Puede incluir texto formateado (posición, tamaño, tipo de letra, color, etc.).
  • Relleno de formularios.
  • Permite crear gráficos y dibujos mediante líneas, curvas, etc.
  • Soporte para campos de formulario interactivos como cajas de texto, botones o cajas de selección.
  • Extracción, inserción o eliminación de páginas.
  • Protección del documento o partes del mismo con contraseña.

 

3- Primer ejemplo de utilización del componente AspPDF: "Hola mundo"

Vamos a presentar el primer ejemplo de utilización de AspPDF, con la generación de un documento PDF que presente la famosa frase "Hola Mundo", para ello utilizaremos el siguiente código:


<%@LANGUAGE="VBSCRIPT"%>
<%
' iniciar el objeto
Set Pdf = Server.CreateObject("Persits.Pdf")
' iniciar el documento
Set Doc = Pdf.CreateDocument
' propiedad "título" del documento
Doc.Title = "Ejemplo 1: Hola Mundo"
' añadir página
Set Page = Doc.Pages.Add
' indicar la tipografía del documento (hasta nueva orden)
Set Font = Doc.Fonts("Arial")
' coordenadas y otros parámetros para el texto
Params = "x=0; y=650; width=612; alignment=center; size=50"
' escribir el texto con los parámetros
Page.Canvas.DrawText "Hola Mundo", Params, Font
' generar el fichero
' Se indica la ruta final donde se guardará el archivo
Filename = Doc.Save(Server.MapPath("/archivos/pdfs/hola.pdf"), False )
' mostrar el enlace en la página web
Response.Write "¡Enhorabuena!, ya puedes descargar el fichero PDF creado <A HREF=/archivos/pdfs/" & Filename & ">aquí</A>"
%>

Puedes copiar y pegar este código y probarlo en tu servidor web, para comprobar cómo se genera tu primer documento pdf de forma automática.

4- Ejemplo del tutorial: Realización de factura online

A continuación, presentamos un ejemplo completo de utilización del componente AspPDF para la generación de facturas online en una aplicación web:

El siguiente código muestra un formulario para solicitar los datos necesarios para implementar una factura, la página la llamaremos formulario_factura.asp:


<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formulario de datos</title>
</head>
<body>

<h1>Formulario de recogida de datos</h1>
<form name="frmFactura" method="post" action="genarar_factura_pdf.asp">
<table width="600" height="100%" border="0" cellpadding="2" cellspacing="0">
<tr><td width="150" class="cuerpoPequeno"><b>Número de Factura:</b></td><td><input type="text" name="nfactura" size="10" maxlength="10" value="" title="Número de factura"></td></tr>
<tr><td width="150" class="cuerpoPequeno"><b>Cliente:</b></td><td><input type="text" name="cliente" size="50" maxlength="250" value="" title="Escriba aquí el nombre del cliente"></td></tr>
<tr><td width="150"><b>CIF:</b> </td><td><input type="text" name="cif" value="" size="15" maxlength="10" title="Escriba aquí el CIF del cliente"> (mín. 7 dígitos)</td></tr>
<tr><td width="150" class="cuerpoPequeno"><b>Base Imponible:</b></td><td><input type="text" name="precio" size="6" maxlength="6" value="0">&nbsp;Euros</td></tr>
<tr><td width="150" class="cuerpoPequeno"><b>Fecha:</b></td><td><input type="text" name="fecha" size="10" maxlength="10" value="<%= date() %>"></td></tr>
<tr><td width="150" class="cuerpoPequeno"><b>Concepto:</b></td>
<td><textarea name="concepto" cols="40" rows="4"></textarea></td>
</tr>
<tr><td colspan="2" align="center"><input type="submit" name="enviar" value="Enviar"></td></tr>
</table>
</form>
</body>
</html>



Formulario factura PDF

El siguiente código muestra la página de recogida de la información del anterior formulario y la generación del archivo pdf utilizando el componente AspPDF utilizando maquetación con HTML, el directorio de destino del archivo pdf creado, debe tener permisos de escritura:

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formulario de generación de PDF</title>
</head>
<body>
<%
sNFactura = trim(request("nFactura"))
sCliente = trim(request("Cliente"))
sBase = trim(request("Precio"))
sCif = trim(request("Cif"))
sFecha = trim(request("Fecha"))
sConcepto = trim(request("Concepto"))

' Creamos una instancia del componente AspPDF
Set Pdf = Server.CreateObject("Persits.Pdf")

' Creamos un nuevo documento vacío
Set Doc = Pdf.CreateDocument

' Indicamos título y creador del documento
Doc.Title = "Factura Online"
Doc.Creator = "carixma.com"

' Añadimos una nueva página
Set Page = Doc.Pages.Add

' Establecemos la fuente para el texto
Set Font = Doc.Fonts("Arial")

' Insertamos el texto del PDF
Params = "x=0; y=750; width=552; alignment=center; size=30"
Page.Canvas.DrawText "Factura de compra", Params, Font

Params = "x=50; y=700; width=552; alignment=left; size=15; html=true"

Page.Canvas.DrawText "<b>Fecha:</b> " & sFecha, Params, Font

sTexto = "<p align=""justify"">Número de Factura: <b>" & sNFactura & "</b></p>"
sTexto = sTexto & "<p align=""justify"">Cliente: " & sCliente & "</p>"
sTexto = sTexto & "<p align=""justify"">CIF: " & sCif & "</p>"
sTexto = sTexto & "<br><br><p align=""justify"">Base Imponible:<b>" & sBase & "</b></p>"
sTexto = sTexto & "<br><br><p align=""justify"">Concepto:" & sConcepto & "</p>"

Params = "x=50; y=650; width=552; alignment=left; size=15; html=true"
Page.Canvas.DrawText sTexto, Params, Font

Params = "x=50; y=310; width=552; alignment=left; size=15"
Page.Canvas.DrawText "FIRMA", Params, Font

' Guardamos el documento en disco
' El directorio 'pdf' debe tener permiso de escritura
sFichero = "pdf\factura.pdf"
Filename = Doc.Save( Server.MapPath(sFichero), true)

response.redirect sFichero
%>
</body>
</html>

El siguiente código muestra la página de recogida de la información del anterior formulario y la generación del archivo pdf utilizando el componente AspPDF sin utilizar maquetación con HTML, sino directamente las instrucciones del componente AspPDF:


<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formulario de generación de PDF</title>
</head>
<body>
<%
sNFactura = trim(request("nFactura"))
sCliente = trim(request("Cliente"))
sBase = trim(request("Precio"))
sCif = trim(request("Cif"))
sFecha = trim(request("Fecha"))
sConcepto = trim(request("Concepto"))

' Creamos una instancia del componente AspPDF
Set Pdf = Server.CreateObject("Persits.Pdf")

' Creamos un nuevo documento vacío
Set Doc = Pdf.CreateDocument

' Indicamos título y creador del documento
Doc.Title = "Factura Online"
Doc.Creator = "carixma.com"

' Añadimos una nueva página
Set Page = Doc.Pages.Add

' Establecemos la fuente para el texto
Set Font = Doc.Fonts("Arial")

' Insertamos el texto del PDF
Params = "x=0; y=750; width=552; alignment=center; size=30"
Page.Canvas.DrawText "Factura de compra", Params, Font

Params = "x=50; y=700; width=552; alignment=left; size=15; html=true"

Page.Canvas.DrawText "<b>Fecha:</b> " & sFecha, Params, Font

sTexto1 = "Número de Factura: " & sNFactura
sTexto2 = "Cliente: " & sCliente
sTexto3 = "CIF: " & sCif
sTexto4 = "Base Imponible: " & sBase
sTexto5 = "Concepto: " & sConcepto

Params = "x=50; y=650; width=552; alignment=left; size=15; html=true"
Page.Canvas.DrawText sTexto1, Params, Font

Params = "x=50; y=600; width=552; alignment=left; size=15; html=true"
Page.Canvas.DrawText sTexto2, Params, Font

Params = "x=50; y=550; width=552; alignment=left; size=15; html=true"
Page.Canvas.DrawText sTexto3, Params, Font

Params = "x=50; y=500; width=552; alignment=left; size=15; html=true"
Page.Canvas.DrawText sTexto4, Params, Font

Params = "x=50; y=450; width=552; alignment=left; size=15; html=true"
Page.Canvas.DrawText sTexto5, Params, Font

Params = "x=50; y=310; width=552; alignment=left; size=15"
Page.Canvas.DrawText "FIRMA", Params, Font

' Guardamos el documento en disco
' El directorio 'pdf' debe tener permiso de escritura
sFichero = "pdf\factura.pdf"
Filename = Doc.Save( Server.MapPath(sFichero), true)

response.redirect sFichero
%>
</body>
</html>

La diferencia, es que en la primera opción, podemos incluir el contenido formateado en HTML, utilizando tables, párrafos, fonts, ... mientras que en el segundo ejemplo, se utiliza la instrucción DrawText para ir colocando todo el contenido de forma correcta utilizando los parámetros "y" y "x".

5- Conclusión

En este tutorial se muestran las características generales del componente ASP-PDF que permite gestionar documentos PDF desde una aplicación web.

Se muestran varios ejemplos de su utilización, ejemplos para la maquetación y presentación de textos e imágenes, pudiendo realizarse muchas más funciones como gráficos, tablas, etc. En el manual completo, se presentan varios ejemplos para su uso y aplicación.

Se puede utilizar este componente para múltiples usos: generación de facturas online, recibos, documentación de productos, currículos, portafolios, presupuestos, etc.

Quiero destacar las siguientes referencias con información y utilidades muy interesantes sobre ASP-PDF, que se han utilizado para la realización de este tutorial.

Puedes consultar el manual completo del componente ASP-PDF en la siguiente dirección:

http://www.asppdf.com/manual.html

También puedes consultar el detalle de todos sus objetos y métodos en la siguiente dirección

http://www.asppdf.com/objectreference.html

Algunas direcciones de interés son:

http://www.arsys.es/ayuda/directorio/productos/hosting/asppdf.htm
http://www.arsys.es/ayuda/guias/componentes-activex/asppdf.htm

Por último, en este tutorial he puesto la mejor intención para presentar esta componente tan útil para el desarrollo de documentos pdfs dinámicos en sitios web, pero puedo haberme equivocado en algún aspecto de este tutorial, si alguien desea aportar datos, o colaborar, o corregirme, estaré encantado de recibir y estudiar su respuesta en icaballero@carixma.com

SOBRE EL AUTOR...

 

 

A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Share |
Anímate y coméntanos lo que pienses sobre este TUTORIAL: