0、使用MPDF
dompdf个人感觉没有那么好用,最终的生产环境使用的是MPDF,github上有文档说明。如果你坚持使用,下面是解决办法。可以明确的说,中文乱码是可以解决的。
1、安装laravel-dompdf依赖。
:https://packagist.org/packages/barryvdh/laravel-dompdf
composer require barryvdh/laravel-dompdf
2、配置config/app.php
// add the ServiceProvider to the providers array in config/app.php// 添加到providers数组下Barryvdh\DomPDF\ServiceProvider::class,// Add this to your facades// 添加到aliases数组下'PDF' => Barryvdh\DomPDF\Facade::class,
3、创建view
下载中文字体,这里我使用了msyh.ttf(微软雅黑)。
在public目录下创建fonts目录并把下载好的字体复制到该目录下。
创建view:
测试pdf xiao{ { $name}}
注意:引入字体,使用@font-face,并通过【font-family: 'msyh';】应用到这个body上。
@font-face { font-family: 'msyh'; font-style: normal; font-weight: normal; src: url(http://www.testpdf.com/fonts/msyh.ttf) format('truetype'); }
4、创建controller
'宝bao'); $pdf = PDF::loadView('invoice', $data); return $pdf->download('invoice.pdf'); } /** * 测试web页面展示pdf,使用loadHTML()方法加载 * @return mixed */ public function testStreamPdf() { $html = 'Laravel '; $pdf = PDF::loadHTML($html); return $pdf->stream(); } }献给母亲的爱
Laravel 5中文测试测试三
问题1:
ErrorException in AdobeFontMetrics.php line 45:fopen(D:\workspace\php\testpdf\storage\fonts/\b0a260823b52b90d6a99ba3a53e67e9f.ufm): failed to open stream: No such file or directory
解决方法:在storage下创建fonts文件夹
问题2:
FatalThrowableError in TableCell.php line 31:Call to a member function get_cellmap() on null
解决方法:
更多解释请查看:https://github.com/barryvdh/laravel-dompdf/issues/137
// 注释掉view中的这一行代码display: table-cell;
:https://github.com/dompdf/dompdf/wiki/UnicodeHowTo
有问题可加QQ群询问【】:576269252
--------------------------------------
声明: 原创文章,未经允许,禁止转载!
--------------------------------------