• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] html Formular als pdf speichern und als download zur Verfügung stellen

Sclero2004

Mitglied
Problem gelöst, ein Blick in die Releasenotes hat geholfen:
fix html function only rendering on the first invocation per document
in Version 2.5.0 behoben. Wir hatten dagegen 2.4.0.

So funktioniert es dann:
Code:
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
    <script src="https://html2canvas.hertzen.com/dist/html2canvas.js"></script>
    <script>
        window.jsPDF = window.jspdf.jsPDF;
        document.getElementById('generatePdf').addEventListener('click', function (event) {
            event.preventDefault();
            const pdf = new jsPDF('p', 'mm', 'a4');
            const pages = Array.from(document.querySelectorAll('tr'));
            function addPageToPdf(pages, pageIndex = 0) {
                if (pages.length === 0) {
                    pdf.save();
                } else {
                    pdf.html(pages[0], {
                        y: pdf.internal.pageSize.getHeight() * pageIndex,
                        html2canvas: {
                            scale: 0.5
                        },
                        callback(pdf) {
                            pdf.addPage('a4', 'p');
                            addPageToPdf(pages.slice(1), ++pageIndex);
                        }
                    });
                }
            }
            addPageToPdf(pages);
        });
    </script>
Wobei ich zum Testen einfach die Zeilen der Tabelle genommen habe.
 

ich76

Mitglied
super!!!
habs gerade mit "table" als trennung probiert und funktioniert genau wie gewollt.
allerdings habe ich die zeile: pdf.addPage('a4', 'p'); entfernt, mit dieser hätte ich am ende immer noch eine leere seite erhalten.
vielen dank für die hilfe und tipps!
 
Oben