Ошибка wkhtmltopdf OpenLayers V3

Я пытаюсь создать PDF-файл с помощью wkhtmltopfd из карты OpenLayer V3, но получаю только пустое изображение.

Этот код должен создать PDF-файл с изображениями карты, но он создает только фон карты.

wkhtmltopdf --javascript-delay 5000 http://openlayers.org/en/v3.1.1/examples/moveend.html test.pdf

Что я делаю не так?

Это то, что я уже проверил:

  • Я открыл веб-страницу в Chrome и сохранил ее в формате PDF. Оно работает.
  • В трассировке Wireshark я не вижу ни одного запроса к тайловому изображению (поэтому блокировка тайлового сервера не является ошибкой).
  • Я попробовал некоторые параметры wkhtmltopdf, такие как --background и --images, но безуспешно (эти параметры также помечены как параметры по умолчанию).
  • Я использую wkhtmltopdf 0.12.1.2 (с исправленным qt) в Windows 8. Безуспешно.
  • Также wkhtmltopdf 0.12.1 (с исправленным qt) в Ubuntu 14: безуспешно.

person powerpete    schedule 21.01.2015    source источник


Ответы (1)


Используйте переключатель состояния окна "--window-status XXXX". Если вы добавите этот переключатель, компонент PDF (wkhtmtopdf) будет ждать состояния окна, как только скрипт установит состояние окна в состояние готовности или что-либо, указанное в переключателе, запустится wkhtmltopdf. преобразование html в PDF.

Что тебе необходимо сделать…. Попробуйте найти, когда ваши карты загружены в DOM и все было отрисовано (вызовы ajax или любой длительный скрипт был выполнен/успешен), затем установите window.sataus = "ready" (используя java-скрипт)

добавить переключатель "--window-status ready"

wkhtmltopdf --window-status ready http://openlayers.org/en/v3.1.1/examples/moveend.html test.pdf

person Ihtsham Minhas    schedule 12.03.2015
comment
--javascript-delay 5sec ждет достаточно, чтобы загрузить все изображения. Так что это не решит проблему. - person powerpete; 13.03.2015
comment
Вы пробовали --window-status. - person Ihtsham Minhas; 13.03.2015
comment
Извини. Я не могу проверить это с моей конкретной картой в данный момент. (Я изменил свой компонент карты на leaflet.js) - person powerpete; 16.03.2015