nicbel
I'm new here

Apache FOP - Fo to PDF

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

0 Kudos
18 Replies
feddersen
Community Manager

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)$

0 Kudos

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.

0 Kudos

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="&"

0 Kudos

In den Standard-Konvertierungsregeln stehen bereits folgende Einträge:

[quote]

0x3c="<"

0x3e=">"

[replace]

"<"="‹"

">"="›"

Wie geht man damit um?

0 Kudos

0x3c="<"

0x3e=">"

und

0x3c="<"

0x3e=">"

sind identisch.

Den Replace-Teil brauchen Sie eigentlich nicht.

0 Kudos

Ah ok, vielen Dank. Da habe ich wieder etwas dazugelernt.

Aber leider hilft das nicht bei meinem Problem:Contentarealist.png

Wenn ich die ersten beiden Einträge lösche, funktioniert es.

0 Kudos

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.

0 Kudos

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.

0 Kudos

Was meinen Sie mit "nicht ausgewertet"?

0 Kudos