Fonts 导出为pdf时如何正确呈现印地语?

Fonts 导出为pdf时如何正确呈现印地语?,fonts,jasper-reports,export-to-pdf,hindi,Fonts,Jasper Reports,Export To Pdf,Hindi,我正在为jasper reports使用I-report 5.5.0。我需要将印地语文本导出为PDF格式,但印地语部分正在转换为????? 我已经使用了字体扩展,但没有帮助: 字体名称:“lohit Devanagari”PDF嵌入式:选中 编码:Identity-H 我也尝试过其他印地语字体,但到目前为止没有任何效果 <textField> <reportElement x="111" y="26" width="100" height="20" uuid="5a47

我正在为jasper reports使用I-report 5.5.0。我需要将印地语文本导出为PDF格式,但印地语部分正在转换为
?????

我已经使用了字体扩展,但没有帮助:

字体名称:“lohit Devanagari”
PDF嵌入式:选中 编码:Identity-H

我也尝试过其他印地语字体,但到目前为止没有任何效果

<textField>
    <reportElement x="111" y="26" width="100" height="20" uuid="5a471a16-de7b-4f55-9c9f-b01d37938b9f"/>
     <textElement>
        <font fontName="Lohit Devanagari" pdfEncoding="Identity-H" isPdfEmbedded="false"/>
    </textElement>
    <textFieldExpression><![CDATA[$F{DISTRICT_NAME}]]></textFieldExpression>
</textField>

正确的方法是使用
pdfEncoding=“Identity-H”
已弃用

首先要明确这一点:

  • 是否支持我的实际
    .tff
    以及字体是否能够实际呈现字符。并不是所有的字体都可以渲染
    UTF-8中的所有字符
  • 一旦你创建了正确的字体扩展,但它不起作用,这可能是你的问题

  • 我是否将正确编码传递给iText。怀疑(或一般)使用 编码Identity-H对于较新的PDF标准,建议使用此编码 并使您能够混合不同的编码
  • Identity-H似乎还可以

  • 我的字体是否嵌入了,因此如果我共享pdf,也不会 使用这种字体可以显示内容
  • 嵌入您的字体(否则,如果您让它在您的计算机上工作,它可能会 不适用于其他人),请注意,在jrxml中是
    ispdfedded=false
    ,请删除标记,并在字体扩展中选择
    true
    或将标记设置为
    true

    现在只需正确生成字体扩展名,并将其添加到
    类路径

    编辑:用户通过字体后

    字体
    Krutidev_011.TTF
    不是有效的TTF字体,这可能是因为不幸的是,苹果的标准和微软的标准存在分歧(我猜你的字体是苹果的TTF,而不是开放式TTF)

    我尝试从web上创建一个有效的ttf fontLohit Devanagari,并将其添加为字体扩展名,
    fontName=“Lohit Devanagari”
    这是我的结果:

    它正在渲染字体,但结果可能有连字器问题,有关如何解决这些问题,请参见示例


    如果您想尝试这是我使用的字体扩展名,请记住设置
    fontName=“Lohit Devanagari”

    我遇到了与gargi.ttf font相同的问题。 使用此配置

    "gargi" => array(
            'R' => "gargi.ttf",
            'useOTL' => 0xFF,
        ),
    
    这对我有用

    IndicLigaturizer  hindi = new DevanagariLigaturizer();
    String result = hindi.process(string);
    

    您是否使用了?可能的副本:&&@AlexK,可能的副本没有答案或接受的答案,用户已尝试字体扩展,请参阅问题(可能不正确或ttf字体无法呈现uni代码),这就是我发布答案的原因。这篇文章包含有用的评论和答案。有人找到了解决方法吗?我的实际.tff正确地呈现了单词,当我导出到其他格式时,它工作正常(如HTML、ODT、EXCEL),只有PDF导出产生了问题。您可以共享字体扩展名的jar吗?还有你的jrxml(或者一个不显示文本的小jrxml来测试你的字体扩展名)?Jar文件:-jrxml:-@Priyesh Mishra我已经编辑了答案,你的TTF无效(这取决于存在不同的TTF类型的事实…),请检查我作为外部文件附加Jar文件时解决的编辑问题。非常感谢你的帮助和指导我在这件事上浪费了好几天。
    IndicLigaturizer  hindi = new DevanagariLigaturizer();
    String result = hindi.process(string);