[erlug] PDF Dokument-Generierung mit Perl

  • From: Wolfgang Kinkeldei <wolfgang@xxxxxxxxxxxx>
  • To: erlug@xxxxxxxxxxxxx
  • Date: Thu, 6 Dec 2007 08:53:26 +0100

Moin zusammen,

mit Guido hatte ich mich gestern über die Erstellung von PDF Dokumenten unterhalten und dabei eine bei uns in der Firma häufig praktizierte Methode erwähnt. Vielleicht ist dieses Verfahren auch für andere in der Liste von Interesse, daher schreibe ich mal in die Liste :-)

Man nehme:
  - Perl
  - die Bibliothek PDF::API2
  - ein Muster-PDF als Vorlage

und fülle das PDF dann mit beliebigen Daten aus. Das kann dann in etwa so aussehen:

#!/usr/bin/perl
use strict;
use warnings;

use PDF::API2;

# Vorlage lesen
my $srcpdf = PDF::API2->open('vorlage.pdf');
delete $srcpdf->{forcecompress};
my $font = $srcpdf->corefont('Helvetica',1);

# neues PDF erstellen
my $pdf = PDF::API2->new;
my $font = $pdf->corefont('Helvetica',1);

# erste Seite von Vorlage kopieren
my $page=$pdf->importpage($srcpdf,1,0);
$page->mediabox(595,842);

my $txt = $page->text;
$txt->compress;
$txt->font($font, 14);

# Eintragen eines Textes in das PDF
$txt->translate(200,665);
$txt->text('Dieser Text soll hier rein');

# PDF ausgeben (in diesem Fall: STDOUT)
print $pdf->stringify();
$pdf->end();


...zugegebenermaßen auf den ersten Blick ein wenig erschreckend, doch fast der gesamte Code ist immer mehr oder weniger konstant, lediglich die Text-Eintragungen werden je nach Job variabel gemacht und damit sind beliebig komplexe Befüllungen fast ein Kinderspiel...

use Perl ;-)


Grüße,

Wolfgang

--

' /\_/\ ' .print[split??,"".(($/=q|Cms)+-03467:;<=|)=~tr!C-z -B! -z!)x
'( o.o )' .$/]->[hex]foreach split qr<>,qq+1ecd039ad65b025b8063475b+||
' > ^ < ' .q<!-- Wolfgang Kinkeldei - mailto:wolfgang@xxxxxxxxxxxx -->




Other related posts: