PHP/HTML Tabelle exportieren

haunt

Lieutenant
Registriert
Juni 2010
Beiträge
584
Hallo zusammen,
ich versuche mir nach wie vor PHP und HTML beizubringen und bin wie ich finde schon recht weit. Aktuell scheitere ich aber daran eine HTML Tabelle zu exportieren. Ich habe jetzt rausgefunden, dass es tcpdf und jspdf gibt.

( ich versuche gerade für eine Pen&Paper einen Wettergenerator zu bauen )
Die Tabelle wird wie folgt ausgegeben: - Vorsicht, langer Codeblock!
HTML:
"<table id='table-to-export' border='2'><tbody><tr><td rowspan='2'>Bewölkung</td><td colspan='2'>Region:'Ewiges Eis'</td><td colspan='2'>Wind</td><td rowspan='2'>Wind</td><td rowspan='2'>Regen</td><td rowspan='2' colspan='2'>Beschreibung</td></tr><td id='tdra'>Bild</td><td>Grad Tag</td><td id='tdra'>Bild</td><td>Grad Nacht</td></tr><tr><td rowspan='2'><img src=https://diskstation.lutz.cloud:8081/test/tag_stat.png alt='Wolken'></td><td colspan='2'>voellig wolkenslos</td><td colspan='2'>leichter wind</td><td rowspan='2'><img src=low_wind.png alt='Wind' ></td><td rowspan='2'><img src=grass.png alt='Regen' ></td><td rowspan='2'>kein Regen</td></tr><td id='tdra'><img src='tag_stat.png' alt='Tag' style='width: 25px; height: 25px;'></td><td>-18 Grad</td><td id='tdra'><img src='nacht_stat.png' alt='Nacht' style='width: 25px; height: 25px;'></td><td>-38 Grad</td></tr><tr><td rowspan='2'><img src=https://diskstation.lutz.cloud:8081/test/tag_wolken.png alt='Wolken'></td><td colspan='2'>bewölkt mit Wolkenlücken</td><td colspan='2'>leichter wind</td><td rowspan='2'><img src=low_wind.png alt='Wind'></td><td rowspan='2'><img src=grass.png alt='Regen''></td><td rowspan='2'>kein Regen</td></tr><td id='tdra'><img src='tag_stat.png' alt='Tag' style='width: 25px; height: 25px;'></td><td>-28 Grad</td><td id='tdra'><img src='nacht_stat.png' alt='Nacht' style='width: 25px; height: 25px;'></td><td>-28 Grad</td></tr><tr><td rowspan='2'><img src=https://diskstation.lutz.cloud:8081/test/tag_wolken.png alt='Wolken'></td><td colspan='2'>bewölkt mit Wolkenlücken</td><td colspan='2'>leichter wind</td><td rowspan='2'><img src=low_wind.png alt='Wind'></td><td rowspan='2'><img src=grass.png alt='Regen''></td><td rowspan='2'>kein Regen</td></tr><td id='tdra'><img src='tag_stat.png' alt='Tag' style='width: 25px; height: 25px;'></td><td>-28 Grad</td><td id='tdra'><img src='nacht_stat.png' alt='Nacht' style='width: 25px; height: 25px;'></td><td>-28 Grad</td></tr><tr><td rowspan='2'><img src=https://diskstation.lutz.cloud:8081/test/tag_wolken.png alt='Wolken'></td><td colspan='2'>bewölkt mit Wolkenlücken</td><td colspan='2'>leichter wind</td><td rowspan='2'><img src=low_wind.png alt='Wind'></td><td rowspan='2'><img src=grass.png alt='Regen''></td><td rowspan='2'>kein Regen</td></tr><td id='tdra'><img src='tag_stat.png' alt='Tag' style='width: 25px; height: 25px;'></td><td>-28 Grad</td><td id='tdra'><img src='nacht_stat.png' alt='Nacht' style='width: 25px; height: 25px;'></td><td>-29 Grad</td></tr><tr><td rowspan='2'><img src=https://diskstation.lutz.cloud:8081/test/wolkig.png alt='Wolken'></td><td colspan='2'>geschlossene Wolkendecke</td><td colspan='2'>windstill</td><td rowspan='2'><img src=low_wind.png alt='Wind'></td><td rowspan='2'><img src=regen.png alt='Regen''></td><td rowspan='2'>ergiebieger regen</td></tr><td id='tdra'><img src='tag_stat.png' alt='Tag' style='width: 25px; height: 25px;'></td><td>-32 Grad</td><td id='tdra'><img src='nacht_stat.png' alt='Nacht' style='width: 25px; height: 25px;'></td><td>-33 Grad</td></tr></tbody></table>;

Die wird im HTML auch richtig dargestellt.

Mit folgender Funktion kann ich zumindest bis zu 7 Zeilen vernünftig ausgeben:
Code:
function exportToPDF2() {
        var pdf = new jsPDF('p', 'pt', 'letter');
            pdf.setFillColor(255,255,255);
        var source = document.getElementById("table-to-export");
        var specialElementHandlers = {
            '#bypassme': function (element, renderer) {
                return true
            }
        };
        pdf.addHTML(source, 0, 0, {
            'elementHandlers': specialElementHandlers,
            'background': "#fff"
        }, function () {
            pdf.save('table.pdf');
        });
    }

aktuelle sehe ich aber keine Möglichkeit eine neue Seite zu generieren. Mit tcpdf sehe ich die Bilder nicht.
Hat jemand eine Idee wie ich weiter voran kommen könnte?
 
Wenn es das ist...
Edit:
fast - interessant ist, dass das Bild nicht richtig dargestellt wird. Glaube da muss ich nochmal schauen woran es liegt. der hat jetzt 6 seiten daraus gemacht. Auf 2 ist etwas zu sehen, auf 4 weiße Blätter.

Problem ist gelöst:
habe html2pdf gefunden
Code:
function exportToPDF() {
        var element = document.getElementById("table-to-export"); // Das HTML-Element Ihrer Tabelle
        html2pdf(element, {
        margin: 1,
        filename: 'mein_pdf_dokument.pdf',
        image: { type: 'jpeg', quality: 0.98 },
        html2canvas: { dpi: 192, letterRendering: true },
        jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
        });
}

Funktioniert 1a.
 
Zuletzt bearbeitet:
Zurück
Oben