La solución fue...
en vez de poner...
Using perl Syntax Highlighting
print "Content-type:application/pdf\n\n";
print $pdf->to_string();
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
para que el PDF se muestre en el
browser, se tiene que poner:
Using perl Syntax Highlighting
$pdf->to_file('/tmp/'.$param.".pdf");
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
De esta forma, el documento PDF sí es generado, aunque no tengo una respuesta del porqué.
Luego un botón para descargar el PDF y listo. No me gusta mucho que el PDF se genere a la vez que el informe (ya que tenía pensado enviarlo por POST si y solo si desea el PDF), pero por el momento la velocidad de respuesta ni se nota...
Probé otros módulos Perl, pero para lo que necesitaba HTML::HTMLDoc es la mejor opción que encontré, ya que en otros tenía que hacer una por una, todas las líneas de la tabla, y blabla
...
Al final quedó así...
Using perl Syntax Highlighting
use HTML::HTMLDoc();
my $htmldoc = new HTML::HTMLDoc();
$htmldoc->set_logoimage('/var/www/images/logo.jpeg');
$htmldoc->set_header('.', 'l', '.');
$htmldoc->set_html_content($contenido); # en $contenido va el html <html><head>...
my $pdf = $htmldoc->generate_pdf();
$pdf->to_file('/tmp/'.$param.".pdf");
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
y a su vez, un botón para descargar desde la ruta:
Using perl Syntax Highlighting
print "<form action=\"../download.php\" method=\"POST\">
<input style=\"font-family: Arial, sans-serif; font-size: 10 pt\" type=\"submit\" value=\"Informe PDF\" />
<input type=\"hidden\" name=\"id\" value=\"".$param.".pdf"."\">
</form>";
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Y el código PHP para descargar el documento en PDF:
Using php Syntax Highlighting
<?php
$id = $_POST['id'];
$enlace = "/tmp/".$id;
header("Content-disposition: attachment; filename=informe.pdf");
header ("Content-Type: application/pdf");
readfile($enlace);
?>
Coloreado en 0.021 segundos, usando
GeSHi 1.0.8.4
Si alguien tiene un
script para descargar PDF en Perl, creo que tendríamos la solución completa
¡¡¡Muchas gracias!!!