Ankündigung

Einklappen
Keine Ankündigung bisher.

FPDF und CKeditor Tabellen erstellen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • FPDF und CKeditor Tabellen erstellen

    Hallo,

    besteht die Möglichkeit bei z.B. dem CKeditor den HTML output im "alten" HTML stil auszugeben ohne Inline styles? Speziell geht es mir um Tabellen. Ein anderer Editor wäre mir auch recht. Es muss nicht der von CK sein. Es reicht auch text fett,unterstrichen,tabellen und schön wären Bilder - muss aber nicht.

    Hintergrund ist das umwandeln von dem HTML code zu PDF mit Hilfe von FPDF.
    Ohne inline styles funktioniert es mit den FPDF erweiterungen perfekt.
    Beispiel - diese Tabellensyntax funktioniert:
    <table border="1">
    <tr>
    <td width="200" height="30">a</td><td width="200" height="30" bgcolor="#0000FF">b</td>
    </tr>
    <tr>
    <td width="200" height="30">b</td><td width="200" height="30">c</td>
    </tr>
    </table>
    Nur Inline-Styles (wie sie ckeditor ausgibt) können nicht erkanntn werden.

    Code:
    <table border="1" style="width:500px">
    <td style="width :200px;" >a</td>
    Habe meine Frage bezüglich des "abstellen der Inline-Styles" im CKeditor Forum bereits von ca. einem Monat gestellt. Doch leider keine Antwort erhalten. Ich denke, dass dies so ohne weiteres nicht möglich ist. Bin für alle Ideen offen. Möchte einfach nur Tabellen und Text eingeben und dies später mit in mein PDF einbinden. Auch an FPDF bin ich nicht gebunden (würde ich nur gerne nutzen, da es mir gut gefällt).

    Vielen Dank für eure Ideen

  • #2
    Puh. Keine Ahnung was der CKEditor da kann. Du kannst die Umgestaltung aber selbst machen. Z.B. mit DOMDocument und DOMXPath

    Kommentar


    • #3
      Da ich mir das Ganze mal grob angeschaut habe macht es für mich den Anschein als sei es ein größerer Aufwand wenn man damit noch nie etwas zu tun hatte, richtig? Dann könnte man auch die inline-Styles auseinander fummeln und ins pdf wandeln.
      Versteht mich nicht falsch, ich will schon etwas tun, nur wäre es schön wenn es einfacher ginge.

      Kommentar


      • #4
        PHP-Code:
        <?php
        $html 
        = <<<HTML
        <table style="width: 500px;">
            <tr>
                <td style="width: 100px; height: 30px;"></td>
                <td style="width: 200px; height: 30px;"></td>
                <td style="width: 200px; height: 30px;"></td>
            </tr>
        </table>
        HTML;

        $doc = new DOMDocument();
        @
        $doc->loadHTML($html);
        foreach((new 
        DOMXPath($doc))->query('//*[@style]') as $node) {
            
        array_map(function ($value) use ($node) {
                
        array_map(function ($style) use ($node) {
                    if(
        $style[0]) {
                        
        $node->setAttribute($style[0], (int) $style[1]);
                    }
                }, [
        array_map('trim'explode(':'$value))]);
            }, 
        explode(';'$node->getAttribute('style')));
            
        $node->removeAttribute('style');
        }
        $doc->formatOutput true;
        echo 
        $doc->saveHTML();
        Schön ist anders! Als Einstieg gedacht...

        Kommentar


        • #5
          dompdf anstatt fpdf ist keine Option? Nutze ersteres und habe keine Probleme mit inline styles...

          Gesendet von meinem Galaxy Nexus mit Tapatalk

          Kommentar

          Lädt...
          X