4

我正在使用TCPDF创建包含日文字符的 PDF。使用TrueType 字体 ArialUni时,大多数字符都可以正确显示,除了日元符号显示为方框而不是 ¥。

这是使用 ArialUni 生成的 PDF 的片段:

使用 ArialUni

所以我尝试了另一种字体。这是使用GT200001生成的 PDF 的同一部分:

使用 GT200001

这是使用 Helvetica 的同一部分:

使用 Helvetica

这是使用GNU 的 FreeSans的同一部分:

使用 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');
4

3 回答 3

5

这篇维基百科文章中,您可以阅读更多关于这个角色的信息。

基本上,这个日文汉字有两种不同的书写方式,就像其他一些符号一样。从接受的答案“我使用的是 ¥,而不是 ¥”中,我们可以看到他使用的是“西方”或 Unicode ¥ 符号,而他实际上想使用双角字符 ¥。

于 2012-09-25T23:14:42.203 回答
3

哦,亲爱的,我想通了。

我用的是¥,不是¥。很抱歉混淆了!!

于 2012-09-24T05:21:14.217 回答
2

我注意到 TCPDF 是关于字体的。我也尝试将它用于 15 种具有不同书写风格的完全不同的语言,我使用的唯一字体是 Arial UNICODE MS。

TCPDF 具有将该字体转换为 TCPDF 友好文件的功能,即 arialuni.ctg.z(70k)、arialuni.php(447k) 和 arialuni.z (14M)。

功能是, http://www.tcpdf.org/fonts.php

$fontname = $pdf->addTTFfont('/path-to-font/ARIALUNICODE.TTF', 'TrueTypeUnicode', '', 32);
于 2012-09-25T22:55:30.833 回答