[英]PHP TCPDF - Half-width kana is being considered as Full-width
我在用PDF呈现包含半角假名的文本字符串时遇到问题。 它认为半角假名是全角假名,因此结果是这样的:
这是我的代码段:
PDF::Cell(15, 6, '商品コード', 1, 0, 'C', 0, '', 0);
我还使用TCPDF中提供的cid0jp字体显示日语字符:
PDF::SetFont('cid0jp', 'B', 9);
最后,我希望它保持半角片假名以适合单元格并删除不必要的空间。
使用的TCPDF库: https : //tcpdf.org/
当您使用cid0jp
字体时, cid0jp
字体渲染留给PDF阅读器使用,这可能会导致不同阅读器和操作系统之间的渲染差异。 间距差异可能非常大,但是我不确定这是TCPDF的实现问题还是仅依靠读者提供字体的结果。
下面,我提供了一个示例,比较了cid0jp
中该文本的Microsoft Edge和Foxit Reader呈现。 我还在第二行中包含了全角版本。 Edge的半角间距比Foxit靠得更近。 Google云端硬盘的PDF预览与Foxit的功能相同,只是在半角宽度周围增加了间距。
由于您要处理的空间太紧,可能值得在文档中嵌入特定字体。 在我的测试中,就渲染而言,这要可靠得多。 (我还在下面提供了该测试的屏幕截图。如果您不希望每个文件中都包含整个字体,请确保启用了子设置。)
以防万一您可能不知道该怎么做:
$embfont = TCPDF_FONTS::addTTFfont('/Path/to/font.ttf', 'TrueTypeUnicode', '', 32);
$pdf->setFont($embfont, '', '9');
$pdf->Cell(15,6,'商品コード',1,0,'C',0,'',0);
cid0jp的示例:
嵌入字体的示例:
(诚然,这种字体在小尺寸字体上不是很好。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.