Конвертация 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 шт):
Могу посоветовать tcpdf, но это через backend...
Если фронтент и не html2pdf, то можно попробовать немного странное, но работающее для меня решение:
onclick="print(); return false;"
А дельше сохранить как pdf.
Как ни странно, выходит не корявый pdf и с мобильного и на десктопе. Надеюсь помог