Не удается отобразить японский язык в файле Pdf после использования Laravel-dompdf

#laravel #pdf #laravel-blade

#laravel #PDF #laravel-blade

Вопрос:

Я пытаюсь преобразовать файл blade в формат 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 .

У кого-нибудь есть решение?

Ответ №1:

Наборы символов

Вам необходимо определить набор символов в мета-теге в HTML-документе.

 <meta charset="UTF-8" />
  

Комментарии:

1. пытался добавить <meta charset="UTF-8" /> , но это не работает.

Ответ №2:

Наконец, я могу решить эту проблему. Это потому, что Roboto шрифт не поддерживает японский. Вместо этого используйте шрифты, которые поддерживают японский язык. Я пробовал MS Mincho , Hiragano Sans и это сработало.

Обратите внимание, что dompdf поддерживается только шрифт с форматом .ttf , поэтому другой формат работать не будет.