我正在使用TCPDF创建包含日文字符的 PDF。使用TrueType 字体 ArialUni时,大多数字符都可以正确显示,除了日元符号显示为方框而不是 ¥。
这是使用 ArialUni 生成的 PDF 的片段:
所以我尝试了另一种字体。这是使用GT200001生成的 PDF 的同一部分:
这是使用 Helvetica 的同一部分:
这是使用GNU 的 FreeSans的同一部分:
我希望第二行显示为“(渋谷猿,¥8,000)”
Helvetica 和 Freesans 无法正确渲染汉字我并不感到惊讶,但我无法理解为什么其他两种字体可以渲染汉字,而不是更常见的日元符号。
创建 PDF 的 Web 服务器是运行 Ubuntu 的 LAMP。我正在使用 Chrome(使用其浏览器内视图)在 OS X 上查看 PDF。我还尝试使用 Firefox 下载 PDF 并在预览中显示。我得到基本相同的结果:ArialUni 和 GT200001 不显示日元符号,而 Helvetica 和 Freesans 不显示汉字(但显示日元符号)。
我知道我可以为 PDF 的不同行/单元格使用不同的字体,但汉字和日元符号在同一行。
如何使用 TCPDF 将汉字和日元符号显示在一行中?
在我的 PDF 代码顶部附近,我使用 TCPDF 的 addTTFfont() 加载字体;
$this->font = $this->addTTFfont(K_PATH_FONTS.'arialuni.ttf', 'TrueTypeUnicode', '', 32);
这是我用来编写 PDF 部分的代码。
$pdf->SetFont('arialuni','',10);
$pdf->MultiCell(105, $remarks_height, $remarks, 'B', 'L', false, 0, '', '', true, 1, false, true, $remarks_height, 'T');