• Publicidad

Reporte PDF con formato HTML

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Reporte PDF con formato HTML

Notapor situ » 2007-09-30 13:44 @614

Buenas. En este caso los molesto porque estoy tratando de imprimir en un archivo PDF el contenido de un archivo HTML, y el resultado que obtengo no es el que quiero, ya que el contenido de PDF se forma con el código fuente del HTML y no con su contenido.

Les dejo el código:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/bin/perl

use PDF::Report;

my $pdf = new PDF::Report(
                          PageSize => 'A4',
                          PageOrientation => 'Portrait'
);

$pdf->newpage(1);
$pdf->setFont('Helvetica-bold');
$pdf->setSize(14);
my ($width, $height) = $pdf->getPageDimensions();

$pdf->centerString(0, $width, $height-40, "Reporte");

$pdf->setFont('Helvetica');
$pdf->setSize(10);

open (DATOS,"reporte.html");
while (@linea = <DATOS>){
    my $text1= "@linea";
    $pdf->addParagraph($text1, 30, $height-70, $width-60, 30, 25, 10);

}

open(PDF, "> reporte.pdf") or die "ERROR: No puedo escribir en reporte.pdf: $!\n";
print PDF $pdf->Finish();
close(PDF);
 
exit;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Publicidad

Notapor explorer » 2007-09-30 16:42 @737

Pues yo veo que el programa hace exactamente lo que le estás mandando hacer... saca en PDF el código fuente HTML de la página.

Lo que necesitas es un módulo que convierta a PDF no el código HTML sino la página HTML ya renderizada. Por ejemplo: PDF::FromHTML, aunque pone que no es compatible con los estilos CSS.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor creating021 » 2007-09-30 19:06 @838

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
while (@linea = <DATOS>){
    my $text1= "@linea";
    $pdf->addParagraph($text1, 30, $height-70, $width-60, 30, 25, 10);

}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Hmmmm....

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
while (my $text1 = <DATOS>){
  $pdf->addParagraph($text1, 30, $height-70, $width-60, 30, 25, 10);
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Aunque lo que queres hacer se hace con lo que explorer dijo.
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Notapor situ » 2007-10-01 12:29 @562

Cambié el script, pero ahora obtengo el siguiente error cuando quiero instalar el módulo.

Código:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/bin/perl
use PDF::FromHTML;
   my $pdf = PDF::FromHTML->new( encoding => 'utf-8' );
    $pdf->load_file('reporte.html');
    $pdf->convert(
        # With PDF::API2, font names such as 'traditional' also works
        Font        => 'font.ttf',
        LineHeight  => 10,
        Landscape   => 1,
    );
    $pdf->write_file('reporte.pdf');
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Error:
Código: Seleccionar todo
root@tux2:/tmp/PDF-FromHTML-0.24# perl Makefile.PL
*** If you cannot install HTML::Tidy, you may use the XML::Clean
    module instead; however, you will run probably run into more
    "XML not well-formed" errors that way.
*** Module::AutoInstall version 1.03
*** Checking for Perl dependencies...
[Core Features]
- List::Util           ...loaded. (1.19)
- XML::Twig            ...loaded. (3.26)
- Graphics::ColorNames ...missing.
- LWP::Simple          ...loaded. (1.41)
- Image::Size          ...loaded. (3.01)
- PDF::Writer          ...loaded. (0.06 >= 0.05)
- HTML::Tidy           ...missing.
==> Auto-install the 2 mandatory module(s) from CPAN? [y] y
CPAN: File::HomeDir loaded ok (v0.66)
*** Dependencies will be installed the next time you type 'make'.
*** Module::AutoInstall configuration finished.
Warning: prerequisite Graphics::ColorNames 0 not found.
Warning: prerequisite HTML::Tidy 0 not found.
Writing Makefile for PDF::FromHTML

¿Alguien sabe el por qué de esto?
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor explorer » 2007-10-01 15:12 @675

Parece que no ha podido bajar los módulos que faltan.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor elnico » 2008-06-07 05:30 @270

Hola perleros.
Una pregunta, ¿este módulo también está disponible para Windows? Porque probé con "install PDF-FromHTML" en el ppm y me tira el clásico "not found. Search for it first".
Gracias de antemano.
elnico
Perlero nuevo
Perlero nuevo
 
Mensajes: 69
Registrado: 2007-09-09 14:44 @656

Notapor explorer » 2008-06-07 05:34 @274

Sí que está. Añade el repositorio trouchelle.com al PPM y allí está, la versión 0.24.

http://trouchelle.com/perl/ppmrepview.pl?l=P&v=8
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor elnico » 2008-06-07 06:41 @320

Hola y gracias por responder, explorer.

Agregué el repositorio (repository add http://trouchelle.com/ppm) y comencé la instalación del módulo PDF-FromHTML sin problemas.

Lastima que depende de otros y en la instalación me muestra un error "404 not found" porque no encuentra el módulo HTML-tidy(no está cargado en el repositorio).

Escribí install HTML-Tidy pero tampoco lo encuentra.

Creo que tendré que esperar a que arreglen el repositorio.

Saludos.
elnico
Perlero nuevo
Perlero nuevo
 
Mensajes: 69
Registrado: 2007-09-09 14:44 @656

Notapor explorer » 2008-06-07 10:02 @460

Falla porque en el sistema donde estás no tienes instalada la librería libtidy.

Eso te pasa por usar Windows. 8)
Código: Seleccionar todo
casa:~ # locate libtidy
/usr/lib/libtidy-0.99.so.0
/usr/lib/libtidy-0.99.so.0.0.0
/usr/share/doc/packages/libtidy
/usr/share/doc/packages/libtidy/license.html
casa:~ #
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor explorer » 2008-06-07 10:12 @466

JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Siguiente

Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 8 invitados