【发布时间】:2016-02-27 10:17:50
【问题描述】:
问题:
我想使用DomPDF 生成包含日文文本的pdf。为此,我知道我需要一种支持日文字符的字体并将该字体加载到 DomPDF。
我已经阅读了 DomPDF 的UnicodeHowTo 以及关于 SO 的几个类似问题,但我似乎无法让它发挥作用。我在应该是日文字符的地方得到?。
在我的 dompdf 配置中,我设置了 def("DOMPDF_UNICODE_ENABLED", true);,它在管理界面中也显示为 true。我使用的字体(我尝试了几种)应该支持日文字符,并使用load_font.php 脚本在 DomPDF 中加载。为了完整起见,我必须注意生成字体文件会给我 2 个相同的警告
警告:strftime():依赖系统的时区是不安全的 设置。您必须使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了其中任何一个 方法并且您仍然收到此警告,您很可能 时区标识符拼写错误。我们选择了时区“UTC” 现在,但请设置 date.timezone 以选择您的时区。在..
最小(非)工作示例:
PHP变量中存储的相关html$template:
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<META http-equiv="X-UA-Compatible" content="IE=8">
<TITLE>Test voucher</TITLE>
<STYLE type="text/css">
@font-face {
font-family: \'mgenplus\';
font-style: normal;
font-weight: 400;
src: url(dompdf/fonts/rounded-mgenplus-1c-regular.ttf) format(\'truetype\');
}
.ft0{font: 14px;line-height: 16px;}
*{ font-family: mgenplus !important;}
</STYLE>
</HEAD>
<BODY>
<P>ねん だい かい にほんごのうりょくしけん</P>
<!-- .... -->
相关PHP:
require_once("dompdf/dompdf_config.inc.php");
$template = mb_convert_encoding($template, 'HTML-ENTITIES', 'UTF-8');
$dompdf = new DOMPDF();
$dompdf->load_html($template, 'UTF-8');
$dompdf->render();
$dompdf->stream("test.pdf",array('Attachment'=>0));
如果有人有任何建议或看看我是否遗漏了什么,将不胜感激!
【问题讨论】: