【发布时间】:2015-02-26 06:41:51
【问题描述】:
当您在应用程序上创建 pdf 时,如何设置 mpdf HTML 包含无效的 UTF-8 字符
【问题讨论】:
-
你要什么?你试过什么?然后会发生什么?
当您在应用程序上创建 pdf 时,如何设置 mpdf HTML 包含无效的 UTF-8 字符
【问题讨论】:
试试这个
$html = mb_convert_encoding($html, 'UTF-8', 'UTF-8');
调用前:"$mpdf->WriteHTML($html);"
这似乎毫无意义,但它对我有用。
【讨论】:
使用 mpdf,转换和编码没有意义,因为这些很可能会丢失您的字符,而您只会得到“?”或其他无法识别的字符(但会产生输出)
在将任何输入发送到 mpdf 之前尝试使用这些:
$mpdf->allow_charset_conversion=true;
$mpdf->charset_in='UTF-8';
【讨论】:
©。这样就完美解决了问题。
这对我有用:
$mpdf->WriteHTML(utf8_encode($html));
【讨论】:
使用 utf8_encode() 函数。 例如: $html = '
发起人姓名
发起人地址
发起人电话号码
发起人电子邮件
借款人
物业地址
GFE 日期
'; $html = utf8_encode($html1);
【讨论】:
下面两行就可以了
$mpdf->allow_charset_conversion = true;
$mpdf->charset_in = 'iso-8859-4';
在创建对象后添加上面两行,如下所示
$mpdf=new mPDF();
$mpdf->allow_charset_conversion = true;
$mpdf->charset_in = 'iso-8859-4';
【讨论】:
在拉了几个小时的头发后,这对我来说很神奇:)
(在我的情况下,बोटोक्स 显示为??????)
$mpdf->SetAutoFont();
$mpdf = new mPDF('utf-8','', 0, '', 15, 15, 16, 16, 9, 9, 'L');
$mpdf->SetAutoFont();
//~ Nothing of below worked :(
//~ $mpdf->useLang = true;
//~ $mpdf->autoScriptToLang = true;
//~ $mpdf->autoLangToFont = true;
//~ $pdf_html = mb_convert_encoding($html, 'UTF-8', 'UTF-8');
$mpdf->WriteHTML($html);
//~ $mpdf->DeletePages(2);
$filename = date('ymdhis').".pdf";
$mpdf->Output($filename,'D');
我的 PDF 包含混合的英语和印地语单词,例如
“3 件 बोटोक्स 价格为 $10.00/件”。
【讨论】:
当我将NULL 发送到->multicell() 时出现此错误。发送"" 修复它。
老问题,但也许有人像我一样从谷歌来到这里
【讨论】:
我 99% 确定问题是因为您使用 unicode-unsafe 函数对文本进行了一些操作。使用mb_strpos()/mb_substr() 而不是strpos()/substr(),并将“/u”修饰符添加到带有prog_replace() 的所有转化中。
当然,如前所述,允许“字符集转换”可以解决问题。但最好知道您的文本已经正确并符合 UTF-8 的合规性。
【讨论】:
这对我有用:
使用
autoScriptToLang = true;
autoLangToFont = true;
include("mpdf-6.0.0/mpdf.php");
$mpdf = new mPDF('c', 'A4', '', '', 0, 0, 0, 0, 0, 0);
$mpdf->autoScriptToLang = true;
$mpdf->autoLangToFont = true;
$mpdf->WriteHTML($html);
$mpdf->Output('SavePDF.pdf', 'D');
【讨论】: