Конвертация HTML страницы в PDF
Хочу сконвертировать html страницу в pdf средствами javascript.
Делаю это используя библиотеки по инструкции из видео Но, получаю в консоли запись: html2canvas: Canvas renderer initialized (2543x739 at 0,0) with scale 1 и соответственно файл не сохраняется. Можно это как-то поправить или какой-то другой метод использовать? Сделал 2 наглядных образца старая версия библиотеки html2canvas с onrendered http://jsfiddle.net/bwLzno6t/ новая с использованием then(canvas => http://jsfiddle.net/vd237at6/ В обоих случая в примерах не работают, на моем тестовом примере удается в новой версии получить скрин страницы, но отправить в pdf не получается.. |
Цитата:
|
Цитата:
суть в том, чтобы сделать и сохранить док именно в pdf, но да, оно по сути иммитация картинки |
Цитата:
|
Во первых:
Загрузка <script> по адресу «[url]https://github.com/MrRio/jsPDF/blob/master/dist/jspdf.min.js»[/url] не удалась. Загрузка <script> по адресу «[url]https://github.com/stackp/promisejs/blob/master/promise.js»[/url] не удалась.(github не любит jsfiddle) Во вторых функция getPDF созданная внутри анонимной функции, вызываемой по событию load, доступна только внутри этой самой функции. По сути у вас и скрипты не подключены и функция по нажатию не может быть вызвана. Оно не то что не работает, оно и не пытается. laimas, заказчик хочет пдф - будет ему пдф. |
Цитата:
понял. Давайте так: сделал некий набросок на тестовом сервере по ссылке http://a-lot-of-money.ru/rasterize/ Что добился: канвас создается, pdf скачивается, вот только без данных, которые записывает канвас, т.е. по сути успевает отработать раньше, чем рендерится картинка. Если этот момент исправить - все заработает. Здесь колбек без дополнительных параметров меня не спасает.. Делаю так, когда по первому клику на кнопку получаю зарендеренную страницу, но скачивается все равно только статика, которая была изначально. Вот здесь встрял и не знаю куда дальше двигаться function getPDF() { doCanvas(); $(document).bind('function_a_complete', doPDF); } function doCanvas() { html2canvas(document.querySelector("#myDiv")).then(canvas => { document.querySelector("#newDiv").appendChild(canvas); }); $(document).trigger('function_a_complete'); } function doPDF() { console.log("do pdf"); var doc = new jsPDF(); doc.fromHTML($('#newDiv').get(0), 20, 20, {'width':500}); doc.save('test.pdf'); } |
Цитата:
Есть конверторы html-pdf, для серверной части я как-то использовал такую библиотеку, интересно есть ли подобные решения для клиента или же как сторонний сервис через клиентское API. |
Цитата:
а такая библиотека с jquery работать умеет или только с инлайновым javascript? |
Aetae,
Посмотрите, чего в итоге добился. Канвас создается, страница скачивается. Сделал демо-пример При первом клике на кнопку скачать (вверху) рендерится картинка, при втором - скачивается инфа со страницы, но, как видим в скачаном файле, сохраняется только текстовая информация, без сохранение канвас картинки, причем киррилические буквы прописываются кракозябрами. Как это можно поправить? Ну и конечно же в идеале сделать так, чтобы с первого клика скачивалась страничка. |
Цитата:
|
Часовой пояс GMT +3, время: 17:38. |