昆明房地产网站开发,毕业设计做网站做不出,wordpress注册密码忘记,那些做黑网站的都是团体还是个人这两天项目中需要将HTML页面转换为PDF文件方便打印#xff0c;我在网上搜了很多资料。先后尝试了laravel-dompdf和laravel-snappy两种扩展包#xff0c;个人感觉laravel-snappy比较好用。 一、使用laravel-dompdf扩展包 1、安装扩展包 我们通过composer来安装 composer requi…这两天项目中需要将HTML页面转换为PDF文件方便打印我在网上搜了很多资料。先后尝试了laravel-dompdf和laravel-snappy两种扩展包个人感觉laravel-snappy比较好用。 一、使用laravel-dompdf扩展包 1、安装扩展包 我们通过composer来安装 composer require barryvdh/laravel-dompdf 2、将ServiceProvider添加到config / app.php中的providers数组中 Barryvdh\DomPDF\ServiceProvider::class, 3、添加facade到config / app.php中的aliases数组中 PDF Barryvdh\DomPDF\Facade::class, 4、使用 可以创建一个dompdf实例并加载HTML字符串、文件或者视图然后使用stream()方法显示在浏览器中、save()方法保存到文件或者download()方法下载。 $pdf App::make(dompdf.wrapper);
$pdf-loadHTML(h1Test/h1);
return $pdf-stream(); 也可以使用门面facade使用前先use PDF; $pdf PDF::loadView(pdf.invoice, $data);
return $pdf-download(invoice.pdf); 也可以链式操作 return PDF::loadFile(public_path()./myfile.html)-save(/path-to/my_stored_file.pdf)-stream(download.pdf); 可以更改方向landscape将方向设为横向一般使用的都是竖向的使用时注意一下和纸张大小并隐藏或显示错误默认情况下调试打开时显示错误 PDF::loadHTML($html)-setPaper(a4, landscape)-setWarnings(false)-save(myfile.pdf) 其他的一些基本使用和配置请参考文档资料https://github.com/barryvdh/laravel-dompdf 5、解决中文乱码问题 下载一个支持unicode编码的中文字体。例如msyh.ttf微软雅黑 建议先在storage下创建fonts文件夹把字体放在fonts文件夹下不然会报错。 在css中引入字体 stylefont-face {font-family: msyh;font-style: normal;font-weight: normal;src: url({{ storage_path(your_path/msyh.ttf) }}) format(truetype);}body {font-family: msyh, DejaVu Sans,sans-serif;}
/style 注意亲测只有unicode编码的中文才能正常显示这也是我觉得这个PDF扩展不太好用的原因。 二、使用laravel-snappy扩展包 1、安装依赖软件 laravel-snappy扩展包需要Wkhtmltopdff的支持所以先安装Wkhtmltopdf 方法一下载wkhtmltopdf安装包 wkhtmltopdf下载地址http://www.softpedia.com/get/Office-tools/PDF/wkhtmltopdf.shtml windows直接下载安装就可以了注意安装到你知道的地方这个路径后面有用。 我的安装在G:wk目录下 在bin目录下有wkhtmltoimage与wkhtmltopdf两个依赖软件 linux下载解压完成后要将文件移动到 /usr/local/bin 下 方法二通过 composer 来安装 以linux系统为例 32位:
$ composer require h4cc / wkhtmltopdf-i386 0.12.x
$ composer require h4cc / wkhtmltoimage-i386 0.12.x
64位:
$ composer require h4cc/wkhtmltopdf-amd64 0.12.x
$ composer require h4cc/wkhtmltoimage-amd64 0.12.x(uname -a 命令查看系统位数)cp vendor/h4cc/wkhtmltoimage-amd64/bin/wkhtmltoimage-amd64 /usr/local/bin/
cp vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 /usr/local/bin/
并使其可执行
chmod x /usr/local/bin/wkhtmltoimage-amd64
chmod x /usr/local/bin/wkhtmltopdf-amd64 Linux 下使用该第三方插件需要几个库的支持 apt-get install libXrender*
apt-get install libfontconfig* 1、安装laravel-snappy扩展包 composer require barryvdh/laravel-snappy 2、将ServiceProvider添加到config / app.php中的providers数组 Barryvdh\Snappy\ServiceProvider::class, 3、添加facade到config / app.php中的aliases数组中 PDF Barryvdh\Snappy\Facades\SnappyPdf::class,
SnappyImage Barryvdh\Snappy\Facades\SnappyImage::class, 4、生成配置文件 php artisan vendor:publish --providerBarryvdh\Snappy\ServiceProvider 此命令会在config/snappy.php生成配置文件 具体配置如下: ?phpreturn array(pdf array(enabled true,
// binary /usr/local/bin/wkhtmltopdf, //依赖软件的路径linux默认在此目录下binary G:\wk\wkhtmltopdf\bin\wkhtmltopdf,timeout false,options array(),env array(),),image array(enabled true,
// binary /usr/local/bin/wkhtmltoimage,binary G:\wk\wkhtmltopdf\bin\wkhtmltoimage,timeout false,options array(),env array(),),); 5、使用 ( 与使用dompdf类似 ) 先引入 use PDF;
use SnappyImage; 生成PDF文件 可以使用门面facade加载HTML字符串、文件或者视图然后使用stream()方法显示在浏览器中、save()方法保存到文件或者download()方法下载。 $pdf PDF::loadView(pdf.invoice, $data);
return $pdf-download(invoice.pdf); 也可以链式操作 return PDF::loadFile(public_path()./myfile.html)-save(/path-to/my_stored_file.pdf)-stream(download.pdf); 可以更改方向landscape将方向设为横向一般使用的都是竖向的使用时注意一下和纸张大小并隐藏或显示错误默认情况下调试打开时显示错误 PDF::loadHTML($html)-setPaper(a4, landscape)-setWarnings(false)-save(myfile.pdf) 生成图片 $pdf SnappyImage::loadView(pdf.invoice, $data);
return $pdf-download(invoice.image); 6、解决中英文乱码问题 linux 可以将例如宋体或其他中文字体添加到 /usr/share/fonts/ 里 非常开心能够将我的学习心得分享给大家 (๑๑ 转载于:https://www.cnblogs.com/lishanlei/p/9300864.html