如何使用 mPDF for Chinese Language

zia*_*zia 6 html php pdf mpdf chinese-locale

我正在使用 mPDF 将表单输入数据保存为 PDF。对于英语,它工作正常。任何人都可以使用此代码将 HTML 表单数据保存为 PDF。

问题:为了满足我的项目要求,我需要使用中文。我当前的代码对此不起作用。

表单.html

<form action='processPDF.php' method='post'>
    <label for="name">Name</label>
    <input name="name" type="text" id="name">
    <input type='submit' name='submit' value='Download PDF'>
</form>
Run Code Online (Sandbox Code Playgroud)

进程PDF.php

<?php
header('Content-Type: text/html; charset=UTF-8');
if (isset($_POST['submit'])) {
    if (isset($_POST['name'])) {
        $name = $_POST['name'];
    } else {
        $Larmtid = '';
    }
    if (!isset($error)) {
        ob_start();
?>        
<div style="padding:20px;">
            <p>Name: <?php
        echo $name;
?></p>
        </div>
        <?php
        $body = ob_get_clean();
        $body = iconv('UTF-8', 'UTF-8//IGNORE', $body);
        $body = iconv('UTF-8', 'UTF-8//TRANSLIT', $body);
        include("mpdf/mpdf.php");
        $mpdf = new \mPDF('c', 'A4', '', '', 0, 0, 0, 0, 0, 0);
        $mpdf->SetAutoFont();
        $mpdf->autoScriptToLang = true;
        $mpdf->autoLangToFont   = true;
        $mpdf->WriteHTML($body);
        $mpdf->Output('SavePDF.pdf', 'D');
    }

}
?>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是:在输入字段中,我输入了??????? 它打印??????????。

如果你想下载源代码,这里是代码的链接

小智 6

我的代码如下 [mpdf v7.0 from composer]

<?php
require_once './vendor/autoload.php';
//report errors
error_reporting(E_ALL);
ini_set("display_errors", 1);

$config = [
    'mode' => '+aCJK', 
    // "allowCJKoverflow" => true, 
    "autoScriptToLang" => true,
    // "allow_charset_conversion" => false,
    "autoLangToFont" => true,
];
$mpdf=new \Mpdf\Mpdf($config);

$mpdf->WriteHTML('Hello World ??');
$mpdf->Output();
Run Code Online (Sandbox Code Playgroud)

这段代码很好用,你可以试试


Fin*_*nwe 5

不要'c'作为$mode参数使用,即仅支持PDF核心字体,不支持汉字。

尝试'+aCJK''-aCJK'代替。

请参见示例–使用中文字体的文件