[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Problem mit PDFout
Seite 1 von 1

Problem mit PDFout

Verfasst: 11. Jun 2017, 10:11
von NorbertK
Hallo allerseits (und einen schönen sonnigen Sonntag),

ich versuche gerade PDFout zu nutzen.

Dazu hatte ich im Default-Template ganz zu Beginn das separate Template PDFout (bei mir REX_TEMPLATE[8]) eingebunden. Dieses Template habe ich 1:1 von der oben verlinkten Quelle übernommen.

Aber dann erhalte ich unmittelbar die folgende Fehlermeldung:
ErrorException (E_PARSE)
syntax error, unexpected 'use' (T_USE)

Was mache ich falsch bzw. was ist an dem Template falsch?

Das AddOn ist natürlich installiert und aktiviert.

Ich danke Euch für Eure Tipps!

Re: Problem mit PDFout

Verfasst: 12. Jun 2017, 17:39
von NorbertK
Hallo allerseits,

durch ein bisschen Googeln bin ich ein kleines Stück weiter.

Das Template habe ich geringfügig umformatiert um Dompdf zuerst zu referenzieren:

Code: Alles auswählen

<?php
// Dompdf laden
use Dompdf\Dompdf;
use Dompdf\Options;
  // ?pdf=1
  $print_pdf = rex_request('pdf', 'int');
  if ($print_pdf) {
      // Optionen festlegen
      $pdf_options = new Options();
      $pdf_options->setDpi(100); // legt die Dpi für das Dokument fest
      $pdf_options->set('defaultFont', 'Helvetica'); // Standard-Font
      // PDF erstellen
      $art_pdf_name =  rex_string::normalize(rex_article::getCurrent()->getValue('name'));
      header('Content-Type: application/pdf');
      $dompdf = new Dompdf($pdf_options);
      $dompdf->loadHtml('REX_ARTICLE[]');
      // Hinweis: Anstelle von REX_ARTICLE[] kann auch ein gestaltetes Template REX_TEMPLATE[XX] angegeben werden
      $dompdf->setPaper('A4', 'portrait');
      $dompdf->render();
      $dompdf->stream($art_pdf_name ,array('Attachment'=>false)); // bei true wird Download erzwungen
      die();
    }
?>
So weit, so gut; jetzt kann ich zwar das Template ohne den Fehler nutzen und beim Anklicken eines PDF-Links (z.B.: http://www.sanlutions.net/erdbeer-rhaba ... html?pdf=1) öffnet sich auch ein neues Browserfenster und der Acrobat Reader wird angesprochen; aber leider wird kein PDF angezeigt, sondern es erscheint die folgende Fehlermeldung:
Adobe Reader
Datei beginnt nicht mit "%PDF-".
Local\EWH-2900-0


Kann mir hierzu jemand Tipps geben? Wäre echt klasse, denn ich übertrage gerade meine private Homepage auf Redaxo 5.3 und auf dieser Seite biete ich rund 200 verschiedene Rezepte (mit wachsender Tendenz) und bisher habe ich die PDF's immer statisch vorgehalten.
Die dynamische Ausgabe würde mir das Leben deutlich erleichtern, da ich selbst bei kleineren Änderungen am Rezept immer wieder ein neues PDf erstellen muss...

Über Eure Tipps freu ich mich sehr!

Re: Problem mit PDFout

Verfasst: 13. Jun 2017, 08:12
von NorbertK
Hallo allerseits,

dann führe ich mal meinen Monolog weiter:
Also, aktueller Stand ist wie zuvor beschrieben; das Problem besteht aber ausschließlich beim IE und lässt sich wohl auch nicht fixen. Ergo: Ich verweise für die PDFs auf das Verwenden eines aktuellen Browsers.
Damit kann ich leben.

Nun stehe ich aber vor dem nächsten Problem: Bilder

Ich möchte die Ausgabe natürlich etwas aufhübschen; das passende CSS-File dazu habe ich gefunden; Schriftformatierung usw. ist also kein Ding.

Aber beim Einfügen eines Bildes über CSS wir es gar nicht angesprochen, über ein separates Template, in dem ich es als Image-Tag vor die Content-Ausgabe einbinde genau das Gleiche: Nichts.
Einzig wenn ich das Bild über Redaxo (TinyMCE4) mitgebe tut sich überhaupt etwas.
Allerdings leider nur die Meldung "Image not found or type unknown" und ein Platzhalter, der der Größe des Bildes entspricht.

Die Google-Suche brachte mich zum Ergebnis mein PDFout-Template um die Zeile:

Code: Alles auswählen

$pdf_options->set('isRemoteEnabled', true);
zu erweitern. Allerdings hat das leider keinen Effekt. Das Bild wird nach wie vor nicht ausgegeben.

Schade, denn bis auf das Bild bin ich jetzt da, wo ich hinwollte...

Hat jemand ne Idee oder nen Tipp für mich?

Danke!

Re: Problem mit PDFout

Verfasst: 13. Jun 2017, 11:10
von Thomas.Skerbis
Hi,
Image-Manager-Bilder und auch absolut verlinkte Bilder funktionieren nicht.
Dazu musst du die Bild-URLs umschreiben.
Das gilt auch für externe CSS etc.
PDFout geht immer vom Root der Webpräsenz aus.

z.B. so:

Code: Alles auswählen

$xpdfcontent = str_replace("/index.php?rex_media_type=dopic&amp;rex_media_file=", "media/", $xpdfcontent);
$xpdfcontent = str_replace("index.php?rex_media_type=redactorImage&amp;rex_media_file=", "media/", $xpdfcontent);
$xpdfcontent = str_replace("/media/", "media/", $xpdfcontent);
$xpdfcontent = str_replace(".media/", "media/", $xpdfcontent);
Gerne kannst Du mich per SLACK kontaktieren.

Ach so ,,, in IE sehe ich bei dem oben genannten Link kein Problem.

Re: Problem mit PDFout

Verfasst: 13. Jun 2017, 21:18
von NorbertK
Hallo Thomas,

danke soweit mal!

Woher stammt die Variable $xpdfcontent? Denn mit Deinem Code in meinem Ausgabe-Template passiert leider nichts.

Dass die Pfade nicht hinhauen war mir fast klar. Danke für Dein Feedback! Ich war schon am Verzweifeln.

Ist es denn generell möglich eine Ausgabe-Template einzubinden?
Wenn ich - wie vom Github-Team in den Kommentaren beschrieben REX-ARTICLE durch REX_TEMPLATE[11] (das Template das ich ansprechen möchte hat bei mir die ID 11) wird zwar z.B. das CSS des Templates geladen, aber die Ausgabe erfolgt als HTML und nicht mehr als PDF; nur mit REX_ARTICLE erhalte ich ein PDF.

Da ich unter dem Text des jeweiligen Artikels den PDF-Link zu dem Rezept ausgebe, könnte ich mit einem externen Template natürlich um Einiges komfortabler formatieren...

Re: Problem mit PDFout

Verfasst: 13. Jun 2017, 23:20
von Thomas.Skerbis
Wenn Du anstelle von REX_ARTICLE[] ein Template einlesen möchtest muss sich natürlich darin auch REX_ARTICLE[] befinden, sonst bekommst du keine Inhalte.
Hier kannst Du Dich in REDAXO Slack einladen https://redaxo.org/slack/
Weitere Infos findest du auch hier: https://github.com/dompdf/dompdf/wiki

Wg. xpdfcontent

Beispiel:

Code: Alles auswählen

<?php
$xpdfcontent = REX_ARTICLE[]; 
$xpdfcontent = str_replace("/index.php?rex_media_type=dopic&amp;rex_media_file=", "media/", $xpdfcontent);
$xpdfcontent = str_replace("index.php?rex_media_type=redactorImage&amp;rex_media_file=", "media/", $xpdfcontent);
$xpdfcontent = str_replace("/media /", "media/", $xpdfcontent);
$xpdfcontent = str_replace(".media/", "media/", $xpdfcontent);
// Dompdf laden
use Dompdf\Dompdf;
use Dompdf\Options;
  // ?pdf=1
  $print_pdf = rex_request('pdf', 'int');
  if ($print_pdf) {
      // Optionen festlegen
      $pdf_options = new Options();
      $pdf_options->setDpi(100); // legt die Dpi für das Dokument fest
      $pdf_options->set('defaultFont', 'Helvetica'); // Standard-Font
      // PDF erstellen
      $art_pdf_name =  rex_string::normalize(rex_article::getCurrent()->getValue('name'));
      header('Content-Type: application/pdf');
      $dompdf = new Dompdf($pdf_options);
      $dompdf->loadHtml($xpdfcontent);
      // Hinweis: Anstelle von REX_ARTICLE[] kann auch ein gestaltetes Template REX_TEMPLATE[XX] angegeben werden
      $dompdf->setPaper('A4', 'portrait');
      $dompdf->render();
      $dompdf->stream($art_pdf_name ,array('Attachment'=>false)); // bei true wird Download erzwungen
      die();
    }
?>

Re: Problem mit PDFout

Verfasst: 14. Jun 2017, 08:36
von NorbertK
Hallo Thomas,

danke! Werde es heute noch testen.

Also mit den Templates ist es so:
Im PDFout-Template verweise ich auf das REX_TEMPLATE[11], und im Template selbst wird der Content mit

Code: Alles auswählen

<?php echo rexx::getCurrentArticleContent(); ?>
ausgegeben.

So habe ich es zum Testen bei der Seite http://sanlutions.net/zitronenbrezeln.html aktiviert.

Doch ausgegeben wird mir:
Diese Website ist nicht erreichbar

Die Webseite unter http://sanlutions.net/zitronenbrezeln.html?pdf=1 ist möglicherweise vorübergehend nicht verfügbar oder wurde dauerhaft an eine neue Webadresse verschoben.
ERR_INVALID_RESPONSE
Wo liegt hier mein Denkfehler?

Re: Problem mit PDFout

Verfasst: 14. Jun 2017, 08:44
von NorbertK
Nachtrag: Da die Einbindung des Templates alles "zerhagelte" habe ich wieder auf REX_ARTICLE[] umgestellt.

Die von Dir geposteten Rewrites führen leider nicht zur Lösung des Bilder-Problems:
(siehe: http://sanlutions.net/vanillekipferl-kl ... ezept.html)

Re: Problem mit PDFout

Verfasst: 14. Jun 2017, 09:10
von Oliver.Kreischer
offtopic

Hey Norbert,

ich lese hier ein wenig mit. Solltest Du zum REDAXO Tag kommen freuen wir uns über ein Glas voller Vanillekipferl :-)

Gruß
Oliver

/offtopic

Re: Problem mit PDFout

Verfasst: 14. Jun 2017, 09:40
von Thomas.Skerbis
Hallo Norbert,
die Rewrites sind nur ein Beispiel, du musst diese an Deine URLs anpassen. Gerne kann ich mir das ganze mal anschauen. Hierzu benötige ich Adminzugriff auf deine REDAXO-Installation. Die Zugangsdaten sendest Du mir gerne per PM oder in SLACK.

Re: Problem mit PDFout

Verfasst: 17. Jun 2017, 20:39
von NorbertK
Hallo allerseits, hallo Thomas,

dank der tollen und selbstlosen Hilfestellung vin Thomas klappt die PDF-Ausgabe der Rezepte mit Bildern jetzt tadellos.

Die letzten Tage habe ich innerhalb der Redaxo-Instanz etwas "aufgeräumt" und sämtliche Rezeptseiten mit den entsprechenden Links zur PDF-Ausgabe aktualisiert.

Jetzt muss ich "nur noch" an der Formatierung (Header und Footer) der PDFs - gerade für mehrseitige Rezepte - und der Schriftblöcke arbeiten.

Danach geht es dann an's nächste Abenteuer: Mit Yform das Gästebuch und ein Kontaktformular umsetzen.

Ich denke, bald bin ich so weit die Seite produktiv ins Web zu stellen.

Und das war nur mit Unterstützung dieses Forums möglich.

Tausend Dank dafür an dieser Stelle!

Re: Problem mit PDFout

Verfasst: 19. Jun 2017, 10:09
von Thomas.Skerbis
Hallo Norbert,
gern geschehen :D . Häufig erhälst du schneller Hilfe in SLACK. Einfach anmelden und mitmachen.

Re: Problem mit PDFout

Verfasst: 19. Jun 2017, 17:02
von NorbertK
Hallo Thomas,

ich habe zwar versucht Slack einzurichten, komme aber damit nicht wirklich zurecht und möchte da nicht wirklich Zeit reinhängen.

Da die Anfragen von mir i.d.R. zeitunkritisch sind reicht mir die Reaktionszeit hier im Forum eigentlich aus.

Re: Problem mit PDFout

Verfasst: 22. Jun 2017, 12:14
von pflumi
Hallo, ich habe ein Problem mit der richtigen Umschreibung der Bild-Urls. Die Bilder werden mir in den PDFs nicht angezeigt.

Ich habe eine Galerie, die im Modul die Bild-Ausgabe folgendermaßen generiert:

Ausgabe-Modul

Code: Alles auswählen

<a href="'.rex_url::base('media/'.$file).'" ... >
<img src="'.rex_url::base('index.php?rex_media_type=thumb&rex_media_file='.$file.'').'" ... />
</a>
Als Code wird dann zunächst folgendes ausgegeben:

Ausgabe

Code: Alles auswählen

<a href="/media/bild.jpg" ... >
<img src="/index.php?rex_media_type=thumb&rex_media_file=bild.jpg" ... />
</a>
Dann nutze ich noch das Addon Mediamanager Autorewrite für die Urls:

Ausgabe mit media_manager_autorewrite

Code: Alles auswählen

<a href="/media/bild.jpg" ... >
<img src="/images/thumb/bild.jpg" ... />
</a>
Aber die Umschreibung für die PDF bekomme ich nicht hin, die sieht wie folgt aus:

Code: Alles auswählen

$xpdfcontent = REX_ARTICLE[]; 
$xpdfcontent = str_replace("/index.php?rex_media_type=thumb&rex_media_file=", "media/", $xpdfcontent);
$xpdfcontent = str_replace("/images/thumb/", "media/", $xpdfcontent);
$xpdfcontent = str_replace("/media /", "media/", $xpdfcontent);
$xpdfcontent = str_replace(".media/", "media/", $xpdfcontent);
Wo liegt der Fehler?!

Re: Problem mit PDFout

Verfasst: 11. Jul 2017, 07:50
von NorbertK
Hallo allerseits,

leider scheint PDFout - zumindest bei mi - nicht stabil zu laufen.

Ich habe NICHTS geändert; lediglich 2 weitere Rezepte erfasst (eines Mitte letzter Woche - da ging noch alles, eines gestern - und mind. seit da geht nix mehr).
Beim Testen (Google Chrome) bekam ich nach einer kurzen Wartedauer folgende Fehlermeldung:
Fehler beim Laden des PDF Dokuments
NEU LADEN
Um auszuschließen, dass es sich um ein lokales Rechnerproblem oder ein Problem mit dem Browser handelt habe ich es auch auf einem Windows-PC und mit Firefox und Opera getestet: Selbes Ergebnis.
Auf dem iPad / iPhone erscheint einfach nur eine leere Seite.

Alles was ich bisher getan habe:
1.) PDFout re-installiert
2.) Cache gelöscht
3.) Developer abgeschaltet
4.) Das Template nochmal editiert (Inhalt überschrieben).
5.) Die Header-Grafik im Media-Verzeichnis nochmal neu hochgeladen.
6.) Das Verzeichnis redaxo/src/addons/pdfout per FTP abgeglichen.

Doch leider alles ohne Erfolg.

Hat jemand ne Idee? In den Error-Logs taucht nichts auf...

Re: Problem mit PDFout

Verfasst: 14. Jul 2017, 11:50
von Thomas.Skerbis
Hallo, auf deiner Seite kann ich kein Problem mit den PDF feststellen, sie werden korrekt geladen.

Re: Problem mit PDFout

Verfasst: 14. Jul 2017, 14:20
von NorbertK
Hallo Thomas,

danke für's Feedback!

War ein Problem der Serverkonfiguration, dass der Support des Hostingpartners wohl mittlerweile gefixt hat.

An und für sich kann ich preis-/leistungsmässig nicht über Alfahosting klagen, aber manchmal tauchen seltsame Probleme auf...

Hmm,

hab's gerade mit Firefox klar, Safari und Opera auf dem iPhone getestet (bei allen Browsern kommt statt nem PDF ne leere Seite).

Warst Du auf der Testseite oder auf der jetzt aktiven https://nobby-ka.de?

Re: Problem mit PDFout

Verfasst: 14. Jul 2017, 17:34
von Thomas.Skerbis
oh ... auf der Live-Seite scheint es nicht zu gehen

Re: Problem mit PDFout

Verfasst: 15. Jul 2017, 09:48
von NorbertK
Hallo Thomas, hallo allerseits,

es geht wieder!

Wichtiger Hinweis: Aufgrund einer Empfehlung der Debugging-Console von Firefox hatte ich die Zeile

Code: Alles auswählen

<!DOCTYPE html>
genauer spezifiziert (XHTML). Das verursachte einen Fehler im Header der PDF-Dateien.

Also egal, was für Tipps diverse Debugging-Tools geben: Immer nur die Basisdeklaration - dann klappt's auch mit PDFout.

War also doch ein selbstgemachter Fehler...