Jasper meldet mit PDF- und Unicode-Zeichen (griechisch)

9

Ich habe ein sehr merkwürdiges Problem: Ich versuche, einen Jasper-Bericht mit Unicode-Zeichen (griechisch) als PDF zu exportieren. Mein Problem ist, dass ein bestimmtes griechisches Zeichen (das Zeichen-Delta) in einem anderen Schriftbild gedruckt wird als das, das ich benutze (Arial)!

Das folgende Bild wird von der exportierten PDF kopiert:

Das folgende Bild ist derselbe Text aus MS Word, der die gleiche Schriftart verwendet:

Wie Sie sehen können, unterscheidet sich der dritte Buchstabe (Delta) von den anderen. Dies geschieht NUR für diesen Brief, für alle Schriftgrößen. Ich habe auch versucht, die Schriftart in garamond zu ändern, aber immer noch das gleiche Problem mit genau dem gleichen Buchstaben!

Schließlich sollte ich hinzufügen, dass die interne Vorschau von iReport in Ordnung ist, auch ok ist der Export in andere Formate wie docx oder html ...

Update 20/04/11: Ich habe auch versucht, das PDF mit Foxit Reader Portable zu öffnen - aber hatte genau das gleiche Verhalten wie mit Adobe Acrobat Reader.

Update 28/04/11: Ich habe ein Snippet in Pastebin erstellt , das beim Export das Problem verursacht nach pdf. Eine Warnung - Sie müssen die zu verwendende Schriftart (Arial in meinem Fall) über "Optionen - Fonts" von iReport "installieren" oder sonst werden Sie überhaupt nichts in der PDF sehen können.

Update 05.03.13 LÖSUNG: Nun, da es Leute gibt (wahrscheinlich aus Griechenland), die immer noch das gleiche Problem haben und diese Frage sehen, möchte ich noch ein Update machen: Ich habe angefangen Ich benutze wieder Jasper Berichte, aber jetzt benutze ich eine neuere Version von Jasper (Jasper 5) und iReport (iReport 5). Alles funktioniert jetzt gut - keine problematischen Deltas in PDFs :) Versuchen Sie also, Ihre iReport und Jasper Bibliotheken zu aktualisieren, wenn Sie das gleiche Problem haben !!

Update 05/04/13 Schlussbemerkungen: Nach zwei Jahren konnte ich wieder am System mit dem problematischen griechischen Zeichen (delta) arbeiten und konnte einige abschließende Schlüsse ziehen Problem: Also, zuerst habe ich die Version von Jasper aktualisiert, die wir bis 5.x verwendet haben und immer noch das Problem erlebt! Das Problem wurde nur behoben, wenn ich die enthaltene Schriftart-Erweiterung (.jar) durch eine neue änderte, die ich aus iReport 5.x erstellt (exportiert) hatte. Das Problem war also, dass beim Exportieren der Schriftverlängerung iReport 3.x (das zum Exportieren der alten Erweiterung verwendet wurde) das griechische Zeichen Delta nicht korrekt exportiert hat, während iReport 5.x es gut exportiert. Also mein Vorschlag ist immer noch wahr: Alle Leute, die dieses Problem haben, upgraden Ihre Jasper Version auf 5.x, aber exportieren Sie auch Ihre Schriftverlängerungen durch iReprot 5.x. Ich hoffe wirklich, dass ich keine weiteren Updates machen werde:)

    
Serafeim 19.04.2011, 11:14
quelle

2 Antworten

2

Schriftverlängerungen Die Antwort ist Schriftverlängerungen. (Die Antwort ist immer Schriftverlängerungen.)

Wenn ich Ihren Bericht ausführe, bekomme ich ein anderes Ergebnis: Ich sehe keinen der griechischen Zeichen. Ich kann es lösen, indem ich die Schriftart ändere. Oder ich kann es lösen, indem ich Arial als Font Extension hinzufüge. (Oder ich könnte es wahrscheinlich lösen, indem ich Arial irgendwo in den Klassenpfad stelle ... aber tu das nicht. Es fragt nach Ärger.) Ich schrieb über font extensions vor einer Weile. Sie wurden erstellt, um diese Art von Problem zu lösen. Das sollten Sie verwenden.

Da sich der Bericht für mich anders verhielt, bin ich mir meistens sicher, dass dies die Antwort ist. Lass es uns wissen.

    
mdahlman 21.12.2011 07:09
quelle
1

Wenn jemand auf die Suche geht, bin ich auf ein ähnliches Problem gestoßen, als ich PDF-Dateien aus PHP und FPDF erzeugte. In meinem Fall war das Problem (und die Lösung): Wenn FPDF eine Font-Infodatei (font.php) über MakeFont generiert, erstellt es eine / Differences-Codierungssequenz (wie in PDF-Spezifikationen definiert) welches dann in die PDF-Datei eingebettet wird. Die Sequenz / Differences verwendet Namen aus der "Adobe Glyph List" (http://partners.adobe.com/public/developer/en/opentype/glyphlist.txt), die NICHT mit den Unicode-Glyphnamen identisch sind. Beim Betrachten dieser Liste habe ich folgende Einträge gefunden:

%Vor%

Die FPDF-Bibliothek verwendete den "Delta" -Namen, der (glaube ich) das mathematische "Delta" -Symbol anzeigen soll.

Durch Patchen der generierten .php-Font-Info-Datei und Ändern von "Delta" zu "Deltagreek" wurde das Problem gelöst. Sie müssen dies nur einmal pro Font-Info-Datei tun.

Obwohl das obige für PDF und FPDP und PHP gilt, vermute ich, dass Sie das gleiche Problem mit Jasper haben. Sie müssen überprüfen, wie Jasper Codierungen behandelt, usw.

Hoffe das hilft jemandem:)

    
mike 04.01.2013 11:21
quelle