2016-06-20 24 views
3

Ich versuche, ein JPEG-Bild in PDF-Datei mit Perl-Programm einfügen. Ich verwende das PDF :: Create-Modul.Einfügen JPEG-Bild in PDF mit Perl PDF :: Erstellen

Ich habe versucht, mit PDF :: Bild :: JPEG-Modul, das Ergebnisse

Könnte jemand Bild „bei ./PDF_IMG.pl auf einen nicht definierten Wert‚‘Can not Methode aufrufen“ bitte helfen/beraten um das Bild in PDF mit PDF :: Create oder PDF :: Image :: JPEG hinzuzufügen.

Das Folgende ist das Code-Snippet, das ich verwende.

use strict; 
use Data::Dumper; 
use PDF::Create; 
use PDF::Image::JPEG; 

print "PDF with Image\n"; 

#Create 
my $pdf = new PDF::Create('filename' => "./image_embed_test.pdf", 
          'Version' => 1.2, 
          'PageMode' => 'UseNone', 
          'Author' => 'Madhan', 
          'Title' => 'My PDF', 
         ); 

    # Prepare 2 fonts 
    my $f1 = $pdf->font('Subtype' => 'Type1', 
         'Encoding' => 'WinAnsiEncoding', 
         'BaseFont' => 'Helvetica'); 
    my $f2 = $pdf->font('Subtype' => 'Type1', 
         'Encoding' => 'WinAnsiEncoding', 
         'BaseFont' => 'Helvetica-Bold'); 



my $root = $pdf->new_page('MediaBox' => [ 0, 0, 612, 792 ]); 

my @page; 
$page[1]=$root->new_page; 

$page[1]->stringc($f2, 8, 306, 738, "My First Page"); 

my $image1 = new PDF::Image::JPEG('./logo1.jpg'); 
$page[2]->image($image1, 100, 100, 1, 2, 1.0, 1.0 ,0, 0, 0); 

$pdf->close; 

Antwort

3

Es gibt zwei Probleme mit dem Code:

  1. $page[2] nicht definiert ist, müssen Sie $root->new_page() erneut auszuführen.
  2. Die image Methode verwendet Schlüsselwertpaare, keine geordneten Argumente. Hier

ist eine aktualisierte Version, die funktionieren sollte:

use warnings; 
use strict; 

use PDF::Create; 
use PDF::Image::JPEG; 

print "PDF with Image\n"; 

#Create 
my $pdf = new PDF::Create(
    'filename' => "./image_embed_test.pdf", 
    'Version' => 1.2, 
    'PageMode' => 'UseNone', 
    'Author' => 'Madhan', 
    'Title' => 'My PDF', 
); 

# Prepare 2 fonts 
my $f1 = $pdf->font('Subtype' => 'Type1', 
        'Encoding' => 'WinAnsiEncoding', 
        'BaseFont' => 'Helvetica'); 

my $f2 = $pdf->font('Subtype' => 'Type1', 
        'Encoding' => 'WinAnsiEncoding', 
        'BaseFont' => 'Helvetica-Bold'); 

my $root = $pdf->new_page('MediaBox' => [ 0, 0, 612, 792 ]); 

my @page; 
$page[1]=$root->new_page; 
$page[1]->stringc($f2, 8, 306, 738, "My First Page"); 

$page[2]=$root->new_page; 
my $jpg1 = $pdf->image('./logo1.jpg'); 
$page[2]->image('image' => $jpg1, 
       'xscale' => 0.2, 
       'yscale' => 0.2, 
       'xpos' => 350, 
       'ypos' => 400); 

$pdf->close; 

perldoc PDF::Create::Page image()