You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TCPDF泰米尔语Unicode字符显示异常问题求助

解决TCPDF中泰米尔语Unicode字符显示异常问题

问题描述

使用以下PHP代码通过TCPDF生成PDF时,泰米尔语字符“குதிரை”无法正常显示:

<?php

header('Content-type: text/html; charset=UTF-8') ;//chrome
require_once('tcpdf_include.php');

// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

$pdf->setFontSubsetting(true);

$fontname = TCPDF_FONTS::addTTFfont('../fonts/freeserif.ttf', 'TrueTypeUnicode', '', 96);
$pdf->setFont($font_family='freeserif',$font_variant='',$font_size=10);

$pdf->AddPage();

$utf8text = '
<html><head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body>
<p>தமிழ் தமிழ் குதிரை </p>
</body></html>';

$pdf->writeHTML($utf8text, true, 0, true, true);

$pdf->Output('example_008.pdf', 'I');

?>

问题原因

  1. 字体名称引用错误:addTTFfont返回的$fontname才是TCPDF内部识别的字体名称,原代码直接硬写freeserif可能导致字体未正确加载。
  2. 泰米尔语属于复杂文字脚本,需要TCPDF正确处理字形组合(连字、重排等),默认配置可能未完全适配。

解决方案

修正后的代码

<?php
header('Content-type: text/html; charset=UTF-8');
require_once('tcpdf_include.php');

// 创建PDF文档实例
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// 启用字体子集化,减少文件体积并确保字符加载
$pdf->setFontSubsetting(true);

// 加载支持泰米尔语的TTF字体,获取TCPDF内部字体名称
$fontname = TCPDF_FONTS::addTTFfont('../fonts/freeserif.ttf', 'TrueTypeUnicode', '', 96);

// 使用返回的字体名称设置字体,确保正确加载
$pdf->setFont($fontname, '', 10);

// 添加页面
$pdf->AddPage();

// 泰米尔语HTML内容,确保UTF-8编码
$utf8text = '<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body><p>தமிழ் தமிழ் குதிரை </p></body></html>';

// 写入HTML,启用复杂脚本处理
$pdf->writeHTML($utf8text, true, 0, true, true);

// 输出PDF
$pdf->Output('example_008.pdf', 'I');
?>

关键修改点

  • 字体名称修正:使用addTTFfont返回的$fontname变量设置字体,避免硬编码名称导致的字体加载失败。
  • 路径校验:确认../fonts/freeserif.ttf是字体文件的正确路径,若路径错误需调整为实际位置。
  • 字体子集化:setFontSubsetting(true)确保只嵌入文档中使用的字符,同时保证复杂脚本字形正确加载。

额外优化建议

  • 如果仍有显示问题,可尝试使用专门针对泰米尔语优化的字体(如Lohit Tamil、Noto Sans Tamil)替换FreeSerif。
  • 升级TCPDF到最新稳定版,新版本对复杂文字脚本的支持更完善。

内容的提问来源于stack exchange,提问作者Golden Saravana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 19:27:23