项目最后两天需要将HTML页面转换成PDF文件进行打印,在网上查了很多资料。我使用过两个扩展包laravel-dompdf和laravel-snappy,我个人认为laravel-snappy更容易使用。
1.使用laravel-dompdf扩展包
1.安装扩展包
通过作曲家安装
Composer需要barryvdh/laravel-dompdf2。将ServiceProvider添加到config/appphp.ini中的providers数组中
BarryvdhDomPDFServiceProvider:class,3.在config/appphp中向别名数组添加外观。
39;=>;BarryvdhDomPDFFacade:class,4.二手
您可以创建dompdf实例,加载HTML字符串、文件或视图,然后使用Stream方法将其显示在浏览器中,使用save方法将其保存到文件,或使用download方法下载。
$pdf=App:make39;$pdf-gt;loadHTML39;返回$pdf-gt;stream;您还可以使用外观并在使用之前拥有PDF。
$pdf=PDF:loadView39;$data;return$pdf-gt;download39;也可以链式操作
returnPDF:loadFilepublic_path39;-gt;save39;-gt;stream39;您可以更改方向和纸张尺寸,以及隐藏或显示错误。PDF:loadHTML$html-gt;setPaper39;39;-gt;setWarningsfalse-gt;save39;其他基本使用和配置请参考topdf支持文档。因此,请先安装Wkhtmltopdf。
方法一下载wkhtmltopdf安装包
wkhtmltopdf下载地址topdforg/downloadshtml
只需在Windows上直接下载并安装即可。请小心地将其安装在已知位置。这条路径稍后会有用。
我的安装在G:wk目录下
bin目录包含两个依赖软件wkhtmltoimage和wkhtmltopdf。
Linux下载并解压完成后,将文件移动到/usr/local/bin。
方法2通过Composer安装
我们以Linux系统为例。
32位$需要作曲家h4cc/wkhtmltopdf-i386012x$需要作曲家h4cc/wkhtmltoimage-i386012x,64位$需要作曲家h4cc/wkhtmltopdf-amd64012x$需要作曲家h4cc/wkhtmltoimage-amd64012xuname-a命令系统位计数检查并创建cpVendor/h4cc/wkhtmltoimage-amd64/bin/wkhtmltoimage-amd64/usr/local/bin/cpVendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64/usr/local/bin/。可执行文件chmod+x/usr/local/bin/wkhtmltoimage-amd64chmod+x/usr/local/bin/wkhtmltopdf-amd64在Linux上使用此第三方插件需要多个库的支持。
yuminstalllibXrenderyum安装libfontconfig2,安装laravel-snappy扩展包
作者需要barryvdh/laravel-snappy3。将ServiceProvider添加到config/appphp.ini中的providers数组中
BarryvdhSnappyServiceProvider:class,4.在config/appphp中向别名数组添加外观。
39;=>;BarryvdhSnappyFacadesSnappyPdf:class,39;=>;BarryvdhSnappyFacadesSnappyImage:类,5。创建配置文件
对于更高版本的laravel如55及以上版本,请忽略上面的步骤3和4,直接到这里创建配置文件phpartisanVendor:publish--provider=34;此命令在config/snappyphp.ini中创建一个配置文件。
具体配置如下
lt;php返回[39;=>;[39;=>;正确,39;=>;env39;39;//Linux配置路径//39;=>;env39;39;//窗口配置path39;=>;假,39;=>;[],39;=>;[]、]、39;=>;[39;=>;正确,39;=>;//Linux配置路径//39;=>;env39;39;//Windows配置路径39;=>;假,39;=>;[],39;=>;[]、]、];6用法类似。如何使用dompdf
先介绍一下
使用PDF、使用SnappyImage、创建PDF文件
您可以使用Facade加载HTML字符串、文件或视图,然后使用Stream方法将其显示在浏览器中,使用save方法将其保存到文件,或使用download方法下载它。
$pdf=PDF:loadView39;$data;return$pdf-gt;download39;也可以链式操作
returnPDF:loadFilepublic_path39;-gt;save39;-gt;stream39;您可以更改方向和纸张尺寸,以及隐藏或显示错误。
PDF:loadHTML$html-gt;setPaper39;39;-gt;setWarningsfalse-gt;save39;创建照片
$pdf=SnappyImage:loadView39;$data;return$pdf-gt;download39;7.解决了中英文字符乱码的题
方法一
将宋体或其他中文字体添加到/usr/share/fonts/。
方法二
安装中文字体
yuminstallipa-gothic-fontsipa-mincho-fontsipa-pgothic-fontsipa-pmincho-fonts在方法中转义为utf-8
$pdf-gt;设置选项39;39;这是一个演示测试示例
控制器层
lt;php命名空间AppHttpControllersV2;使用IlluminateHttpRequest;使用AppResponsesRes;使用IlluminateSupportFacadesValidator;使用PDF;使用SnappyImage;使用该应用程序;使用IlluminateSupportFacadesResponse;使用PdfController类扩展控制器/包装器使用嵌入的HTML生成PDF文件,然后在线进行预览/发布功能pdf2/或使用外观使用刀片模板引擎,生成pdf文件/发布功能pdf3/可以使用链接方法使用URL获取内容,然后创建pdf文件/公共函数pdf4/使用刀片模板创建图像,文件/公共函数img1创建视图层
lt;h1gt;lt;/h1gt;lt;h2gt;lt;/h2gt;lt;h3gt;lt;/h3gt;
参考文献包括
laravel-dompdf包
laravel-snappy包
关于laravel 打印和laravel打印运行日志的相关题已解完毕,诸位网友记得持续关注本站。
No Comment