库 Mpdf (php):设置 utf-8 并使用 WriteHTML with utf-8
Library Mpdf (php): Set utf-8 and use WriteHTML with utf-8
我需要有关 php Mpdf 库的帮助。我正在为 pdf 生成内容,它位于 div 标记中,并由 jquery 发送到 php 服务器,其中 Mpdf 用于生成最终文件。
在生成的 pdf 文件中,utf-8 字符出错,例如 "generación" 而不是 "generación"。
我详细说明它们是如何实现的:
HTML
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
正在发送 pdf 内容 (jquery)
$('#pdf').click(function() {
$.post(
base_url,
{
contenido_pdf: $("#div").html(),
},
function(datos) {
}
);
});
接待内容(PHP)
$this->pdf = new mPDF();
$this->pdf->allow_charset_conversion = true;
$this->pdf->charset_in = 'iso-8859-1';
$contenido_pdf = this->input->post('contenido_pdf');
$contenido_pdf_formateado = mb_convert_encoding($contenido_pdf, 'UTF-8', 'windows-1252');
$this->m_pdf->pdf->WriteHTML($contenido_pdf_formateado);
其他测试选项:
1。
$this->pdf->charset_in = 'UTF-8';
获取错误:
Severity: Notice --> iconv(): Detected an illegal character in input string
2.
$contenido_pdf_formateado = mb_convert_encoding($contenido_pdf, 'UTF-8', 'UTF-8');
或
3.
$contenido_pdf_formateado = utf8_encode($contenido_pdf);
获取不正确的字符,如原始大小写。
有什么地方看错了或者缺少什么看好文字?谢谢
解决方案
$contenido_pdf_formateado = utf8_decode($contenido_pdf);
$this->m_pdf->pdf->WriteHTML($contenido_pdf_formateado);
我在创建对象时使用了模式
$mpdf = new Mpdf(['mode' => 'UTF-8']);
如果您确定您的 html 是 utf-8
,请使用此选项
我需要有关 php Mpdf 库的帮助。我正在为 pdf 生成内容,它位于 div 标记中,并由 jquery 发送到 php 服务器,其中 Mpdf 用于生成最终文件。
在生成的 pdf 文件中,utf-8 字符出错,例如 "generación" 而不是 "generación"。
我详细说明它们是如何实现的:
HTML
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
正在发送 pdf 内容 (jquery)
$('#pdf').click(function() {
$.post(
base_url,
{
contenido_pdf: $("#div").html(),
},
function(datos) {
}
);
});
接待内容(PHP)
$this->pdf = new mPDF();
$this->pdf->allow_charset_conversion = true;
$this->pdf->charset_in = 'iso-8859-1';
$contenido_pdf = this->input->post('contenido_pdf');
$contenido_pdf_formateado = mb_convert_encoding($contenido_pdf, 'UTF-8', 'windows-1252');
$this->m_pdf->pdf->WriteHTML($contenido_pdf_formateado);
其他测试选项:
1。 $this->pdf->charset_in = 'UTF-8';
获取错误:
Severity: Notice --> iconv(): Detected an illegal character in input string
2.
$contenido_pdf_formateado = mb_convert_encoding($contenido_pdf, 'UTF-8', 'UTF-8');
或
3.
$contenido_pdf_formateado = utf8_encode($contenido_pdf);
获取不正确的字符,如原始大小写。
有什么地方看错了或者缺少什么看好文字?谢谢
解决方案
$contenido_pdf_formateado = utf8_decode($contenido_pdf);
$this->m_pdf->pdf->WriteHTML($contenido_pdf_formateado);
我在创建对象时使用了模式
$mpdf = new Mpdf(['mode' => 'UTF-8']);
如果您确定您的 html 是 utf-8
,请使用此选项