Bei PDF-Generierung keine polnischen Sonderzeichen
Bingoman Babenco
- xsl
Hallo Forum,
ich generiere mittels xsl-Stylesheet und FOP aus einem XML-file ein PDF. Leider werden die polnischen Sonderzeichen als Hashes (#) dargestellt.
Im xml-file encode ich mit utf-8 (<?xml version="1.0" encoding="UTF-8"?>).
Ich habe auch schon versucht den Font (Arial) einzubinden, das einbinden klappt auch aber die Zeichen werden nicht dargestellt.
Kann mir jemand helfen?
Vielen Dank
B.B.
Hallo,
ich generiere mittels xsl-Stylesheet und FOP aus einem XML-file ein PDF. Leider werden die polnischen Sonderzeichen als Hashes (#) dargestellt.
Im xml-file encode ich mit utf-8 (<?xml version="1.0" encoding="UTF-8"?>).
Ich habe auch schon versucht den Font (Arial) einzubinden, das einbinden klappt auch aber die Zeichen werden nicht dargestellt.
Das "#" deutet aber auf fehlende Zeichen in der Schrift hin.
Wie hast du denn festgestellt, dass das Einbinden der Schrift im FOP funktionierte? (eventuell solltest du es mit ArialUnicodeMS versuchen).
Ist dein XML wirklich XML, oder nur XHTML (vielleicht mit HTML-Entities)?
Grüße
Thomas
Hallo Thomas,
Wie hast du denn festgestellt, dass das Einbinden der Schrift im FOP funktionierte? (eventuell solltest du es mit ArialUnicodeMS versuchen).
Ich habe zum testen eine "Georgia" genommen und das PDF hat sie dargestellt
Ist dein XML wirklich XML, oder nur XHTML (vielleicht mit HTML-Entities)?
Das weiß ich nicht genau.
Ich habe in der xml-Datei oben folgendes reingeschrieben:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html [
<!ENTITY nbsp " " >
<!ENTITY lt "<" >
<!ENTITY gt ">" >
]>
Die Entities sind für >< und Leerzeichen
Vielen Dank Thomas,
hast Du vieleicht hast Du noch eine Idee
Gruß
BB
Hallo,
Wie hast du denn festgestellt, dass das Einbinden der Schrift im FOP funktionierte? (eventuell solltest du es mit ArialUnicodeMS versuchen).
Ich habe zum testen eine "Georgia" genommen und das PDF hat sie dargestellt
Dann hat die Arial, die du Verwendet hast, nicht diese Zeichen. Nimm, wie gesagt, ArialUnicodeMS (... ehmmm wir reden aber hier von in FOP/PDF eingebetteten Fonts und nicht von font-family="Arial"!)
Ist dein XML wirklich XML, oder nur XHTML (vielleicht mit HTML-Entities)?
Das weiß ich nicht genau.
Wie bitte?
Was heisst du weißt nicht genau ob deine Datei eine XHTML-Datei mit DOCTYPE etc. oder eine XML-Datei sei?
Ich habe in der xml-Datei oben folgendes reingeschrieben:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html [
<!ENTITY nbsp " " >
<!ENTITY lt "<" >
<!ENTITY gt ">" >
]>
3 Dinge:
Aber wenn die Darstellung der polnischen Zeichen mit Georgia als Schrift im PDF funktioniert, ist es eben nur ein Problem mit der verwendeten Arial-Variante.
Grüße
Thomas
Hallo Thomas,
leider kenn ich mich nicht wirklich gut damit aus. Wie gesagt als Doctype steht bei mir in der xml-Datei:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html [
<!ENTITY nbsp " " >
<!ENTITY lt "<" >
<!ENTITY gt ">" >
]>
Ich habe probiert das encoding schon auf iso-8859-2 umgestellt.
Mit iso-8859-7 und griechischen Zeichen geht es auch nicht.
Das Einbetten habe ich richtig gemacht aber bei der Georgia stellt er mir die Zeichen auch nicht dar.
Bekommt man die ArialUnicodeMS irgendwo als freefont.
Gruß
BB
Hallo,
leider kenn ich mich nicht wirklich gut damit aus. Wie gesagt als Doctype steht bei mir in der xml-Datei:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html [
<!ENTITY nbsp " " >
<!ENTITY lt "<" >
<!ENTITY gt ">" >
]>Ich habe probiert das encoding schon auf iso-8859-2 umgestellt.
Mit iso-8859-7 und griechischen Zeichen geht es auch nicht.Das Einbetten habe ich richtig gemacht aber bei der Georgia stellt er mir die Zeichen auch nicht dar.
Kannst du einen Stück aus dem XML posten, wo polnische Zeichen dabei sind?
Bekommt man die ArialUnicodeMS irgendwo als freefont.
Das ist eher unwahrscheinlich, "Arial Unicode™ MS" ist spez. für Microsoft lizenziert und wird mit deren Produkten ausgeliefert.
Aber schaue dir die Seite: http://www.alanwood.net/unicode/fonts.html an.
Grüße
Thomas
Hi Thomas,
erstmal vielen Dank für Deine Mühe.
Ich bin jetzt erstmal nicht mehr an meinem Arbeitsplatz.
Aber ich kann sagen das ich schon einiges ausprobiert habe. Als utf-8 codiert, ohne Codierung usw...
das gleiche mit griechischer Schrift...
ich stelle morgen den Code rein
Grüße
BB
Hallo Thomas,
-----------------------------------------------------------
-----------------------------------------------------------
Ich beschreibe hier mal wie ich einen Font für die PDF-Generierung via FOP (fop-0.20.5) eingebettet habe.
Informationen fürs FOP über die eingebettete Schrift erzeugen. Dieses XML-File landet im lib-Verzeichnis. Eingabe im Prompt:
C:\XSLT\fop-0.20.5-bin\fop-0.20.5>java -cp "build/fop.jar; lib/xercesImpl-2.2.1.jar; lib/xalan-2.4.1.jar" org.apache.fop.fonts.apps.TTFReader -enc ansi C:\WINDOWS\Fonts\Georgia.ttf lib/georgia.xml
Im Fop-Verzeichnis > conf > die userconfig.xml öffnen und dort den Pfad zur Schrift und zum erzeugten Schrift-Info-xml-File angeben:
<font metrics-file="C:\XSLT\fop-0.20.5-bin\fop-0.20.5\lib\georgia.xml" kerning="yes" embed-file="C:\WINDOWS\Fonts\Georgia.TTF">
<font-triplet name="Georgia" style="normal" weight="normal"/>
</font>
Dann das PDF erzeugen. Eingabe im Prompt:
C:\XSLT\fop-0.20.5-bin\fop-0.20.5>fop -c conf/userconfig.xml -xml meinxml.xml -xsl meinxsl.xsl -pdf meinpdf.pdf
-----------------------------------------------------------
-----------------------------------------------------------
Das nur als Information für andere, die ebenfalls Schriften einbetten wollen.
Nur mein Problem besteht weiterhin darin, dass keine polnischen, griechischen, kyrillischen Sonderzeichen im PDF ausgegeben werden, statt der Sonderzeichen wird ein Hash# ausgegeben.
In meinem XML-file habe ich schon mehrere encodings ausprobiert:
<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="iso-8859-1"?><?xml version="1.0" encoding="iso-8859-2"?>
Und mehrer Versuche mit den Sonderzeichen, als utf-8 (która), unicode (ą) ohne Codierung ...
Habe es jetzt auch mit der Arial Unicode MS probiert
nix hat geklappt
Gruß
BB
Hallo,
[...] via FOP (fop-0.20.5) [...].
Wenn sonst nichts dagegen spricht, ist die neuere Version 0.93 besser/eher zu empfehlen.
Nur mein Problem besteht weiterhin darin, dass keine polnischen, griechischen, kyrillischen Sonderzeichen im PDF ausgegeben werden, statt der Sonderzeichen wird ein Hash# ausgegeben.
In meinem XML-file habe ich schon mehrere encodings ausprobiert:
<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="iso-8859-1"?><?xml version="1.0" encoding="iso-8859-2"?>Und mehrer Versuche mit den Sonderzeichen, als utf-8 (która), unicode (ą) ohne Codierung ...
Dann stellt sich mir die Frage ob die Datei die du mit encoding="utf-8" gespeichert hast, auch _wirklich_ als UTF gespeichert wurde?
Deine hineinkopierte "(która)" (eigentlich: ą) deutet eher daraufhin, dass die Datei nur als ANSI aber nicht als UTF8 gespeichert wird.
Aber wenn du die nummerischen Entities wie ą verwendest, sollte die Encoding an sich egal sein.
Ich kann jedenfalls das Problem so nicht nachvollziehen (weshalb ich dich ja um ein Stück aus deinem XML gebeten habe).
Grüße
Thomas
Thomas
Hi Thomas,
ich habe Dir eine Mail mit meinen ("sensiblen") Daten geschickt, wenn Du dafür keine Zeit hast , hätte ich vollstes Verständniss.
Wie müssen denn die Sonderzeichen im xml-file stehen für die versch. Landessprachen (Kyrillisch, griechisch, polnisch usw...)?
Danke und Grüße
BB
Nach weiteren Versuchen mit der ArialUnicode erzeugt FOP ein PDF, welches sich nicht öffnen läßt. "There was an error opening this document. Could not repair file".
BB
Hi Thomas,
Nach 3 Tagen endlich ein Ergebnis mit der ArialUnicode.
Bei der Generierung des arialuni.xml lag der Fehler.
statt:
C:\XSLT\fop-0.20.5-bin\fop-0.20.5>java -cp "build/fop.jar; lib/xercesImpl-2.2.1.jar; lib/xalan-2.4.1.jar" org.apache.fop.fonts.apps.TTFReader -enc ansi C:\WINDOWS\Fonts\arialuni.ttf lib/arialuni.xml
so:
C:\XSLT\fop-0.20.5-bin\fop-0.20.5>java -cp "build/fop.jar; lib/xercesImpl-2.2.1.jar; lib/xalan-2.4.1.jar" org.apache.fop.fonts.apps.TTFReader C:\WINDOWS\Fonts\arialuni.ttf lib/arialuni.xml
das "-enc ansi" rausnehmen
Danke nochmal
BB
Hallo,
Nach 3 Tagen endlich ein Ergebnis mit der ArialUnicode.
Bei der Generierung des arialuni.xml lag der Fehler.
Bedeutet das, dass das Problem nun gelöst ist?
Grüße
Thomas
Hallo,
Nach 3 Tagen endlich ein Ergebnis mit der ArialUnicode.
Bei der Generierung des arialuni.xml lag der Fehler.Bedeutet das, dass das Problem nun gelöst ist?
Grüße
Thomas
Ja,
in der Testumgebung klappt es, jetzt muß ich es nur noch mit dem CMS zusammen bringen
Danke nochmals
BB