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