Magento PDF-Ausgaben von Artikeln

Die Magento-Extension "PDF Catalog" aus dem Hause Magazento bietet eine gute Möglichkeit, Artikel und ganze Kategorien per PDF ausgeben zu lassen.

In der kostenlosen Version gibt es im Frontend die Möglichkeit, Artikel und ganze Kategorien (auf dem Server) zu speichern, zu drucken (PDF-Download) oder als PDF-Vorschau darzustellen. Hierzu einfach ZIP-Datei herunterladen, entpacken und per FTP aufspielen.

Ein Problem ergibt sich allerdings mit der PHP-Konfiguration allow_url_fopen = Off. Da die Magento-Extension zum Teil file_get_contents auf URLs anwendet, können Stylesheet und Produkt-Bilder nicht abgerufen werden. Das PDF wird daraufhin zwar noch erzeugt, ist aber unformatiert und enthält keine Bilder. Dieses Problem kann man jedoch relativ unkompliziert lösen, sollte die Server-Konfiguration cURL unterstützen. Indem man in zwei Dateien jeweils ein file_get_contents ersetzt, erhält man nun Zugriff auf Stylesheet und Bilder im Cache und erhält ein fehlerfreies Ergebnis:

1. Datei: lib\dompdf6\include\image_cache.cls.php

Hier folgende Zeile suchen:
$image = file_get_contents($full_url);

und hierdurch ersetzen:
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $full_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$image = curl_exec($curl);
curl_close($curl);

2. Datei: lib\dompdf6\include\stylesheet.cls.php

Hier folgende Zeile suchen:
$css = file_get_contents($file);

und hierdurch ersetzen:
if (!(parse_url($file,PHP_URL_SCHEME)=='http')){
$css = file_get_contents($file);
} else {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $file);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$css = curl_exec($curl);
curl_close($curl); }
... zurück zum Blog