[caracas-pm] Capturar la Salida HTML producida utilizando HTML::Template en otro archivo HTML para ser llevado a PDF

Juan Jose Natera Abreu juanjose at lunarpages.com
Fri Sep 24 11:10:08 CDT 2004


Hola, algunos comentarios:

> $html = $template -> output;

Lo de arriba esta correcto y deberia hacer lo que tu esperas, si no lo
hace, entonces otra cosa esta mal.

> open (PRUEBA, ">/tmp/prueba.html");

Tienes que verificar que el archivo fue abierto:

open (PRUEBA,'>/tmp/prueba.html') || die $!;

> print PRUEBA <$html>;

La linea anterior esta mal, a menos que $html sea un filehandle que has
abierto previamente y del cual pretendes leer una linea y escribirla a
PRUEBA.

lo que tu quieres ahi es simplemente:

print PRUEBA $html;

> close (PRUEBA);

Tambien tienes que verificar que el archivo fue cerrado:

close (PRUEBA) || die $!;


En resumen, tu problema esta antes del codigo que muestras, acostumbrate
a escribir lo siguiente al principio de tus scripts y te evitaras muchos
dolores de cabeza.

use warnings;
use strict; 

> Donde $template es la variable que contiene la plantilla HTML, me di
> cuenta que haciendo esto obtengo que la variable $html contiene un valor
> nulo, Si no me equivoco esto se debe a que estoy generando un proceso y
> no cargando un valor en una variable cualquiera, puesto que output es un
> método que se aplica al objeto $template. 

Si $html es nulo, significa que algo esta antes, ya que $template no
genero nada. Si no vas a usar $html para otra cosa, podrias escribir lo
siguiente:

open (PRUEBA,'>/tmp/prueba.html') || die $!;
print PRUEBA $template->output;
close (PRUEBA) || die $!;

Aunque eso no va a cambiar el hecho de que $template->output; genere una
salida vacia. pues como mendione antes, el problema esta antes del
codigo que muestras.

Saludos,

Juan Natera




More information about the caracas-pm mailing list