【问题标题】:Hindi is not displaying properly in TCPDF印地语无法在 TCPDF 中正确显示
【发布时间】:2017-12-01 06:13:35
【问题描述】:

我正在尝试使用带有印地语 Unicode 字符的 TCPDF 生成 PDF。我尝试了 Mangal、Noto Sans、Arial Unicode 字体,但都给出了相同的输出。如果有“Matra”或“Half character”,则无法正常显示。

看到这个输出:

<?php
error_reporting(E_ALL);
ini_set("display_errors", "On");

require_once 'vendor/autoload.php';

$hindi_str = "राष्ट्रपति प्रणव मुखर्जी। ";
$hindi_str2 = "देश हमें देता है सब कुछ";
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

//$fontname_kannada = TCPDF_FONTS::addTTFfont('NotoSansKannada-Regular.ttf', 'TrueTypeUnicode', '', 96);
$fontname_hindi1 = TCPDF_FONTS::addTTFfont('NotoSansDevanagari-Regular.ttf', 'TrueTypeUnicode', '', 96);
$fontname_hindi2 = TCPDF_FONTS::addTTFfont('mangal.ttf', 'TrueTypeUnicode', '', 96);
$fontname_hindi3 = TCPDF_FONTS::addTTFfont("ARIALUNI.TTF", 'TrueTypeUnicode', '', 96);
// use the font

$pdf->AddPage();

$pdf->SetFont($fontname_hindi3, '', 14, '', false);
$pdf->writeHTML("<h1>Hindi $hindi_str $hindi_str2</h1>",true, false, true, false, '');
$pdf->Ln();

$pdf->writeHTML("<h1>Kannada ಖುತುಬ್ ಮಿನಾರ್ ಸಮೀಪವಿರುವ ಪ್ರಸಿದ್ಧ ಕಬ್ಬಿಣದ ಕಂಬ ಯಾರಿಗೆ ಸೇರಿದೆ</h1>",true, false, true, false, '');

// output the HTML content
 // ---------------------------------------------------------

//Close and output PDF document
$pdf->Output('example.pdf', 'I');

请帮忙。

【问题讨论】:

  • 您的问题找到解决方案了吗?

标签: php pdf unicode tcpdf hindi


【解决方案1】:

我知道这有点晚了,但我对尼泊尔语(也使用天城文)有同样的问题。我是这样解决的:

// SOME FONTS DOES NOT SUPPORT DEVANAGARI, BUT FREESANS DOES
$pdf->SetFont('freesans', '', 10);

// MAKE ARRAY WITH UTF LANGUAGE IDENTIFIER
$lg = Array();
$lg['a_meta_charset'] = 'UTF-8';
$lg['a_meta_dir'] = 'ltr';
$lg['a_meta_language'] = 'np'; // I think you can change this to HI or IN for hindi
$lg['w_page'] = 'page';

// CHANGE SETTINGS IN TCPDF
$pdf->setLanguageArray($lg);

// MAKE SURE TO USE WriteHTML() function
$pdf->WriteHTML($yourhtml, true, 0, true, 0);

【讨论】:

  • 不幸的是,我们在这个解决方案中遇到了同样的问题:试着写下这个词“सिक्किम”、“महिलाओं”。您将在 PDF 中看到不正确的表示。知道为什么?
【解决方案2】:

如果 TCPD

上没有显示印地语,您可以使用此功能
$pdf->SetFont('freesans', '', 10);
$lang = Array();
$lang['a_meta_charset'] = 'UTF-8';
$lang['a_meta_dir'] = 'ltr';
$lang['a_meta_language'] = 'IN';
$lang['w_page'] = 'page';

$pdf->setLanguageArray($lang);

$pdf->WriteHTML($html, true, 0, true, 0);

【讨论】:

    猜你喜欢
    • 2012-11-11
    • 1970-01-01
    • 2012-05-06
    • 2015-12-06
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 2023-01-31
    相关资源
    最近更新 更多