Wicked_PDF не может отображать графику SVG, canvas или PNG

Я пытаюсь отобразить некоторые диаграммы, используя D3 и wicked_pdf. Диаграммы отображаются нормально, когда я включаю флаг show_as_html. Но когда я визуализирую PDF-файлы, отображаются только оси. Сама область диаграммы пуста. Я знаю, что JavaScript выполняется, поскольку оси отображаются после содержимого диаграммы. Фактическая диаграммаВизуализированная диаграмма Я попытался преобразовать SVG в объект холста, используя canvg.

canvg($(this).find('#canvas')[0], $('<div>').append($(picture).clone()).html(), { ignoreMouse: true, ignoreAnimation: true })

Без изменений. Затем я преобразовал SVG в изображение PNG, используя:

$(this).find('#chart').append("<img id='as' src='" + $(this).find('#canvas')[0].toDataURL() + "'>").show()

Все еще никаких изменений. Однако, когда я вставляю подобное изображение png в документ как статическое изображение, используя wicked_pdf_image_tag, отображается правильное изображение. Как заставить wicked_pdf правильно отображать изображения? Меня не волнует формат, если диаграмма отображается правильно.


person user1742188    schedule 19.08.2013    source источник


Ответы (3)


К сожалению, ответ @TheMcMurder не поможет, так как wicked_pdf использует wkhtmltopdf. Кроме того, на самом деле это проблема для wkhtmltopdf, а не для wicked_pdf. Я работаю над той же проблемой с Chart.js (который использует элементы).

Вот ссылка на две темы в группе Google whhtmltopdf, посвященные этой проблеме.

И вот ветка, обсуждающая, что может быть той же проблемой на Github

Некоторые основные поисковые запросы указывают на phantom.js как на возможную альтернативу, но я еще не пробовал.

не могу опубликовать ссылку, потому что моя репутация слишком низкая, но Google вас покрывает

Удачи и дайте нам знать, если вы добьетесь какого-либо прогресса.

person John Kacz    schedule 20.01.2015
comment
я не думаю, что это проблема с wkhtmltopdf. У меня есть последняя версия 0.12.x wkhtmltopdf, и она генерирует ожидаемый PDF-файл с диаграммами. Но wicked_pdf нет. - person Swaps; 04.07.2016
comment
Wicked PDF просто обертывает wkhtmltopdf. Какая версия wkhtmltopdf используется в вашей настройке злого pdf? - person John Kacz; 05.07.2016
comment
Это то же самое, что я упоминал в своем предыдущем комментарии wkhtmltopdf 0.12.3 (with patched qt). Я обнаружил, что мои диаграммы не отображаются в формате pdf, потому что это не вызывает функцию js, которую я создал для создания графика. Затем я просто включил свой файл js с вспомогательным тегом wicked_pdf_javascript_include, и это сработало. - person Swaps; 06.07.2016

Если вы можете попробовать использовать http://wkhtmltopdf.org/, я обнаружил, что это лучше отображает SVG. .

person TheMcMurder    schedule 22.08.2014

У меня была такая же проблема. При настройке локального хоста решение для меня состояло в том, чтобы сохранить полную веб-страницу в html (кнопка меню мыши и сохранить страницу как полную веб-страницу). Затем выполните:

wkhtmltopdf -O Landscape -s A3 saved-page.html output.pdf 

Возможно, вам также потребуется добавить --javascript-delay 10000, а может и нет.

Странно, но диаграмма d3.js в svg отображается таким образом, но не отображается, если вы размещаете URL-адрес...

person J0nh1dd3n    schedule 07.05.2020