SWING PDF Converter: Probleme und Fehler in der Darstellung beseitigen

von Christoph Gerken,
assono GmbH, Standort Kiel,

Die Ausgangslage

Einer unserer Kunden führte den SWING PDF Converter neu ein, um die Erzeugung von Ausdrucken in IBM Notes/Domino zu optimieren. Dabei stießen wir auf zwei unerwartete Stolpersteine.

Es geht bei beiden Problemen darum, dass in einer Brief-Maske eine Teilmaske eingebunden ist, die den Briefkopf enthält. Innerhalb der Maske gibt es dabei eine Tabelle (im Bild grün) und innerhalb dieser Tabelle wird die Teilmaske eingebunden (im Bild blau). Die Zeilen mit dem roten Text dienen nur der Dokumentation sind natürlich per Versteckformeln im Client ausgeblendet.

Betrachtet man das Dokument in Notes oder in der Druck-Vorschau, so wird alles korrekt dargestellt. SWING interpretiert einige Angaben aber offenbar anders als Notes.

Innerhalb der Maske gibt es dabei eine Tabelle (im Bild grün) und innerhalb dieser Tabelle wird die Teilmaske eingebunden (im Bild blau). Die Zeilen mit dem roten Text dienen nur der Dokumentation sind natürlich per Versteckformeln im Client ausgeblendet.

Problem 1: SWING druckt die Teilmaske nicht

Druckte man das ursprüngliche Dokument mit SWING, so war der Inhalt der Teilmaske plötzlich verschwunden.

Der Grund des Problems: Es war reproduzierbar so, dass versteckte Zeilen Einfluss auf das Druckverhalten haben. Dabei ist die letzte Zeile innerhalb der Maske direkt vor der Teilmakse relevant, ebenso wie die erste Zeile innerhalb der Teilmaske selbst. Wenn nur eine der beiden Zeile per Versteckformel ausgeblendet wird, so wird die gesamte Teilmaske nicht von SWING gedruckt.

Die Lösung: Wie im Bild zu sehen haben wir in der Maske direkt vor der Teilmaske sowie innerhalb der Teilmaske ganz oben je eine stets sichtbare Zeile in Schriftgröße 1 ohne Text eingefügt. Sicherheitshalber wurde zudem in je einer versteckten Zeile ein Hinweistext eingefügt, um zukünftige Bearbeiter der Gestaltungselemente darüber in Kenntnis zu setzen, warum das Layout etwas "ungewöhnlich" ist.

Problem 2: In SWING verrutscht der Inhalt der Teilmaske nach rechts

Nachdem die Teilmaske nun also gedruckt wurde, wurde das nächste Problem sichtbar: Der Inhalt befand sich nicht linksbündig, sondern war ein ganzes Stück nach rechts eingerückt.

Der Inhalt der Teilmaske ist beim SWING-Ausdruck nach rechts verschoben.

Der Grund des Problems: In neu erstellten Masken und Teilmasken ist es standardmäßig so, dass sich alles, was man an Text, Tabellen usw. erstellt, 2,54 cm (= 1 Zoll) vom linken Rand entfernt befindet. So lag diese Einstellung auch bei den untersuchten Gestaltungselementen vor. SWING sorgte dafür, dass die grüne Tabelle 2,54 cm eingerückt wurde. So weit, so richtig. Da die Teilmaske aber wie beschrieben in diese Tabelle eingefügt wurde, dachte sich SWING wohl: Ausgehend von diesen ersten 2,54 cm rücke ich den Inhalt der Teilmaske nochmal um 2,54 cm ein. Hier interpretieren Notes und SWING also das Einrücken unterschiedlich. Während Notes den Abstand vom linken Rand der gesamten Seite/der Maske berechnet, geht SWING vom linken Rand der Tabelle aus.

Per Vorgabe ist Text in Masken und Teilmasken erstmal 2,54 cm eingerückt.

Die Lösung: Der Inhalt der Teilmaske muss 0 cm links vom Rand eingerückt sein. Dann interpretieren Notes und SWING das Einrückverhalten der Teilmaske identisch.

Während man Textinhalte relativ leicht über die oben gezeigte Box nach links verschieben kann, funktioniert dies bei Tabellen (meines Wissens) nicht über die grafische Benutzeroberfläche: Weder wenn man innerhalb der Tabelle einen anderen Abstand eingibt, noch per Copy und Paste in einen Bereich anderen Abstands ändert sich das Einrückverhalten. Möglich wird es, wenn man das Gestaltungselement als DXL öffnet. Dort kann man im <table>-Knoten einfach das Attribut leftmargin='0' hinzufügen und schon hat man das gewünschte Ergebnis.

Im Domino Designer kann man Gestaltungselemente im Anwendungsbaum per Rechtsklick mit DXL bearbeiten.
Der leftmargin-Wert wurde im <table>-Knoten des DXL, das zur Teilmaske im oben angegebenen Beispiel gehört, auf 0 gesetzt.
Am Beispiel von Textabsätzen: Im DXL gibt man leftmargin='0' ein, damit der Absatz ganz an den linken Rand rutscht. Man sieht am ersten Absatz, dass bei fehlendem leftmargin-Attribut der Default-Wert '1in' verwendet wird.
Am Ende ist alles an der richtigen Position, auch im SWING-Ausdruck.

Nächster Artikel in dieser Reihe:

SWING PDF Converter druckt HTML/MIME-Inhalte nur mit Rich-Text-Feld "Body"

Das könnte Sie auch interessieren:

Entwicklung IBM Notes und Domino

Quelle:

Fachbeitrag IBM Notes Entwicklung

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie wollen eine individuelle Lösung? Kontaktieren Sie uns

Weitere interessante Artikel

Sie haben Fragen oder möchten eine Demo anfordern?

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Gerne erstellen wir eine individuelle Demo für Sie.

Wir verwenden Ihre Daten, um Sie einmalig per E-Mail zu kontaktieren. Wir geben Ihre Daten nicht an Dritte weiter. Siehe: Datenschutzhinweise
assono GmbH

Standort Kiel (Zentrale)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Standort Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Telefonnummern:
Zentrale: +49 4307 900 407
Techn. Hotline: +49 4307 900 403
Vertrieb: +49 4307 900 402

E-Mail-Adressen:
kontakt@assono.de
bewerbung@assono.de