¿Cómo puedo procesar hindi correctamente cuando exporto a pdf?

Estoy usando i-report 5.5.0 para informes de jaspe. Necesito exportar texto Hindi en formato PDF, pero la parte Hindi se está convirtiendo a ??????? .

Ya he usado la extensión de fuente pero no ayudó:

nombre de la fuente : “lohit Devanagari”
PDF incrustado : verificado
Codificación PDF : Identity-H

También probé otras fonts Hindi, pero nada funcionó hasta ahora.

        

La forma correcta de hacerlo es usar font-extensions . pdfEncoding="Identity-H" está en desuso .

Primero borre esta lista de verificación para renderizar la fuente en pdf :

  1. ¿Es compatible mi .tff real ( OpenType ) y la fuente realmente puede representar el personaje? No todas las fonts representan todos los caracteres en UTF-8

Una vez que ha creado correctamente la extensión de fuente y no funciona, este es probablemente su problema.

  1. ¿Paso la encoding correcta a iText? En dudas (o en general) use la encoding Identity-H que se recomienda para los estándares de PDF más nuevos y le da la capacidad de mezclar diferentes codificaciones.

Identity-H parece estar bien

  1. ¿Está mi fuente incrustada de modo que si comparto el pdf también las computadoras que no tienen esta fuente pueden mostrar el contenido?

Incruste su fuente (de lo contrario, si hace que funcione en su computadora puede que no funcione en otras), tenga en cuenta que jrxml es isPdfEmbedded=false , elimine la etiqueta y en font-extension seleccione true o establezca tag en true .

Ahora solo genera la extensión de fuente correctamente y agrégala a tu classpath ,

Cómo agregar extensiones de fuente

EDITAR: después de que el usuario pasa la fuente

La fuente Krutidev_011.TTF no es una fuente ttf válida, tal vez porque desafortunadamente el estándar según Apple y el estándar según Microsoft divergieron (supongo que tu fuente es una ttf de Apple, no una ttf de tipo abierto).

 Caused by: net.sf.jasperreports.engine.JRRuntimeException: java.awt.FontFormatException: java.nio.BufferUnderflowException at net.sf.jasperreports.engine.fonts.SimpleFontFace.setTtf(SimpleFontFace.java:178) 

Intenté descargar una fuente válida de ttf Lohit Devanagari de la web y agregarla como extensión de fuente, fontName="Lohit Devanagari" este es mi resultado:

Prueba de fuente

Si te gusta probar esta es la extensión de fuente que utilicé jar de extensión de fuente para Lohit Devanagari , recuerda establecer fontName="Lohit Devanagari"

Tengo el mismo problema lo resuelvo con la fuente gargi.ttf. descarga aquí con esta configuración

 "gargi" => array( 'R' => "gargi.ttf", 'useOTL' => 0xFF, ),