Laravel PDF :: loadHtml Utf8问题

时间:2017-08-16 10:50:58

标签: laravel utf-8 pdf-generation

我使用PDF :: loadHtml在Laravel 5.3中创建pdf

一切都很好,但我有utf8问题我无法解决它

我的代码:

 $text="<html>
    <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    </head>
    <body>
    <h2 style="text-align:center">Birinci gün</h2>
    <table style="width:100%;" border="1">
                                    <tbody><tr>
                                        <td></td>
                                        <td>Həftə</td>
                                        <td style="text-align:center">Dərs</td>
                                        <td style="text-align:center">Vaxt</td>
                                        <td style="text-align:center">Müəllim</td>
                                        <td style="text-align:center">Korpus</td>
                                        <td style="text-align:center">Otaq</td>
                                    </tr>
                                    <tr>
                                        <th rowspan="2">1</th>
                                       <td style="padding-left:5px">Üst</td>
                                        <td><input name="ders[]" value=""></td>
                                        <td style="text-align:center"><input name="vaxt[]" value=""></td>
                                        <td style="text-align:center"><input name="teacher[]" value=""></td>
                                        <td style="text-align:center"><input name="korpus[]" value=""></td>
                                        <td style="text-align:center"><input name="otaq[]" value=""></td>
                                    </tr>      </tbody></table>

    </body>
    </html>";
    $pdf = PDF::loadHTML('<?xml encoding="UTF-8">' .$text, 'UTF-8');
            return $pdf->stream();

2 个答案:

答案 0 :(得分:1)

PDF::loadHtml 不能很好地支持 utf-8 字符,纯 php 库太难在 Laravel 中专门使用,而且很多库也有这个问题。 我通过开发和简化 tcpdf 制作了 laravel composer 包,以便非常简单。

只需通过以下命令安装它:

<块引用>

作曲家需要 vatttan/apdf

现在可以在您喜欢的任何地方使用。例如,在您的视图中,您可以使用:

use Illuminate\Support\Facades\Route;
use Vatttan\Apdf\Apdf;
Route::get('/', function () {
    $apdf = new Apdf();
    $apdf->print('<p style="text-align: right">Birinci gün</p>');
});

完成!

答案 1 :(得分:0)

好的,这是你需要做的。

  1. 将代码移至刀片文件。切勿在控制器中编写HTML代码。

  2. 在您的刀片文件中,设置UTF-8元标记:

  3. 在控制器的方法

    $ pdf = PDF :: loadView('PDF_NAME.pdf',$ data);

    返回$ pdf-&gt; download('invoice.pdf');