【问题标题】:Images not getting displayed in PDF (barryvdh/laravel-snappy package)图像未在 PDF 中显示(barryvdh/laravel-snappy 包)
【发布时间】:2021-08-02 15:18:21
【问题描述】:

我正在使用 Laravel 框架中的 barryvdh/laravel-snappy 包将 html 文件转换为 PDF。

工作正常,但 PDF 中的图像没有显示出来。

html中使用的图片路径如下:

https://easydmc-staging2.s3.ap-south-1.amazonaws.com/ImagesSightseeing/2021/03/1PeocnxOb3gqlZmMSjwXDWwLiEfyq0a8KX5M4OOw.jpeg

这里是html的链接:

https://staging.easydmc.com/test?html=true

生成的 PDF 的链接是:

https://staging.easydmc.com/test?html=false

早些时候,图像在 PDF 中运行良好。几天前,我执行了命令 - sudo apt upgrade。我不知道这是否导致了问题。

我尝试重新安装包 barryvdh/laravel-snappy,但没有成功。

任何帮助将不胜感激。

PHP 版本:8.0

服务器:Nginx

Laravel:8.51.0

【问题讨论】:

  • 显示添加内容,同时在链接前使用!显示stackoverflow本身的内容

标签: php laravel ubuntu-18.04 laravel-snappy knp-snappy


【解决方案1】:

我之前遇到过这个问题,是因为wkhtmltopdf。您应该使用存储完整路径而不是网址。

例如,而不是使用:

https://easydmc-staging2.s3.ap-south-1.amazonaws.com/ImagesSightseeing/2021/03/1PeocnxOb3gqlZmMSjwXDWwLiEfyq0a8KX5M4OOw.jpeg

使用这样的东西:

/var/www/html/myproject/public/ImagesSightseeing/2021/03/1PeocnxOb3gqlZmMSjwXDWwLiEfyq0a8KX5M4OOw.jpeg

要获得完整的存储路径,您可以使用如下代码:

<img src="{{public_path('/ImagesSightseeing/2021/03/1PeocnxOb3gqlZmMSjwXDWwLiEfyq0a8KX5M4OOw.jpeg')}}" />

【讨论】:

  • 我本可以采纳你的建议,但图像路径是 AWS S3。
【解决方案2】:

我得到了解决方案:

首先,我在使用以下命令生成 PDF 时检查了是否存在问题:

/usr/local/bin/wkhtmltopdf-amd64 http://www.google.com test.pdf

我了解了以下问题:

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_method00%
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_library_init

上述问题的解决方法是安装libssl1.0-dev:

apt install libssl1.0-dev

所以我在原始问题中的 PDF 链接 https://staging.easydmc.com/test?html=false 现在开始工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 2016-01-23
    • 2018-07-20
    • 1970-01-01
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多