Dompdf在laravel中支持其他语言支持

时间:2017-08-16 13:12:02

标签: php html css laravel dompdf

我在laravel项目中使用dompdf包创建了我的pdf。但是当我想渲染其他语言(bangla)而不是英语

???????????????????????????? 

显示。

<body style="font-family: 'AdorshoLipi', Arial, sans-serif !important;">

    <div style="border-style: solid; border-width: 2px; margin: 50px;  padding: 10px;">
        <div align="center">
            <h2>
                 Anti-corruption commission hotline-106
            </h2>
        </div>
        <div>
            <p> Reference No : {{ $complain->call_ref_id }}</p>
            {{-- <br> --}}
            <p> Date : {{ $complain->created_at }}</p>
            <p> Name : {{ $complain->name }}</p>
            <p> Address : {{ $complain->address }}</p>
            <p> Phone Number : {{ $complain->phone_number }}</p>
            <p> Against : {{ $complain->against }}</p>
            <p> Sector : {{ $complain->department }}</p>
            <p style="font-family: 'AdorshoLipi', Arial, sans-serif !important;"> Type : {{ $complain->type }}</p>
            <p> Complain Description : {{ $complain->complain_description }}</p>
            <p> Amount : {{ $complain->amount }}</p>
            <p> Status : {{ $complain->status }}</p>


        </div>

        <div style=" margin-left: 450px; width: 100px; ">
            <hr>
            <label>Signature</label>
        </div>

        <div class="panel-primary">

        </div>

    </div>


</body>

4 个答案:

答案 0 :(得分:1)

您可以将 TrueType 字体的支持添加到laravel Dompdf package中。只需按照以下步骤从命令行将 TrueType 字体加载到dompdf中。

在此软件包中使用 TrueType 字体系列有两种基本方法:
1)使用load_font.php脚本
2)使用@ font-face css规则在运行时加载字体

1)使用load_font.php脚本
load_font.php 是一个使用命令行运行的脚本,因此您需要从命令行运行该命令。您可以从Dompdf utils

轻松获取此脚本

添加此实用程序后,在命令行界面中运行命令命令以从dompdf安装目录安装字体。

php load_font.php font_family /pathto/fontfile.ttf

注意: dompdf目前仅支持 TrueType 字体。因此,在寻找字体时,请确保它采用TrueType格式。

2)使用@font-face css规则在运行时加载字体
您只需将以下样式脚本添加到页面中即可使用 TrueType 字体。

@font-face {
  font-family: 'font_family';
  font-style: normal;
  font-weight: normal;
  src: url(http://example.com/fonts/fontfile.ttf) format('truetype');
}

加载上面的字体系列后,您可以使用它:<div style="font-family: font_family, sans-serif;">yourtextinotherlanguage</div>

确保您的文档指定使用UTF-8,如<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

可以找到更多信息here

答案 1 :(得分:1)

您需要在视图文件的styles标记内添加以下代码

  @font-face {
            font-family: 'iskpota';
            src: url('{{public_path()}}/fonts/your-font.ttf') format('truetype') 
        }
        body{
            font-family: 'your-font', sans-serif; 
        }

然后,您需要将字体文件包含在存储目录中。为此,请在存储文件夹中创建一个名为“ fonts”的文件夹,并将“ your-font.ttf”文件包含在fonts文件夹中。

PS。您在存储位置添加的这些字体也应该在public / fonts文件夹中可用。

答案 2 :(得分:0)

为了更好地使用像bangla这样的不同语言,你可以尝试使用mpf。这个对utf8很有用。

答案 3 :(得分:-2)

尝试使用utf8解码您的输出:

utf8_decode($var)