Unterstützt xslt-fo nicht utf-8?

8

Ich habe eine XML-Datei in utf-8 mit einem Codierungsattribut.

Wenn ich fop -xml xml.xml -xsl xsl.xsl -pdf pdf.pdf ausführe, hat meine Ausgabe-PDF utf-8 Zeichen. Was wichtig ist, der Text aus der xsl-Datei ist ohne utf-8 Zeichen, genauso wie der Text aus xml.

Utf-8 Zeichen werden durch # ersetzt.

Was könnte falsch sein?

Xsl-Datei:

%Vor%

XML-Datei:

Ссылка

    
user3050705 15.12.2013, 16:19
quelle

2 Antworten

6

Wenn FOP Zeichen als # ausgibt, enthält die ausgewählte Schriftart keine Glyphe, um sie darzustellen.

Dies liegt vermutlich daran, dass Ihre XML-Eingabedatei Zeilen wie folgt enthält:

%Vor%

Das problematische Zeichen ist hier ł .

Also, um Ihre Frage zu beantworten: FOP unterstützt UTF-8, es ist nur so, dass die Schriftart (in Ihrem Fall: font-family='Calibri' ) keine Möglichkeit hat, die Zeichen darzustellen.

Wenn dies tatsächlich der Fall ist, sollte FOP eine Warnung in der Art von

ausgeben %Vor%

Um nun auch diejenigen Zeichen zu berücksichtigen, die nicht in der von Ihnen gewählten Schriftart vorhanden sind, ändern Sie entweder die Ausgabeschriftart vollständig oder isolieren sie als Workaround mit Inlines.

So stellen Sie beispielsweise sicher, dass für das Zeichen Σ (ein mathematischer Operator) die richtige Schriftart ausgewählt ist:

%Vor%

Auf dieser Seite finden Sie weitere Informationen zu Fonts mit FOP: Ссылка .

    
Mathias Müller 16.12.2013, 08:10
quelle
0

Die Lösung könnte viel einfacher sein. In unserem Fall haben wir Warnungen für fehlende Glyphen erhalten, lesen Sie die FOP-Fontkonfigurations-Webseite und fügen Sie einfach

hinzu

encoding-mode="Einzelbyte"

zur Calibri-Schriftartdefinition, um die vollständige Schriftart einzubetten. Dies löste das Problem für uns (mit FOP 2.0).

    
M.Hilpert 07.09.2015 17:36
quelle

Tags und Links