jueves, 1 de marzo de 2012

PDF gratuito desde ASP

Tras muchos años de buscar la forma de realizar documentos en pdf desde ASP de forma gratuita (y legal), al final encontré la clase fpdf en el sitio http://www.fpdf.org/, como podéis ver está en php, pero desde el sitio http://www.aspxnet.it  nos dan una versión ASP que funciona. Por desgracia este sitio está ahora "en contrucción" por lo que no es accesible. El sitio http://www.fpdf.org/ posee además tutoriales, FAQ, y algunos ejemplos de cómo usar esta clase.

Me gustaría ofreceros este ejemplo por si os puede ser tan útil como nos ha sido a nosotros aquí en Disoltec para realizar todo tipo de documentos con pdf (facturas, ofertas, albaranes, listados, etc ...).

Podéis descargaros la clase fpdp y los ficheros usados para este ejemplo en este enlace: fpdf.zip. Puedes probarlo en el siguiente formulario de ejemplo. Puedes usar este ejemplo y modificarlo libremente para tus fines.

El fichero formulario.html lanza el asp Ejemplo.asp donde está la lógica para crear los pdf. El ejemplo es un poco rudimentario, pero permite jugar y crear documentos con total libertad. hemos controlado el tema de los númericos, pero puede haber errores si se introducen los datos sin cuidado.

Para probar a crear facturas, ofertas, albaranes o listados con varias páginas podéis poner hasta 100 líneas (repite siempre la descripcion, precio y unidades introducidas), modificando el campo número de líneas. Lo idóneo es que las líneas salgan de una base de datos, con lo que estos problemas desaparecen, sólo queríamos mostrar cómo se crean varias páginas en el mismo pdf.

Si necesitas alguna ayuda, puedes escribir la consulta en el blog y para un contacto personal escribe a disoltec@disoltec.es o al tfno. 96 117 33 42.

17 comentarios:

  1. hola,

    se puede partir ya de un documento pdf creado y modificar algo dentro de él?

    Gracias!

    ResponderEliminar
  2. Buenas Víctor, no es posible hacer lo que comentas ya que generamos un pdf a partir del contenido que generamos, pero no es posible abrir un pdf "plantilla" existente y modificarlo con valores de nuestra base de datos.

    Saludos,

    ResponderEliminar
  3. Muchísimas gracias, me ha servido bastante ya que buscaba esto para realiza las facturas desde asp clasic.

    Una pregunta, ¿Se podría modificar el código para que en vez de que la factura se muestre en el navegador, se guarde en la computadora? Por ejemplo para generar unas facturas automáticas de varios clientes que pagan cuotas mensuales.

    Si no te importa, me gustaría también poner esta noticia en mi blog. http://jabatogames.blogspot.com

    Gracias

    ResponderEliminar
    Respuestas
    1. Perdón por haber tardado tanto en responder, por supuesto que puedes enlazar la noticia a tu blog, muchas gracias.

      Lo de generar los ficheros y guardarlos en el servidor entiendo que sí, es posible modificando el ejemplo para que lea los datos de la base de datos donde estén guardadas estas facturas mensuales. Lo único es dar permisos de escritura al usuario que ejecuta el ASP en el disco duro del servidor.

      Saludos,

      Eliminar
  4. Buenas tardes, antetodo quisiera darte las gracias pues me ha sido de mucha utilidad lo aqui expuesto.
    Tengo un problema que no he podido solucionar, creo un pdf muy parecido al de tu ejemplo, pero cuando lo carga, no me carga la imagen, me sale el siguiente error:

    Hay un error en esta página; puede que Acrobat no la muestre correctamente, Dirijase a la persona que creó el documento PDF para resolver el problema.

    He leido y he probado tanto las soluciones para el acrobat como para el programa pero no lo logro.

    Agradezco tu ayuda.
    Gracias
    Saludos

    María Alejandra

    ResponderEliminar
  5. Hola Maria Alejandra,

    Si envias a disoltec@disoltec.es una captura de pantalla del error y el código ASP desde el que estás generando el pdf, podríamos mirarlo a ver si encontramos dónde está el problema.

    Saludos,

    ResponderEliminar
  6. Buenos dias, le envié el correo con la información, muchas gracias por responder.

    ResponderEliminar
  7. Muchas Gracias, funciona perfectamente, lo unico es, se puede introducir alguna fuente nueva?? En php esta explicado, pero en asp clasico no, me pueden echar una mano?? Gracias....

    ResponderEliminar
  8. Holas, podrias por favor indicarme como le añado una fuente extra a FPDF, en asp necesita un archivo js, he tratado modificando lo que hay para php pero sigo sin poder añadir una fuente (calibri), gracias de antemano por tu respuesta.

    ResponderEliminar
  9. Hola, está muy buena está forma de crear el PDF, me ha servido de mucho en mi trabajo, pero tengo una duda:

    Como puedo cambiar la orientación del documento ??

    Necesito hacerlo en forma horizontal para agregar mas campos de título !!

    Te agradeceré me puedas ayudar ..

    Saludos y gracias !!!!

    ResponderEliminar
  10. Para cambiar la orientación
    cambiar:
    pdf.CreatePDF()
    Por:
    pdf.CreatePDF "l","mm","A4"

    ResponderEliminar
  11. Hola, después de pasearme por bastantes pag, di con Vds. gracias por este blog, no sabes cuanto me a ayudado.
    Me gustaría hacer que el texto fuese escrito de forma "vertical" y no encuentro la manera.
    Ejem.
    "
    pdf.Text 10, 267, "ESTE ES EL TEXTO QUE ME GUSTARIA PASAR A VERTICAL"
    "
    Podrías ayudarme?
    Sl2 y muchísimas gracias por este trabajo !

    ResponderEliminar
  12. Hola, estoy usando FPDF con ASP, pero no logro mostrar los acentos incluidos en un campo del formulario. Tu ejemplo esta excelente tampoco lo permite. Probe combinaciones con charset, pero no lo consigo. Sabes como solucionarlo ?

    ResponderEliminar
  13. Esta muy bueno el blog, el trabajo del ejemplo excelente....quería consultarte si permite la escritura en vertical

    ResponderEliminar
  14. Alguien me puede orientar sobre como mostrar el pdf en el cliente sin necesidad de grabarlo en el servidor?

    Muchas gracias

    ResponderEliminar
  15. Hola, Buen Día, Para ejecutar el ejemplo, hay que hacer alguna instalación en el servidor?? Gracias

    ResponderEliminar