Search the FirstSpirit Knowledge Base
Hallo community,
das FOP-Modul von FirstSpirit generiert beschädigte PDF-Dateien wenn die Benennung (.name) der Einträge in einer Contentarealist bestimmte Sonderzeichen wie ein Komma oder Slash beinhalten.
Ich meine den Sectionnamen aus diesem Beispiel:
$CMS_FOR(section,st_cal)$
Sectionname in CAL: $CMS_VALUE(section.name)$
$CMS_VALUE(section)$
$CMS_END_FOR$
Wobei ich den gar nicht ausgeben möchte. Es kommt auch so zu einem Fehler.
Hat jemand eine Lösung für dieses Problem?
MFG,
Nic
Ja, Sie müssen für den Ausgabekanal eine passende Konvertierungsregel erstellen (alle in XML nicht erlaubten Zeichen quotieren) und dann bei der Ausgabe die convert Methode verwenden.
Also z.B. $CMS_VALUE(section.name.convert)$
Ich hatte folgende Einträge in den Konvertierungsregeln ergänzt:
0x2c=","
0x2f="/"
Aber es funktioniert dennoch nicht. Ich möchte den Namen - wie schon oben erwähnt - nicht ausgeben. Der ist völlig irrelevant. FirstSpirit oder das FOP-Modul kommen anscheinend intern nicht damit klar, wenn eine derartige Benennung vorgenommen wurde. Alle anderen Inhalte mit diesem Template funktionieren, eben nur nicht wenn diese Zeichen im Eintragsnamen der Contentarealiste verwendet wurden.
Das FOP-Modul arbeitet nur mit den Daten, die Sie mittels Vorlagen generieren. Es muss also im generierten XML ein nicht quotiertes Zeichen geben. Das können Sie einfach verifizieren, indem z.B. die Verarbeitung durch das FOP-Modul für den Ausgabekanal zeitweise deaktivieren und dann das generierte XML validieren.
Für valides XML müssen Sie folgende Zeichen quotieren:
0x3c="<"
0x3e=">"
0x22="""
0x27="'"
0x26="&"
In den Standard-Konvertierungsregeln stehen bereits folgende Einträge:
[quote]
0x3c="<"
0x3e=">"
[replace]
"<"="‹"
">"="›"
Wie geht man damit um?
0x3c="<"
0x3e=">"
und
0x3c="<"
0x3e=">"
sind identisch.
Den Replace-Teil brauchen Sie eigentlich nicht.
Ah ok, vielen Dank. Da habe ich wieder etwas dazugelernt.
Aber leider hilft das nicht bei meinem Problem:
Wenn ich die ersten beiden Einträge lösche, funktioniert es.
Wie gesagt, in einer der verwendeten Vorlagen (Absatzvorlage oder Formatvorlage) wird entweder keine Konvertierungsregel angewendet oder kein .convert aufgerufen. Wie Sie das herausfinden können, hatte ich oben beschrieben.
Ich habe alles probiert wie Sie es geschrieben haben.
Außerdem habe ich es auch mit Render und einer eigenen Formatvorlage versucht:
$CMS_RENDER(template:"cal_ausgabe",renderValue:liste)$
Es bleibt dabei, dass die Listen-Einträge mit diesen Zeichen nicht ausgewertet werden können.
Was meinen Sie mit "nicht ausgewertet"?