Подтвердить что ты не робот

Отладка javascript в wkhtmltopdf

Где я могу увидеть вывод отладки javascript, когда wkhtmltopdf работает в режиме отладки (-debug-javascript)

4b9b3361

Ответ 1

Другим (я бы сказал, самым простым) средством отладки javascript в WKHTMLTOPDF является загрузка QT Browser, основного браузера, используемого WKHTMLTOPDF, и проверка выполнения javascript для вашей страницы из браузера.

Вы можете скачать его из здесь

Инструкции по отладке javascript в QT здесь

В основном вы можете отлаживать свой JavaScript в QT Browser так же, как и в Chrome или Firefox.

Ответ 2

Рендеринг test.html

<!DOCTYPE html>
<html>
  <head></head>
  <body>
    BODY
    <script>
      console.log('Hi!');
    </script>
  </body>
</html>

как это

wkhtmltopdf test.html test.pdf --debug-javascript

должен вернуть что-то вроде этого

Loading pages (1/5)
Warning: :0 Hi!                                                   
Resolving links (2/5)                                              
Counting pages (3/5)                                                      
Printing pages (5/5)                                                      
Done 

Ответ 3

Хотя Daffy Punks отвечает правильно, у меня появилась дополнительная идея несколько недель назад, что очень помогло мне. Это я хочу поделиться: Показать в PDF

При визуализации макета для PDF я добавляю дополнительный (скрытый) DIV #pdf_errors

И очень рано в исходном коде - если #pdf_errors здесь - я разрешаю вывод точки консоли для заполнения этого div, а при ошибке - показывать его. Это не отладка, но, по крайней мере, я вижу, что происходит не так.

Источник в coffeescript, мои простые javascript-времена давно ушли...

if ($pdf=$("#pdf_is_here")).length
    for type in ["log","warn","error"]
        do (type) =>
            console[type]= (a...) =>
                $pdf.append("<div class='#{type}'>#{s}</div>") for s in a

    window.onerror= (messageOrEvent, source, lineno, colno, error) =>
        $pdf.append("<div class='critical'>#{messageOrEvent}</div>")
        $pdf.show()

    $pdf.hide() # just in case css is not here