• Publicidad

API::PDF2

Aquí encontrarás todo lo que sea específicamente acerca de módulos de Perl. Ya sea que estás compartiendo tu módulo, un manual o simplemente tienes una duda acerca de alguno.

API::PDF2

Notapor silva » 2013-11-19 13:36 @608

Estoy queriendo generar un archivo PDF, pero que se genere en memoria y se abra al usuario desde allí, sin necesidad de guardarlo a disco y luego abrirlo desde disco. ¿Cómo se haría, qué me está faltando? Se me abre una ventana de archivo PDF, pero en blanco, vacío.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use PDF::API2;
  2.  
  3. # Create a blank PDF file
  4. my $pdf = PDF::API2->new( \*STDOUT );
  5.  
  6. print "Content-type: application/pdf\n\n";
  7. print "\n";
  8.  
  9. # Add a blank page
  10. my $page = $pdf->page();
  11.  
  12. # Set the page size
  13. $page->mediabox('Letter');
  14.  
  15. # Add a built-in font to the PDF
  16. my $font = $pdf->corefont('Helvetica-Bold');
  17.  
  18. # Add some text to the page
  19. my $text = $page->text();
  20. $text->font( $font, 20 );
  21. $text->translate( 200, 700 );
  22. $text->text('Hello World!');
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


¡¡¡Muchas gracias!!!
silva
Perlero nuevo
Perlero nuevo
 
Mensajes: 82
Registrado: 2011-05-24 05:59 @291

Publicidad

Re: API::PDF2

Notapor explorer » 2013-11-19 14:04 @628

Quizás te falta la instrucción de $pdf->save();
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14485
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: API::PDF2

Notapor silva » 2013-11-20 05:46 @282

Sigue el error, la intención es no grabar a disco y que se abra el pdf directamente en la pantalla. Intenté con lo siguiente pero sigue dando error.

Sintáxis: [ Descargar ] [ Ocultar ]
  1. use PDF::API2; 
  2.        
  3.  
  4.     # Create a blank PDF file 
  5.     my $pdf = PDF::API2->new(); 
  6.     my $page = $pdf->page(); 
  7.     $page->mediabox('Letter'); 
  8.     my $font = $pdf->corefont('Helvetica-Bold'); 
  9.  
  10.     # Add some text to the page 
  11.     my $text = $page->text(); 
  12.     $text->font( $font, 20 ); 
  13.     $text->translate( 200, 700 ); 
  14.     $text->text('Hello World!'); 
  15.    
  16.     $pdf->save(); 
  17.      
  18.     my $pdf_string = $pdf->stringify(); 
  19.     my $pdf_size  = length $pdf_string; 
  20.     
  21.     print <<SENDPDF; 
  22.     Content-type: application/octet-stream 
  23.     Content-Length: $pdf_size 
  24.     Content-disposition: attachment 
  25.     Content-Transfer-Encoding: binary 
  26.     Pragma: no-cache 
  27.     
  28.     $pdf_string 
  29.     SENDPDF 


ERROR: Can't find string terminator "SENDPDF" anywhere before EOF at

¡¡Muchas gracias!!
silva
Perlero nuevo
Perlero nuevo
 
Mensajes: 82
Registrado: 2011-05-24 05:59 @291

Re: API::PDF2

Notapor explorer » 2013-11-20 06:54 @329

Si haces el stringify(), entonces no necesitas el save(), así que te sobra esa línea.

El nuevo error es porque has copiado y pegado el código que muestras, desde otro sitio, sin reformatear adecuadamente el código.

Fíjate que hay espacios en blanco delante de todas las líneas del programa (excepto la primera). Ese es el error. Quítalos.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14485
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Módulos

¿Quién está conectado?

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