提问人:namarahasia 提问时间:10/20/2023 最后编辑:namarahasia 更新时间:10/20/2023 访问量:99
使用dompdf不显示中文文本
Chinese text not show using dompdf
问:
您好,我想使用 dompdf 将 html 转换为 pdf,我的 HTML 有中文文本。在HTML视图中,中文文本显示得很好,但是当我转换为pdf时,中文文本仅显示正方形。
这是我的代码
$html = $this->load->view('view_view', $data, TRUE);
//echo $html;
require("assets/dompdf1/autoload.inc.php");
define("DOMPDF_UNICODE_ENABLED", true);
$options = new Options();
$options->set('defaultFont', 'DejaVu Sans');
$dompdf = new Dompdf($options);
$html = mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8');
$dompdf->loadHtml($html);
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream("View.pdf", array("Attachment" => false));
exit(0);
我已经在 HTML 中设置了字体
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
@page {
margin-top: 0.3cm;
margin-bottom: 0cm;
}
@font-face {
font-family: 'NotoSansCJK';
src: url('assets/dompdf1/lib/fonts/NotoSansCJKtc-Regular.ttf') format('truetype');
}
body {
font-family: 'NotoSansCJK', DejaVu Sans, sans-serif;
}
</style>
有人可以帮我吗,我已经在任何地方搜索,但仍然找不到解决方案
我使用 dompdf 版本 0.8.0
编辑:我通过添加行来遵循 chams
$options = new Options();
$options->set('defaultFont', 'DejaVu Sans');
$dompdf = new Dompdf($options);
而且方块不见了,不知道怎么了 更新
编辑:我只是更新了字体,我使用的是 kai 粗体字体,正方形返回错误
编辑:我只是再次更新字体,我正在使用NotoSansCJKtc-Regular,并且仍然得到了正方形。
编辑:我遵循这个 https://github.com/dompdf/dompdf/issues/2773,现在工作正常
答:
0赞
Chams Agouni
10/20/2023
#1
确保字体支持Dompdf默认不支持的中文字符。
编辑:
require 'vendor/autoload.php';
define('DOMPDF_FONT_DIR', __DIR__ . 'path-to-fonts-dir');
$options = new Options();
$options->set('isPhpEnabled', true); // Enable PHP evaluation
$options->set('fontDir', DOMPDF_FONT_DIR);
$dompdf = new Dompdf($options);
$html = $this->load->view('view_view', $data, TRUE);
$html = mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8');
$options->set('defaultFont', 'NotoSansCJKtc-Regular');
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$dompdf->stream("View.pdf", array("Attachment" => false));
exit(0);
评论
0赞
namarahasia
10/20/2023
是的,我已经使用了支持汉字的字体,我只是编辑了我的问题。
0赞
Chams Agouni
10/20/2023
请检查 github.com/dompdf/dompdf#about-fonts--character-encoding
0赞
namarahasia
10/20/2023
我已经按照指南操作了,但仍然有同样的问题,我不知道为什么
0赞
namarahasia
10/20/2023
看题目,我只是编辑了一下,不知道出了什么问题
0赞
Chams Agouni
10/20/2023
我检查了您的编辑,现在我们确认这是一个字体问题,请尝试使用 NotoSansCJKtc-Regular
评论