Kategorie: Programmierung

GD-Modul unter ActivePerl installieren

· · 0 Kommentare

Die ActivePerl-Distribution kommt zwar schon mit einer Menge Module daher, aber ein paar wichtige wie z.B. das Modul zur Ansteuerung der GD Graphics Library sind nicht im Lieferumfang enthalten und fehlen auch im online Repository von ActiveState.

Glücklicherweise gibt es noch ein paar recht gut sortierte Repositories wie z.B. das der University Of Winnipeg, die sich darauf spezialisiert haben, die Lücken aufzufüllen.

Um nun das GD-Modul zu installieren, fügt man am sinnvollsten das passende Repository mittes "Edit" / "Preferences" dem Perl Package Manager hinzu:

Nach dem Synchonisieren der Paket-Datenbank kann dann unter "View all packages" das GD-Paket ausgewählt und installiert werden.


PDFs erstellen mit Perl

· · 0 Kommentare

Will man aus Perl PDFs erstellen, so gibt es das vorzügliche PDF::API2-Modul, das aber einen entscheidenden Nachteil hat: man wird von Optionen und Möglichkeiten dermaßen erschlagen, daß es schwer ist, überhaupt am Ziel anzukommen.

Als einfachen Ausweg gibt es das Modul PDF::API2::SIMPLE, ein "simplistic wrapper for the excellent PDF::API2 modules", mit dem man sich auf's Wesentliche konzentrieren kann.

Leider kann das Modul in seiner aktuellen Version (1.1.4) Bilder nur aus Dateien (JPG, TIFF, PNM, PNG oder GIF, die im Dateisystem vorliegen müssen) einbinden, ein extrem umständlicher Weg, falls diese z.B. in einer Datenbank vorliegen.

Eine entsprechende Erweiterung ist aber schnell - und einfach - gemacht, verhält sich analog zur ursprünglichen image-Methode und kann mit einem GD-Objekt genutzt werden:

sub gdimage {

    my ($self, $src, %opts) = @_;
    my $x = $opts{'x'} || $self->x;
    my $y = $opts{'y'} || $self->y;
    my $width = $opts{'width'} || 100;
    my $height = $opts{'height'} || 100;
    my $scale = $opts{'scale'} || 1;
    my $image = $self->current_page->gfx;

    my $data = $self->pdf->image_gd($src);

    $image->image($data, $x, $y, $width, $height);

    $self->x( $x + $width );
    $self->y( $y );
    }

Der Erweiterungsvorschlag ist auch an die Entwickler raus, vielleicht wird er ja integriert ...


Can’t locate Encode/ConfigLocal.pm at line XX in Encode.pm

· · 0 Kommentare

Wenn Perl nach der Installation des Modules 'XML-NamespaceSupport' die Fehlermeldung 'Can’t locate Encode/ConfigLocal.pm at line XX in Encode.pm' ausgibt, hilft ein Aufruf von

enc2xs -C

Die entsprechende Doku findet sich bei CPAN.