Antwort an „Robert B.“ verfassen

Moin Dirk,

// PDF: Erste Seite rendern, wenn Imagick vorhanden
if ($extension === 'pdf' && class_exists('Imagick')) {
    try {     		
        $site = 0;// erste Seite
        $fileName = pathinfo($sourcePath, PATHINFO_FILENAME) .'.png';
        $targetPath = $this->thumbDir . $fileName;
        $imagick = new Imagick();
        $imagick->setResolution(200, 200);
        $imagick->readImage($sourcePath .'['. $site .']');

OK, das sollte tatsächlich die erste Seite lesen. (Man könnte es noch schöner schreiben, aber daran wird es nicht scheitern: "$sourcePath[$site]".)

Allerdings prüfst Du nicht den Rückgabewert der Methode hier – ist das wirklich true?

        $imagick->setImageFormat('png');

Bei dieser Methode bin ich mir nach Lesen der Dokumentation und der Kommentare nicht sicher, ob der Aufruf überhaupt notwendig ist, weil writeImage den Dateityp aus dem Namen ableitet. Auf jeden Fall werden auch hier nicht die Rückgabewerte überprüft und könnten auf einen Fehler hindeuten.

        $imagick->thumbnailImage(200, 0);
        $imagick->writeImage($targetPath);
        $imagick->clear();
        $imagick->destroy();

destroy wurde durch clear abgelöst und ist unnötig.

        return true;);
    } catch (Exception $e) {
        $_SESSION['msg'] = 'pdf-Vorschau erstellen fehlgeschlagen: ' . $e;
        return false;
    }
}

Das Script wird ausgedührt, die Datei wird erstellt ($sourcePath, $targetPath sind ok),

Wie hast Du das überprüft?

kann aber von der Indexseite nicht angezeigt werden. In firefox -> Netzwerkanalyse steht: test.png -> Initiator: img -> Typ: html (und der muss ja png sein).

Was kommt denn beim Browser tatsächlich an? Du kannst Dir in der Netzwerk-Analyse auch den Inhalt anschauen. HTML könnte z.B. auch eine Fehlerseite vom Server sein.

Viele Grüße
Robert

freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen