Конвертация HTML в PDF на JS

По результатам теста формируется статистика с графиками, изображениями и текстом. Задача в том, что бы все сконвертировать в PDF. Сделал это с помощью jsPDF и html2pdf. Проблема - если генерировать это в мобильной версии сайта, то в результате, все обрезается под мобильное разрешение и верстка местами плывет, некоторые блоки пропадают.

Мой код:

<script>
    window.onload = function () {
        document.getElementById("download")
            .addEventListener("click", () => {
                var invoice = document.getElementById("printHidden");
                var opt = {
                    margin: 0.1,
                    filename: 'myfile.pdf',
                    image: { type: 'jpeg', quality: 1 },
                    html2canvas: {
                        WindowWidht: 1600,
                        scale: 3
                    },
                    jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
                };
                html2pdf().from(invoice).set(opt).save();
            })
    }
</script>

Есть ли какая-нибудь возможность, желательно инструментами фронтэнда, что бы в не зависимости от разрешения окна браузера, печаталось все в фиксированной ширине и вся структура сохранялась как на ПК версии? Возможно есть другие библиотеки.


Ответы (1 шт):

Автор решения: Oleg Maksimov

Могу посоветовать tcpdf, но это через backend...

Если фронтент и не html2pdf, то можно попробовать немного странное, но работающее для меня решение:

onclick="print(); return false;"

А дельше сохранить как pdf.

Как ни странно, выходит не корявый pdf и с мобильного и на десктопе. Надеюсь помог

→ Ссылка