Search the FirstSpirit Knowledge Base
Hallo,
ich möchte Inhalte als PDF ausgeben welche die unterschiedlichsten Sonderzeichen enthalten.
Dieses sind &, <, > und sowie das Kyrillische Alphabet.
Kommt nämlich eines dieser Zeichen in dem Inhalt vor, so bricht der Apache-Compiler mit Fehler ab (bei &)
bzw. es wird in dem erzeugten PDF-Dokument statt des Kyrillischen Schriftzeichens ein # ausgegeben.
Was habe ich versucht ?
In den Projekeinstellung steht:
Conversion rule = Unicode to FOB entities
In den Format_templates steht:
Conversion = Unicode to FOB entities
Test1:
------------------------------
$CMS_VALUE(test)$ ----> schlägt fehl mit Fehler
$CMS_VALUE(test.convert2)$ ----> schlägt fehl mit Fehler
Test2 mit Negativ-Cast:
--------------------------------------
<![CDATA[$CMS_VALUE(wert)$]]> ----> kein Fehler, jedoch werden manche Zeichen durch # ersetzt, & führt trotzdem zu Fehler
<![CDATA[$CMS_VALUE(wert.convert2)$]]> ----> kein Fehler, jedoch werden manche Zeichen durch # ersetzt, & führt trotzdem zu Fehler
Die Formattemplates wurden hierfür wie folgt angepasst:
]]>
<fo:block>
<![CDATA[$CMS_VALUE(#content)$]]>
</fo:block>
<![CDATA[
Auszugebene Objekte sind vom Typ 'DOM' und 'nicht DOM'.
Bei deutsch/englisch funktioniert die Ausgabe bis auf &,<, >.
Ersetze ich & durch & ist zu mindest dieser Fehler behoben, jedoch sollte dieses automatisiert passieren.
Grüße Joachim Graf
Hallo Herr Graf,
vielen Dank für Ihren Beitrag.
Für mich sieht es so aus, als ob der im PDF verwendete Schriftsatz keine kyrillischen Zeichen umfasst. Eine weitere Möglichkeit ist, dass das Encoding des PDFs nicht zu den Zeichen passt.
In diesem Fall wird statt des gewünschten Zeichens # ausgegeben.
Ich habe den beschriebenen Anwendungsfall hier lokal nachgestellt.
Durch folgende Schritte werden in meinem PDF-Dokument kyrillische Zeichen, die in einer CMS_INPUT_DOM-Eingabekomponente eingegeben sind, fehlerfrei ausgegeben:
<fo:block font-family="ArialUni" font-weight="normal" font-size="12pt">$CMS_VALUE(#content)$</fo:block>
Im Anschluss habe ich in einem Dom-Editor die Formatvorlage quoted ausgewählt und folgende Zeichen angegeben: АЕЗЪКЖОабгЬЩЦ <>&. Nach der Generierung wurden mir dann die Zeichen im PDF angezeigt.
Für Text-Eingabekomponenten (z. B. CMS_INPUT_TEXT) bzw. Textwerte lässt sich die Quotierung der Zeichen durch die Methode convert2 erreichen:
$CMS_VALUE(pt_text.convert2)$
Hinweis: Beim Verwenden, Einbetten und der Verteilung von Schriften ist auf das Copyright der Schriftart zu achten!
Viele Grüße,
Sascha Rusch
Nur ne kleine lustige Anmerkung nebenbei: die Funktionalität "Als PDF anzeigen" aus den Aktionen rechts oben kann auch nicht mit den kyrillischen Zeichen umgehen.
Wäre glaube ich sinnvoll, wenn der Zeichensatz darin auch solche Zeichen anzeigen könnte!
Grüße
Marcus
Hallo,
das Problem habe ich durch convert2 und quoting mit CDATA in den Griff bekommen.
Aber es geht weiter.
der Tschechisch Schriftsatz enthält sehr viele Zeichen mit Abostroph, umgekehrtem Dach usw.
Diese werden jetzt auch alle richtig dargestellt mit Ausnahme von r mit umgekehrtem dach darüber und e mit umgekehrtem Dach darüber.
S mit umgekehrtem Dach darüber wird richtig dargestellt !
Grüße Joachim
Hallo Herr Graf,
vielen Dank für Ihre Antwort.
Ich habe in meinem Testprojekt (Beschreibung s. o.) die tschechischen Zeichen S mit Hatschek, e mit Hatschek und r mit Hatschek eingefügt.
Die Zeichen werden ohne Probleme dargestellt:
Wichtig ist, das im XSL-FO ein Schriftsatz angegeben wird, der alle Zeichen umfasst und der auf allen Endgeräten installiert ist. Alternativ besteht in PDFs die Möglichkeit Schriftarten einzubetten. Wird eine Unicode-Schriftart eingebettet, so werden ebenfalls alle Zeichen angezeigt.
Viele Grüße,
Sascha Rusch