Technik

PDFs erstellen mit Perl

7. September 2008 · Programmierung · andreas · 2 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 …


Excel-Daten in MySQL-Datenbank übernehmen

5. September 2008 · Anwendungen · andreas · Kein Kommentar

Steht man vor einer Aufgabe wie z.B. die Daten einer Excel-Tabelle in eine MySQL-Datenbank zu übernehmen, so geht entweder die Suche nach einem passenden Utility oder das Schreiben eines kleinen Skripts los.

Doch halt - eigentlich ist an Werkzeug schon alles, da, was man braucht:

  1. Excel: Zuerst werden mit Excel alle Daten soweit vorbereitet, wie sie später dann auch in der Tabelle stehen sollen. Dann wird die Excel-Tabelle als CSV-Datei abgespeichert.
  2. MySQL: Die Tabelle selbst wird angelegt und mit den benötigten Feldern versehen. Anschließend wird mittels des ‘LOAD DATA’-Kommandos die vorher erzeugte CSV-Datei in die Tabelle eingelesen.

Beispielhaft könnte der Aufruf des Kommandos wie folgt aussehen:

mysql> LOAD DATA INFILE 'D:/Temp/excel-daten.csv' INTO TABLE zieltabelle FIELDS TERMINATED BY ';';

Eine Ausführliche Beschreibung der Parameter gibt’s im MySQL Reference Manual


PDFs zusammenfassen

4. September 2008 · Anwendungen · andreas · Kein Kommentar

Sollen mehrere PDFs zu einem zusammengefasst werden, so geht dies mit dem frei erhältlichen Ghostscript:

gswin32c.exe -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=Zusammenfassung.pdf Teil1.pdf Teil2.pdf ... Teilx.pdf

Joomla!s "Welcome to the Frontpage" loswerden

30. August 2008 · Anwendungen · andreas · Kein Kommentar

Ist man hinter die Philosophie gestiegen, ist die Konfiguration von Joomla! gar nicht so schwierig - bis auf einige Details, die sich aus unerfindlichen Gründen immer wieder verstecken.

So zum Beispiel auch das freundliche “Welcome to the Frontpage”, das man wie folgt loswerden kann:

Im Backend unter “Menüs”, “Hauptmenü” den Startseiteneintrag anklicken und rechts das Feld “Systemparameter” aufklappen. Dort “Seitentitel anzeigen” auf “Nein” stellen und speichern.


Button für den Ruhezustand in Windows XP hinzufügen

23. August 2008 · Betriebssysteme · andreas · Kein Kommentar

So nervig es auch ist, daß unter Windows XP der Button für den Ruhezustand im “Computer ausschalten”-Dialog erst nach Drücken der “Shift”-Taste angezeigt wird - im Artikel 893056 der Knowledge Base bietet Microsoft eine Lösung.

ruhezustand

Bis zum heutigen Tag ist der Fix für Service Pack 2 allerdings nur auf direkte Nachfrage bei Microsoft erhältlich - eine gute Gelegenheit, mal mit den ausgesprochen hilfsbereiten Mitarbeitern bei Microsoft zu telefonieren, trotzdem aber etwas nervig.

Freundlicherweise wurde der Fix aber in den Service Pack 3 für Windows XP mit integriert, so daß nach Installation nur noch die entsprechenden Änderungen in der Registry (und noch nicht mal ein Reboot) nötig sind:

  • Regedit starten

  • Zum Schlüssel ‘HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows’ navigieren

  • Den Schlüssel ‘System’ anlegen und in diesen wechseln

  • Den Schlüssel ‘Shutdown’ anlegen und in diesen wechseln

  • Das DWORD ‘ShowHibernateButton’ mit dem Wert ‘1’ anlegen

  • Regedit verlassen