Wie kann ich Hindi beim Exportieren in PDF korrekt rendern?

Ich verwende i-report 5.5.0 für Jaspis-Berichte. Ich muss Hindi-Text in PDF-Format exportieren, aber Hindi-Teil wird in ??????? .

Ich habe bereits die Schriftverlängerung benutzt, aber es hat nicht geholfen:

Schrift-Name : “Lohit Devanagari”
PDF eingebettet : überprüft
PDF-Verschlüsselung : Identity-H

Ich habe auch andere Hindi-fonts ausprobiert, aber bisher hat noch nichts funktioniert.

        

Der richtige Weg ist die Verwendung von Font-Extensions . pdfEncoding="Identity-H" ist veraltet .

Löschen Sie zuerst diese Checkliste, um die Schriftart in PDF zu rendern :

  1. Ist meine tatsächliche .tff unterstützt ( OpenType ) und kann die Schriftart das Zeichen tatsächlich wiedergeben. Nicht alle Schriften rendern alle Zeichen in UTF-8

Sobald Sie richtig Schrift Erweiterung erstellt haben und es nicht funktioniert, ist dies wahrscheinlich Ihr Problem ..

  1. Übergeben Sie die richtige Codierung an iText. In Zweifelsfällen (oder im Allgemeinen) verwenden Sie die Kodierung Identity-H , die für neuere PDF-Standards empfohlen wird und Ihnen die Möglichkeit gibt, verschiedene Kodierungen zu mischen.

Identität-H scheint in Ordnung zu sein

  1. Ist meine Schriftart eingebettet, so dass, wenn ich die pdf teile, auch Computer, die diese Schriftart nicht haben, den Inhalt anzeigen können.

Betten Sie Ihre Schrift ein (ansonsten, wenn Sie es auf Ihrem Computer funktioniert es funktioniert möglicherweise nicht auf andere), beachten Sie in Ihrer jrxml isPdfEmbedded=false , entfernen Sie das Tag und in font-Erweiterung wählen Sie true oder setzen Sie Tag auf true .

Erzeugen Sie nun einfach die Font-Erweiterung korrekt und fügen Sie sie Ihrem classpath ,

So fügen Sie Schriftverlängerungen hinzu

BEARBEITEN: Nachdem der Benutzer die Schriftart übergeben hat

Die Schriftart Krutidev_011.TTF ist keine gültige TTF-Schriftart, da der Standard leider nach Apple und der Standard nach Microsoft divergiert ist (ich schätze deine Schriftart ist ein Apfel ttf kein offener Typ ttf).

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

Ich habe versucht, eine gültige TTF-Schrift Lohit Devanagari aus dem Internet herunterzuladen und sie als Schriftverlängerung hinzuzufügen, fontName="Lohit Devanagari" das ist mein Ergebnis:

SchriftartTest

Wenn Sie das ausprobieren fontName="Lohit Devanagari" ist dies die Font-Extension Ich habe die Schriftverlängerung jar für Lohit Devanagari verwendet , denken Sie daran fontName="Lohit Devanagari"

Ich habe das gleiche Problem, ich löse es mit gargi.ttf Schriftart. Hier herunterladen mit dieser Konfiguration

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