Попробуйте следующее: Благодаря https://github.com/barryvdh/laravel-snappy/issues/255#issuecomment -628815194
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
spandata = document.getElementsByClassName("spandata")
spandatadate = document.getElementsByClassName("spandatadate")
function init() {
google.charts.load('current', {packages: ['corechart']});
var interval = setInterval(function() {
if ( google.visualization !== undefined && google.visualization.DataTable !== undefined && google.visualization.PieChart !== undefined ){ clearInterval(interval);
window.status = 'ready';
drawCharts();
}
}, 100);
}
function drawCharts() { // PROCESSING ... }
</script>
Где drawCharts () - ваша функция, обрабатывающая рисунок, и т. Д. c.
Наконец-то это сработало для меня, так что ... Я надеюсь, что это сработает для вас!
Я все еще не могу понять, в чем проблема, но я думаю, это потому, что API диаграммы не может быть загружается быстро, поэтому wkhtmltopdf обрабатывает преобразование ДО загрузки диаграммы. Ожидание готовности DOM + установка интервала, похоже, решает проблему (на данный момент!)
РЕДАКТИРОВАТЬ 21.06.2020
Забыл сказать: http://www.google.com/jsapi перенаправление на страницу HTTPS для gstati c (https://www.gstatic.com/charts/loader.js), который является новым местом для JS API Google. Итак, если вы хотите, чтобы wkhtmltopdf работал, вам необходимо установить пакет libssl
sudo apt-get install libssl1.0-dev
Вы можете попробовать, работает ли он с
wkhtmltopdf https://google.com google.pdf
Если нет, вы получите такой вывод :
Loading pages (1/6)
QSslSocket: cannot resolve CRYPTO_num_locks ] 10%
QSslSocket: cannot resolve CRYPTO_set_id_callback
QSslSocket: cannot resolve CRYPTO_set_locking_callback
QSslSocket: cannot resolve sk_free
QSslSocket: cannot resolve sk_num
QSslSocket: cannot resolve sk_pop_free
QSslSocket: cannot resolve sk_value
QSslSocket: cannot resolve SSL_library_init
QSslSocket: cannot resolve SSL_load_error_strings
QSslSocket: cannot resolve SSLv3_client_method
QSslSocket: cannot resolve SSLv23_client_method
QSslSocket: cannot resolve SSLv3_server_method
QSslSocket: cannot resolve SSLv23_server_method
QSslSocket: cannot resolve X509_STORE_CTX_get_chain
QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf
QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf
QSslSocket: cannot resolve SSLeay
QSslSocket: cannot call unresolved function CRYPTO_num_locks
QSslSocket: cannot call unresolved function CRYPTO_set_id_callback
QSslSocket: cannot call unresolved function CRYPTO_set_locking_callback
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function sk_num
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
Error: Failed loading page https://google.com (sometimes it will work just to ignore this error with --load-error-handling ignore)
Exit with code 1 due to network error: UnknownNetworkError
QSslSocket: cannot call unresolved function CRYPTO_num_locks
QSslSocket: cannot call unresolved function CRYPTO_set_id_callback
QSslSocket: cannot call unresolved function CRYPTO_set_locking_callback
После установки libssl результат теста google.pdf должен быть
Loading pages (1/6)
Counting pages (2/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done
Я использую:
Laravel 5.7
PHP 7.1.3
barryvdh/laravel-dompdf ^0.8.5
barryvdh/laravel-snappy ^0.4.6
wkhtmltopdf 0.12.4 (with patched qt)
Ubuntu 18.04 LTS