一文讲解Laravel-snappy如何导出PDF

下面由laravel教程栏目给大家介绍如何使用laravel-snappy导出pdf,希望对需要的朋友有所帮助!

前言

论坛里有很多关于如何使用 Laravel-snappy 的文章,但是很多都停留在安装、基本示例,对于实际的应用既没有说明用法,也没有解答一些问题和疑惑,因此在此整理一下,权当做个记录吧。

安装

以 ubuntu 为例

1. 执行安装 wkhtmltopdf:

composer require h4cc/wkhtmltopdf-amd64 0.12.xcomposer require h4cc/wkhtmltoimage-amd64 0.12.x

顾名思义,分别安装的是 wkhtmltopdf 和 wkhtmltoimage。

2. 复制 wkhtmltopdf 到 ubuntu 可执行命令的目录中

sudo cp vendor/h4cc/wkhtmltoimage-amd64/bin/wkhtmltoimage-amd64 /usr/local/bin/sudo cp vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 /usr/local/bin///并使其可执行:sudo chmod +x /usr/local/bin/wkhtmltoimage-amd64 sudo chmod +x /usr/local/bin/wkhtmltopdf-amd64

3. 安装 laravel-snappy

composer require barryvdh/laravel-snappy

4. 将 ServiceProvider 添加到 config/app.php 中的 providers 数组中

BarryvdhSnappyServiceProvider::class

5. 将 Facades 添加到 config/app.php 中的 aliases 数组中

'PDF' => BarryvdhSnappyFacadesSnappyPdf::class,'SnappyImage' => BarryvdhSnappyFacadesSnappyImage::class,

6. 执行生成配置文件

小文AI论文 小文AI论文

轻松解决论文写作难题,AI论文助您一键完成,仅需一杯咖啡时间,即可轻松问鼎学术高峰!

小文AI论文 69 查看详情 小文AI论文

php artisan vendor:publish --provider="BarryvdhSnappyServiceProvider"

可以看到默认的配置文件为 config/snappy.php:

return [    'pdf' => [        'enabled' => true,        'binary'  => env('WKHTML_PDF_BINARY', '/usr/local/bin/wkhtmltopdf'),        'timeout' => false,        'options' => [],        'env'     => [],    ],    'image' => [        'enabled' => true,        'binary'  => env('WKHTML_IMG_BINARY', '/usr/local/bin/wkhtmltoimage'),        'timeout' => false,        'options' => [],        'env'     => [],    ],];

注意,这里有个坑,默认 binary 配置为 /usr/local/bin/wkhtmltopdf 和 /usr/local/bin/wkhtmltoimage,在第一次使用的时候,会报错 /usr/local/bin/wkhtmltopdf不存在,这是因为在 linux 系统下,wkhtmltopdf 和 wkhtmltoimage 的真实路径和名称为:/usr/local/bin/wkhtmltopdf-amd64 和 /usr/local/bin/wkhtmltoimage-amd64。

9fd04814e680ba64faa47e2f0b24460.png

因此,需要把配置信息修改为:

'pdf' => [        ...        'binary'  => env('WKHTML_PDF_BINARY', '/usr/local/bin/wkhtmltopdf-amd64'),        ...    ],    'image' => [        ...        'binary'  => env('WKHTML_IMG_BINARY', '/usr/local/bin/wkhtmltoimage-amd64'),        ...    ],

开始使用

//使用方法1$pdf = PDF::loadView('welcome', $data);return $pdf->download('welcome.pdf');//使用方法2$html = '

订单id

12346546

';$pdf = PDF::loadHTML($html);return $pdf->inline();

很多博客里没有提到,使用方法 1 中,会报这样的错:

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 [==================> ] 31% QSslSocket: cannot call unresolved function SSLv23_client_method QSslSocket: cannot call unresolved function SSL_library_init [============================================================] 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: /usr/local/bin/wkhtmltopdf-amd64 --lowquality '/tmp/knp_snappy612c3edcdfc855.21787864.html' '/tmp/knp_snappy612c3edcdfce49.80482557.pdf'.

执行:

sudo apt-get updatesudo apt install libssl1.0-dev

修复完成,导出 welcome 页面。

如果使用 save () 方法保存,默认保存到 /public 文件夹下,并且如果文件名相同的情况下,第二次保存会提示文件已经存在。

以上就是一文讲解Laravel-snappy如何导出PDF的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/345370.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
oppo手机语音播报怎么关闭_oppo手机关闭语音播报方法
上一篇 2026年11月10日 06:23:50
设计模式与PHP框架的可扩展性
下一篇 2025年11月9日 11:17:49

相关推荐

  • 条码标签重复打印技巧

    条码标签重复打印技巧条码标签重复打印技巧条码标签重复打印技巧条码标签重复打印技巧

    重复打印在批量打印场景中十分常见,尤其适用于条码、标签或图片的多份输出需求。无论是需要将同一标签打印多份,还是在单张标签纸上重复打印多个相同内容,均可通过专业的条码标签软件轻松实现。通常有两种方式可完成该操作:一是直接设置打印份数进行批量输出,二是利用数据源循环机制实现重复打印,两种方法均操作简单且…

    2026年11月10日 • 用户投稿
    000
  • laravel如何安全地处理用户上传的文件_Laravel用户上传文件安全处理方法

    答案:Laravel文件上传需验证类型大小、重命名存储、防止脚本执行、控制访问权限。具体包括:使用mimes和max限制文件类型与尺寸,通过store自动重命名并存于storage/app/public,利用图像处理库剥离恶意内容,配置Web服务器禁止执行上传目录脚本,敏感文件经控制器鉴权后响应,确…

    2026年11月9日
    900
  • 文本处理:精准移除除空格外的所有空白符

    在处理来自外部API的数据时,尤其是在生成PDF等格式化文档时,常常会遇到各种非标准空白符(如零宽空格`U+200B`)导致布局错乱的问题。本文将深入探讨如何利用Java的正则表达式和Unicode字符属性,高效且精准地移除字符串中除标准空格外的所有隐形格式字符,确保文本内容的纯净和格式的正确性,从…

    2026年11月9日
    000
  • Chrome浏览器怎么把网页保存为PDF_Chrome浏览器网页另存为PDF文件技巧

    Chrome浏览器怎么把网页保存为PDF_Chrome浏览器网页另存为PDF文件技巧Chrome浏览器怎么把网页保存为PDF_Chrome浏览器网页另存为PDF文件技巧Chrome浏览器怎么把网页保存为PDF_Chrome浏览器网页另存为PDF文件技巧Chrome浏览器怎么把网页保存为PDF_Chrome浏览器网页另存为PDF文件技巧

    首先使用Chrome打印功能将网页保存为PDF,选择“另存为PDF”并调整设置后保存;其次可通过安装扩展程序增强导出功能,如添加水印或批量处理;最后还可通过开发者工具截取全页截图并合并为PDF以完整保留视觉效果。 如果您需要将网页内容完整保存以供离线查看或分享,Chrome浏览器提供了便捷的“打印为…

    2026年11月9日 • 用户投稿
    000
  • 学信网学历查询报告怎么翻译成英文_英文翻译与认证流程

    学信网学历查询报告怎么翻译成英文_英文翻译与认证流程学信网学历查询报告怎么翻译成英文_英文翻译与认证流程学信网学历查询报告怎么翻译成英文_英文翻译与认证流程学信网学历查询报告怎么翻译成英文_英文翻译与认证流程

    先从学信网下载中文学历报告PDF;2. 选择正规翻译机构进行英文翻译并加盖公章;3. 或直接申请学信网官方英文版认证报告;4. 部分国家需办理公证及双认证手续。 如果您需要将学信网的学历查询报告用于海外申请或国际认证,通常需要提供官方认可的英文翻译版本。以下是完成英文翻译与认证的具体步骤。 本文运行…

    2026年11月9日 • 用户投稿
    200
  • 百度网盘网页版最新网址 百度网盘网页版2024最新入口

    百度网盘网页版最新网址 百度网盘网页版2024最新入口百度网盘网页版最新网址 百度网盘网页版2024最新入口百度网盘网页版最新网址 百度网盘网页版2024最新入口百度网盘网页版最新网址 百度网盘网页版2024最新入口

    百度网盘网页版最新网址是https://pan.baidu.com/,提供多端同步、智能搜索、在线预览和OCR识别等功能,支持高效文件管理与安全资源共享。 百度网盘网页版最新网址在哪里?这是不少网友都关注的,接下来由PHP小编为大家带来百度网盘网页版2024最新入口,感兴趣的网友一起随小编来瞧瞧吧!…

    2026年11月9日 • 用户投稿
    200
  • 悟空浏览器下载的文件打不开怎么办_悟空浏览器下载文件无法打开解决方案

    悟空浏览器下载的文件打不开怎么办_悟空浏览器下载文件无法打开解决方案悟空浏览器下载的文件打不开怎么办_悟空浏览器下载文件无法打开解决方案悟空浏览器下载的文件打不开怎么办_悟空浏览器下载文件无法打开解决方案悟空浏览器下载的文件打不开怎么办_悟空浏览器下载文件无法打开解决方案

    先检查文件完整性与格式,确认非0KB且设备支持该类型;尝试重新下载避免传输错误;修改默认下载路径至内部存储;用文件管理器手动查找并指定应用打开;最后清除浏览器缓存重启验证。 如果您在使用悟空浏览器下载文件后发现无法打开,可能是由于文件损坏、格式不兼容或存储路径异常导致。以下是针对此问题的多种解决方案…

    2026年11月9日 • 用户投稿
    000
  • PDF水印去除在线平台入口 PDF文件去水印操作

    PDF水印去除在线平台入口 PDF文件去水印操作PDF水印去除在线平台入口 PDF文件去水印操作PDF水印去除在线平台入口 PDF文件去水印操作PDF水印去除在线平台入口 PDF文件去水印操作

    PDF水印去除在线平台入口为https://www.pdf2go.com/remove-watermark,用户可上传PDF文件,通过“删除水印”功能在线清除文本、图片或背景水印,操作简单且保护隐私。 PDF水印去除在线平台入口在哪里?这是不少网友都关注的,接下来由PHP小编为大家带来PDF水印去除…

    2026年11月8日 • 用户投稿
    000
  • 夸克网页版在线进入 夸克浏览器官网入口

    夸克网页版在线进入 夸克浏览器官网入口夸克网页版在线进入 夸克浏览器官网入口夸克网页版在线进入 夸克浏览器官网入口夸克网页版在线进入 夸克浏览器官网入口

    夸克网页版入口为https://www.quark.cn/,用户可通过浏览器直接访问、搜索引擎查找官网或扫描二维码进入。 夸克网页版在线进入入口地址在哪里?这是不少网友都关注的,接下来由PHP小编为大家带来夸克浏览器官网入口,感兴趣的网友一起随小编来瞧瞧吧! https://www.quark.cn…

    2026年11月8日 • 用户投稿
    1700
  • win10电脑桌面图标变成PDF图标怎么办?

    win10电脑桌面图标变成PDF图标怎么办?win10电脑桌面图标变成PDF图标怎么办?win10电脑桌面图标变成PDF图标怎么办?win10电脑桌面图标变成PDF图标怎么办?

    当电脑遇到操作问题时,我们通常可以通过系统设置来修复,以恢复正常运行。不过,如果您的电脑桌面上的图标突然都变成了pdf图标,这可能是由于某些软件错误地将快捷方式的.ink文件与pdf关联起来了。幸运的是,这个问题能够通过修改注册表来解决。接下来就详细说明一下具体步骤。 注意:在进行任何注册表编辑之前…

    2026年11月8日 • 用户投稿
    000
  • 铁路12306电子客票怎么取报销凭证_铁路12306电子客票报销凭证领取方法

    铁路12306电子客票怎么取报销凭证_铁路12306电子客票报销凭证领取方法铁路12306电子客票怎么取报销凭证_铁路12306电子客票报销凭证领取方法铁路12306电子客票怎么取报销凭证_铁路12306电子客票报销凭证领取方法铁路12306电子客票怎么取报销凭证_铁路12306电子客票报销凭证领取方法

    铁路电子发票可通过12306 App在线开具或车站扫码申请。乘车人登录后进入“电子发票”功能,选择行程并填写发票信息后提交,即可下载PDF或OFD格式发票;若无法线上办理,可持有效证件至车站获取“扫码开票单”,再通过App扫描二维码补全信息完成开票,生成的电子发票可随时查询、预览或转发用于报销。 如…

    2026年11月8日 • 用户投稿
    100
  • 大模型“记性差一点”反而更聪明!金鱼损失随机剔除 token,让 AI 不再死记硬背

    大模型“记性差一点”反而更聪明!金鱼损失随机剔除 token,让 AI 不再死记硬背大模型“记性差一点”反而更聪明!金鱼损失随机剔除 token,让 AI 不再死记硬背大模型“记性差一点”反而更聪明!金鱼损失随机剔除 token,让 AI 不再死记硬背大模型“记性差一点”反而更聪明!金鱼损失随机剔除 token,让 AI 不再死记硬背

    训练大模型时,适度“健忘”反而更聪明! 大语言模型若缺乏约束,容易直接照搬训练数据。为应对这一挑战,马里兰大学、图宾根大学与马普所的研究团队提出了一种新颖方法——金鱼损失(Goldfish Loss)。 顾名思义,金鱼损失旨在让模型像金鱼一样“记性差”,在计算损失函数时随机忽略一小部分 token。…

    2026年11月7日 • 用户投稿
    000
  • 天眼查电脑版官方下载链接_天眼查电脑版官方下载链接获取方法

    天眼查电脑版官方下载链接_天眼查电脑版官方下载链接获取方法天眼查电脑版官方下载链接_天眼查电脑版官方下载链接获取方法天眼查电脑版官方下载链接_天眼查电脑版官方下载链接获取方法天眼查电脑版官方下载链接_天眼查电脑版官方下载链接获取方法

    天眼查电脑版官方下载链接为https://www.tianyancha.com/download,用户可通过该链接下载并使用其提供的企业工商信息查询、司法风险、知识产权、经营状况及企业关系图谱等多维度信息服务。 天眼查电脑版官方下载链接在哪里?这是不少网友都关注的,接下来由PHP小编为大家带来天眼查…

    2026年11月7日 • 用户投稿
    100
  • ChatGPT 曝出“ShadowLeak”漏洞:黑客可借“深度研究”模式无痕窃取 Gmail 账户信息

    ChatGPT 曝出“ShadowLeak”漏洞:黑客可借“深度研究”模式无痕窃取 Gmail 账户信息ChatGPT 曝出“ShadowLeak”漏洞:黑客可借“深度研究”模式无痕窃取 Gmail 账户信息ChatGPT 曝出“ShadowLeak”漏洞:黑客可借“深度研究”模式无痕窃取 Gmail 账户信息ChatGPT 曝出“ShadowLeak”漏洞:黑客可借“深度研究”模式无痕窃取 Gmail 账户信息

    【AIbase 报道】根据 Radware 安全团队的最新发现,人工智能对话平台 ChatGPT 所搭载的“深度研究”功能曾暴露出一个高危漏洞,代号为“ShadowLeak”。该漏洞可被恶意利用,导致用户的 Gmail 账户信息(如姓名、地址等敏感数据)在未授权且无感知的情况下被窃取。 此次攻击的独…

    2026年11月7日 • 用户投稿
    100
  • 大疆无人机怎么用飞行日志_大疆无人机飞行日志查看与飞行数据分析

    大疆无人机怎么用飞行日志_大疆无人机飞行日志查看与飞行数据分析大疆无人机怎么用飞行日志_大疆无人机飞行日志查看与飞行数据分析大疆无人机怎么用飞行日志_大疆无人机飞行日志查看与飞行数据分析大疆无人机怎么用飞行日志_大疆无人机飞行日志查看与飞行数据分析

    可通过DJI Fly或DJI GS Pro应用导出飞行日志,使用DJI Assistant 2进行深度分析,并在DJI Fly中查看基础飞行记录。 如果您希望回顾大疆无人机的飞行过程并分析相关数据,可以通过查看和分析飞行日志来实现。这些日志记录了飞行器的详细运行信息,有助于评估飞行表现、排查问题或进…

    2026年11月7日 • 用户投稿
    100
  • 如何通过邮件传文件到苹果笔记本_苹果笔记本接收邮件附件技巧

    如何通过邮件传文件到苹果笔记本_苹果笔记本接收邮件附件技巧如何通过邮件传文件到苹果笔记本_苹果笔记本接收邮件附件技巧如何通过邮件传文件到苹果笔记本_苹果笔记本接收邮件附件技巧如何通过邮件传文件到苹果笔记本_苹果笔记本接收邮件附件技巧

    在苹果笔记本上查看邮件附件,可通过回形针图标识别并预览;2. 使用空格键快速预览文件,双击打开文档;3. 保存附件可点击“全部存储”或拖拽至目标位置;4. 可在邮件偏好设置中更改默认保存路径;5. 大附件可能为限时下载链接,建议使用云文档分享;6. 无法下载时检查网络或重装客户端。 在苹果笔记本上通…

    2026年11月7日 • 用户投稿
    000
  • 腾讯混元3D Studio 震撼登场:3D 创作从”天”级提速至”分钟”级

    腾讯混元3D Studio 震撼登场:3D 创作从”天”级提速至”分钟”级腾讯混元3D Studio 震撼登场:3D 创作从”天”级提速至”分钟”级腾讯混元3D Studio 震撼登场:3D 创作从”天”级提速至”分钟”级腾讯混元3D Studio 震撼登场:3D 创作从”天”级提速至”分钟”级

    2025年9月19日,腾讯正式发布专为3d设计师、游戏开发者与建模师量身打造的ai创作平台——混元3d studio,成为其一周内的第二次重大技术输出。该平台将3d资产制作周期从传统的“天”级别压缩至“分钟”级别,带来前所未有的效率飞跃。 全流程一体化创作支持 目前上线的混元3D Studio 1.…

    2026年11月7日 • 用户投稿
    100
  • Pages如何设置密码保护 Pages文档加密的安全措施

    首先通过内置功能为Pages文档设置打开和编辑密码,其次可将文档导出为PDF后压缩加密,最后还可使用VeraCrypt等工具进行AES-256加密以增强安全性。 如果您希望保护Pages文档中的敏感信息,防止未经授权的人员查看或编辑内容,可以通过设置密码来加密文档。以下是实现Pages文档密码保护的…

    2026年11月7日
    300
  • windows8怎么设置默认打开程序_windows8修改默认程序的方法

    首先通过控制面板设置默认程序,选择应用并设为默认;其次为特定文件类型关联程序,更改其打开方式;最后可在支持的应用内直接设置为默认。 如果您尝试打开特定类型的文件,但系统使用了错误的应用程序,则需要手动更改默认程序以确保每次都能用正确的软件打开。以下是解决此问题的步骤: 本文运行环境:Dell XPS…

    2026年11月6日
    000
  • duckduckgo浏览器怎么打印网页_DuckDuckGo网页打印操作方法

    可通过DuckDuckGo浏览器调用系统打印功能将网页保存为PDF或打印:1、打开网页后点击菜单→分享→打印;2、选择保存为PDF或连接打印机;3、确认设置并完成输出。若无打印服务,可先另存为PDF再通过文件管理器打印;也可安装第三方打印应用扩展功能。 如果您在浏览网页时需要将页面内容保存为纸质文档…

    2026年11月6日
    100

发表回复

登录后才能评论
关注微信