Я использую 5.5 фреймворка и недавно загрузил 0.12.5 (dev-master) пакета wkhtmltopdf-amd64, чтобы попытаться устранить эту ошибку.
Я знаю, что это обычно происходит из-за URL-адресов SSL (https) в html, НО я получил файл, который пытаюсь распечатать, и он работает в моей производственной среде.
Я изменил новый код в тестовой среде (которая была изменена для использования шрифта awesome 5) назад, чтобы он использовал только v4 этого. Насколько я могу судить, ссылки в файлах (где 1 работает, а 1 нет) совпадают.
Существуют ли другие проблемы в HTML-файле моего тестового файла, которые могут вызвать ошибку, показанную здесь:
(1/1) RuntimeException
The exit status code '1' says something went wrong:
stderr: "Loading pages (1/6)
[> ] 0%
[======> ] 10%
QSslSocket: cannot resolve CRYPTO_num_locks
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
[========> ] 14%
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
Warning: Failed to load https://mcentric-test.herokuapp.com/css/jumbotron.css (ignore)
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init
Warning: Failed to load https://mcentric-test.herokuapp.com/images/mCentric_logo.png (ignore)
Warning: Failed to load https://mcentric-test.herokuapp.com/images/meeting.jpg (ignore)
Warning: Failed to load https://mcentric-test.herokuapp.com/images/outlook.jpg (ignore)
Warning: Failed to load https://mcentric-test.herokuapp.com/images/google.jpg (ignore)
Warning: Failed to load https://mcentric-test.herokuapp.com/images/yahoo.jpg (ignore)
Warning: Failed to load https://mcentric-test.herokuapp.com/images/ical.jpg (ignore)
Warning: Failed to load https://mcentric-test.herokuapp.com/images/mCentric_logo_blue.png (ignore)
[============================================================] 100%
Counting pages (2/6)
[============================================================] Object 1 of 1
Resolving links (4/6)
[============================================================] Object 1 of 1
Loading headers and footers (5/6)
Printing pages (6/6)
[> ] Preparing
[============================================================] Page 1 of 1
Done
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
"stdout: ""command: /app/vendor/bin/wkhtmltopdf-amd64 --lowquality --load-error-handling 'ignore' '/tmp/knp_snappy5bd9df39f00ca0.32809410.html' '/tmp/knp_snappy5bd9df39f02363.36498894.pdf'.
in AbstractGenerator.php line 378
HTML, созданный на тестовом сервере
HTML, созданный на рабочем сервере (это НЕ выдает ошибку)
Иными словами, внешний вид, который требует 6 ссылок https для форматирования, успешно создает PDF с использованием двоичного файла 0.12.4.
И двоичные файлы 0.12.4 и 0.12.5 (при попытке в тестовой среде) не смогли создать PDF-файл, что привело к приведенному выше тексту ошибки.
Я публикую этот ответ, чтобы избавить кого-то от необходимости постоянно пересматривать это в будущем.
Тестовая и производственная среды — это среды, размещенные на heroku.
Двоичный файл wkhtmltopdf-amd64 отлично работал в стеке cedar-14 (производство).
Стек тестовой среды был обновлен, и это, кажется, причина, по которой он перестал работать.
Других решений пока нет …