首页 > 解决方案 > Laravel-dompdf 使用后无法在 Pdf 文件中显示日语

问题描述

我正在尝试将刀片文件转换为 PDF 格式。

我曾经barryvhd/laravel-dompdf转换为 PDF 但DOMPdf不支持日文字体,所有日文字符显示为?字符。我的php代码:

        $pdf = PDF::loadView('pdf/presaleorder', ['order' => $order]);
        $pdf->save('test.pdf');

我的blade文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>画像</title>
</head>
<body>
    <div>
        <p> 
            ァ  ア  ィ  イ  ゥ  ウ  ェ  エ  ォ  オ  カ  ガ  キ  ギ  ク 
            グ  ケ  ゲ  コ  ゴ  サ  ザ  シ  ジ  ス  ズ  セ  ゼ  ソ  ゾ  タ 
            ダ  チ  ヂ  ッ  ツ  ヅ  テ  デ  ト  ド  ナ  ニ  ヌ  ネ  ノ  ハ 
            バ  パ  ヒ  ビ  ピ  フ  ブ  プ  ヘ  ベ  ペ  ホ  ボ  ポ  マ  ミ 
            ム  メ  モ  ャ  ヤ  ュ  ユ  ョ  ヨ  ラ  リ  ル  レ  ロ  ヮ  ワ 
            ヰ  ヱ  ヲ  ン  ヴ  ヵ  ヶ  ヷ  ヸ  ヹ  ヺ  ・  ー  ヽ  ヾ  ヿ
        </p>
    </div>
</body>
</body>
</html>

但是,我发现一个帖子解决了这个问题。我已经加<style>进去了header

    <style>
        @import url('https://fonts.googleapis.com/css?family=Roboto');
        body {
            font-family: 'Roboto', sans-serif;
        }
    </style>

现在,所有字符显示如下: 这里

但是当我在文件中复制文本时pdf,我得到了这个 ァ ア ィ イ ゥ ウ ェ エ ォ オ カ ガ キ ギ ク グ ケ ゲ コ ゴ サ ザ シ ジ ス ズ セ ゼ ソ ゾ タ ダ チ ヂ

我想知道,这是因为barryvhd/laravel-dompdf还是 PDF Reader 造成的。我正在使用Adobe Acrobat Reader DC版本2020.012.20043并安装font-pack.

有人有解决方案吗?

标签: laravelpdflaravel-blade

解决方案


字符集

您需要在 HTML 文档的元标记中定义字符集。

<meta charset="UTF-8" />

推荐阅读