jgraf
I'm new here

Konvertierung nach PDF mit & und Kyrillischen Zeichen.

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 &amp; ist zu mindest dieser Fehler behoben, jedoch sollte dieses automatisiert passieren.

Grüße Joachim Graf

0 Kudos
4 Replies
rusch
I'm new here

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:

  1. Im Vorlagensatz Unicode to FOP entities als Konvertierungs-Regel eingestellt
  2. HTML-Encoding der Sprache auf UTF-8 geändert
  3. Schriftart Arial Unicode MS im FirstSpirit-Server installiert (Name: Arial Uni)
  4. Schriftart dem Projekt zugewiesen (Unterpunkt Fonts)
  5. Neue Formatvorlage angelegt (Name: quoted)
  6. Für die Formatvorlage die Option Zitieren auf Ja gestellt
  7. In der Formatvorlage im Präsentationskanal als Konvertierung-Regel Unicode to FOP entities ausgewählt
  8. In der Formatvorlage die Schriftart angegeben. Quelltext der Formatvorlage quoted
<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

0 Kudos
MarcusDau
Occasional Collector

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.

dau_170.jpg

Wäre glaube ich sinnvoll, wenn der Zeichensatz darin auch solche Zeichen anzeigen könnte!

Grüße

Marcus

0 Kudos
jgraf
I'm new here

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

0 Kudos

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:

pdf_utf8.jpg

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

0 Kudos