Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]

29/5/10

Convertir HTML a PDF con DOMPDF

JAN29


Buscando alternativas para un trabajo que tenia, me encontre con la libreria DOMPDF, esta libreria te permite convertir archivos HTML a PDF facilmente utilizando PHP, aunque aun se encuentra en fase beta y acepta hojas de estillo (CSS) asi como tablas con formato e imagenes, no es del todo compatible con el lenguaje HTML y CSS ademas de que requiere mucho uso de RAM y Micro, pero sirve para realizar trabajos sencillos.

Lo primero, descargate la libreria desde este enlace en code google. Se encuentra en la version 0.6.0 beta y es la que utilizaremos.
Puedes tambien descargarte la documentacion y ver algunos ejemplos desde se web.

Manos a la obra

El codigo necesario para convertir HTML a PDF es :




<?php
//se incluye la libreria de dompdf
require_once("dompdf/dompdf_config.inc.php");
$code = '<html><head><title>Hola</title></head>
<body><h1>Hola Mundo</h1></body></html>';    
//se crea una nueva instancia al DOMPDF
$dompdf = new DOMPDF();
//se carga el codigo html
$dompdf->load_html($code);
//aumentamos memoria del servidor si es necesario
ini_set("memory_limit","32M"); 
//lanzamos a render
$dompdf->render();
//guardamos a PDF
$dompdf->stream("mipdf.pdf");
?>



Explicacion:

En la primera linea de codigo incluimos la libreria con la palabra reservada REQUIRE_ONCE
En la variable CODE se coloca como un string, el codigo HTML a convertir.
Luego se crea una nueva instancia al objeto dompdf y se carga el codigo HTML
Con ini_set, aumentamos la memoria del servidor que en mi caso, utilizo appserver y tiene 8M de memoria limite, esto no siempre es necesario y depende del serrvidor que utilices.
Por ultimo lanzamos a render y guardamos el PDF

El codigo de prueba utilizado es este, la Oración del Geek:


<html><head>
<title>Oracion del Geek</title>
<style type="text/css">
body{
margin: 15px 40px;
}
table{
text-align:center;
}
p{
text-align:center;
font-style:italic;
font-family:"Times New Roman", Times, serif;
font-size:20px;
}
h1{
color:#0033CC;
text-align:center;
font-style:italic;
font-weight:bold;
border-bottom:#003366 solid 3px;
}
</style>
</head>
<body>
<h1>Oración del Geek</h1>
<table width="563" align="center">
  <tr>
    <td>
    <p><img src="imagen/nerd.jpg" width="450" height="305"></p>
    <p>Padre Nuestro…  </p>
    <p>Santificado sea tu server, </p>
<p>venga a nosotros tu freeware  </p>
<p>Hágase tu downloading así en el http como en el ftp  </p>
<p>Danos hoy nuestro surfing de cada día,  </p>
<p>Perdona nuestros bugs  como nosotros también perdonamos a Microsoft.  </p>
<p>No nos dejes caer en un Mac y líbranos de todo Spyware.  </p>
<p>Enter…</p>
<p><img src="imagen/i-love-geeks.jpg" width="500" height="375"></p></td>
  </tr>
</table>
</body>
</html>

Y me da como resultado:

Lo bueno: Su uso es realmente facil y cuenta con una documentacion amplia
Lo malo: Esta en fase beta y no totalmente compatible
Lo feo: Tarda horrores al procesar tablas complejas y requiere mucha memoria

Aqui te dejo el ejemplo que yo utilice
Click para descargar
enlace actualizado abril 2012

No soy antisocial; Simplemente no soy amistoso al usuario.

4 comentarios:

Anónimo dijo...

Estamuy bien tu post es exactamente lo que estab buscando te agradezco mucho por compartir

Gustavo dijo...

Gracias por el post y aprovechando quisiera ver si me puedes ayudar. Yo estoy utilizando la librería tal y como lo muestras, el problema es que al terminar de crear el pdf se abre una ventana de diálogo en la que me pregunta si quiero verlo o guardarlo y lo que necesito es que no aparezca esa ventana sino que se guarde el archivo automáticamente en un directorio determinado pero dentro de mi server, no en la máquina del cliente. ¿No sé si eso sea posible y, de ser así cómo tengo que hacer?
Saludos y gracias...

Lau dijo...

hola!, tengo una duda, como le haces para generar directamente el pdf desde la misma pagina html, lo que pasa es q yo tengo una grafica que quiero pasar a pdf, y al poner el oton en esta pagina me genera un error y no genera el pdf.
Gracias!!!!

Carlos dijo...

Gracias mil, esta me permite arrancar con mi idea, te cuento si me funciono bien ;) saludos

Post recomendado