Ergebnis 1 bis 9 von 9

Thema: domPDF, contao 3.5, html tags, css

  1. #1
    Contao-Nutzer Avatar von eweitzel
    Registriert seit
    04.04.2011.
    Beiträge
    20

    Standard domPDF, contao 3.5, html tags, css

    Hallo,

    Ziel:
    Ich möchte aus einem Artikel (Syndication PDF) mit domPDF eine PDF Datei generieren.

    Konfiguration:
    contao 3.5.16
    Modul/Erweiterung: dompdf
    Modul/Erweiterung: http://public.andreasburg.de/dompdf-3.0.0_rc2_1-mod.7z

    Problem:
    Ich versuche gerade aus einem Artikel ein PDF mit oben beschriebener Konfiguration zu erstellen. Das funktioniert auch. Hierzu habe ich im Contao Backend Einstellungen -> DOMPDF-Einstellungen ist "DOMPDF für den PDF-Export verwenden" und "DOMPDF liest Stylesheets zur Formatierung der Ausgabe ein." entsprechend angeschaltet. Die css Datei liegt in files/css/dompdf.css.

    Das Problem ist, dass Änderungen in der dompdf.css nicht berücksichtigt werden. Es scheint, als ob HTML Tags von Contao "rausgelöscht" werden. Das CSS wird folgendermaßen in "system/modules/dompdf/DompdfIgniter.php" eingebunden:

    $strHtml .= '<link rel="stylesheet" type="text/css" href="files/css/dompdf.css" />' . "\n";

    Sobald ich testweise in der DompdfIgniter.php eine Zuweisung z.B. $strHTML = '<xyz'; mache und diese dann ausgebe ( echo $strHTML; ) , bleibt die Variable leer. Ohne die Spitzeklammer steht 'xyz' in der Variablen. Anscheinend werden HTML-Tags bzw. Ausdrücke beginnend mit "spitzer Klammer" nicht berücksichtigt. Ich kenne ein ähnliches Verhalten von den Sicherheitseinstellungen in Contao. Hier verstehe ich es aber nicht.

    Hat vielleicht jemand eine Idee woran das liegen könnte?

    Gruß Edgar

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Hast du das generierte HTML schon mal ausgeben und validieren lassen?

  3. #3
    Contao-Nutzer Avatar von eweitzel
    Registriert seit
    04.04.2011.
    Beiträge
    20

    Standard

    ... gute Frage ... ja, ich habe noch mal geprüft ;-) und ja, das HTML validiert und die dompdf.css wird berücksichtigt.

    Ich kann z.B. einen background im dompdf.css eintragen und der wird im HTML entsprechend angezeigt. Bis dahin funktioniert alles einwandfrei. Demzufolge kann ich das Verhalten mit der "spitzen Klammer" ignorieren.

    Das Problem bleibt im PDF-Dokument. Dort wird z.B. der Background

    * {
    color: #000;
    font-family: sans-serif;
    background-color: #123;
    }

    nicht berücksichtigt.

    Da suche ich noch, woran das liegen könnte.

    Gruß Edgar

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Evt. wird so ein Selektor nicht unterstützt? Warum machst du das überhaupt so?

  5. #5
    Contao-Nutzer Avatar von eweitzel
    Registriert seit
    04.04.2011.
    Beiträge
    20

    Standard

    ... so, ich habe noch etwas getestet und denke im Prinzip funktioniert alles. Es gibt noch eine Datei in systems/modules/dompdf/resources/lib/res/html.css ...
    ... dortige CSS Befehle werden berücksichtigt. Ich denke das liegt an einer Misskonfiguration meinerseits. Wenn ich da nicht weiterkomme melde ich mich nochmal mit einer neuen Anfrage/Antwort. Ich denke die Frage ist erstmal gelöst. Danke.

    Sehr interessant finde ich Deine Frage "Warum machst du das überhaupt so?".

    Hier meine Antwort: Das ist erstmal eine Lösung, die ich gefunden habe. Ich habe gesehen, dass man dompdf auch mit dem composer einbinden/installieren kann und irgendwie kann man auch mit dem Hook "printArticleAsPdf" arbeiten und eine updatesichere Variante erstellen.

    Leider finde ich in der Contao Dokumentation nicht immer die Information, die mich letztendlich zu einer funktionierenden Lösung führt. Falls Du aber einen Tipp hast bzgl. einer besseren Lösung oder auch Vorgehensweise würde ich mich das sehr freuen.

    Auf jeden Fall erstmal vielen Dank für Deine schnelle Hilfe.

    Gruß Edgar

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Zitat Zitat von eweitzel Beitrag anzeigen
    Sehr interessant finde ich Deine Frage "Warum machst du das überhaupt so?".

    Hier meine Antwort: Das ist erstmal eine Lösung, die ich gefunden habe. Ich habe gesehen, dass man dompdf auch mit dem composer einbinden/installieren kann und irgendwie kann man auch mit dem Hook "printArticleAsPdf" arbeiten und eine updatesichere Variante erstellen.

    Leider finde ich in der Contao Dokumentation nicht immer die Information, die mich letztendlich zu einer funktionierenden Lösung führt. Falls Du aber einen Tipp hast bzgl. einer besseren Lösung oder auch Vorgehensweise würde ich mich das sehr freuen.

    Auf jeden Fall erstmal vielen Dank für Deine schnelle Hilfe.

    Gruß Edgar
    Ich meinte eignetlich nur deine CSS Angabe . Warum benutzt du diese?

  7. #7
    Contao-Nutzer Avatar von eweitzel
    Registriert seit
    04.04.2011.
    Beiträge
    20

    Standard

    ... da verstehe ich die Frage noch nicht ganz ...

    Die Anforderung ist ein relativ komplexes Formular im DIN A5 Querformat als PDF auszugeben. Als Alternative zur normalen Druck Ausgabe. In erster Line ging es mir deshalb um die Machbarkeit "domPDF" mit einer aktuellen Contao Installation (3.5.16). TCPDF scheint bezüglich der Möglichkeiten zur Gestaltung mit CSS nicht sehr stark zu sein. Laut diversen Bemerkungen im Netz vor allem umständlich bzw. aufwändig. Deshalb wollte ich mittels der dompdf.css oder wie auch immer man diese Datein nennen mag, die Ausgabe entsprechend gestalten.

  8. #8
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.078
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich denke mal es geht Spooky darum, dass der Selektor '*' eventuell gar nicht unterstützt wird. Das meiste davon wird aber sowieso vererbt, kann man also auch z.B. html zuweisen. background-color wird zwar nicht vererbt, sollte aber trotzdem normalerweise im html reichen.

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Zitat Zitat von eweitzel Beitrag anzeigen
    ... da verstehe ich die Frage noch nicht ganz ...

    Die Anforderung ist ein relativ komplexes Formular im DIN A5 Querformat als PDF auszugeben. Als Alternative zur normalen Druck Ausgabe. In erster Line ging es mir deshalb um die Machbarkeit "domPDF" mit einer aktuellen Contao Installation (3.5.16). TCPDF scheint bezüglich der Möglichkeiten zur Gestaltung mit CSS nicht sehr stark zu sein. Laut diversen Bemerkungen im Netz vor allem umständlich bzw. aufwändig. Deshalb wollte ich mittels der dompdf.css oder wie auch immer man diese Datein nennen mag, die Ausgabe entsprechend gestalten.
    Nein, ich meinte warum du im speziellen diese CSS Anweisung benutzt:
    Code:
    * {
        color: #000;
        font-family: sans-serif;
        background-color: #123;
    }
    Der '*' selector selektiert alle DOM Elemente. Du weist damit also jedem einzelnen Element in deinem HTML Dokument eine schwarze Schriftfarbe, die sans-serif font-family und eine dunkelblaue Hintergrundfarbe zu. Warum machst du es nicht stattdessen so:
    Code:
    body {
        color: #000;
        font-family: sans-serif;
        background-color: #123;
    }
    ?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •