BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

UNOService MailMerge Aktualisieren des Dokumentes vor dem Output

Alles zur Programmierung im LibreOffice.
Antworten
gogo
Beiträge: 1072
Registriert: Sa 5. Feb 2011, 19:07

UNOService MailMerge Aktualisieren des Dokumentes vor dem Output

Beitrag von gogo » Sa 20. Jun 2020, 12:29

Hallo Leute,
ich nutze createunoservice("com.sun.star.text.MailMerge") um mit der Serienbrieffunktion mittels Writer Pdfs zu erstellen (Rechnungen, Zertifikate etc.)
Das Makro ist in einer BASIC-Extension gespeichert (IVL.office.Serienbrief_Starten) und wird über die Kommandozeile (aus Python heraus) aufgerufen:

Code: Alles auswählen

libreoffice  macro:///IVL.office.Serienbrief_Starten\\("foo", "bar", ...)
Nach dem Befüllen des MailMerge-Objekts wird es ausgeführt [MailMerge.execute(array())] - Resultat ist dann das mittels MailMerge.SaveFilter="writer_pdf_Export" erstellte PDF, das unter MailMerge.OutputURL=converttoUrl(sExpPath) gespeichert wurde. Das Makro hab' ich der besseren Übersicht halber als zip-Datei angehängt.

So weit so gut, das ganze funktioniert seit Jahren klag- und fehlerlos.

Nun macht mir aber ein Bug bei der Bestimmung der Gesamtseitenzahl ein Problem. Wenn in einer Tabelle eine Zeile sehr hoch wird (weil viel viel Text drin ist), dann wird unter Umständen das Gesamtdokument um 1 Seite länger, dabei wird aber vor dem Ausdrucken/Speichern die Gesamtseitenzahl im Dokument NICHT neu berechnet, und ich habe dann ab Seite 2 falsche Gesamtseitenzahlen: "Seite 2 von 1" ... Sieht auf Rechnungen und sonstigen Schriftstücken, die von der Genauigkeit leben nicht schön aus.
Wenn das Dokument "normal" geöffnet wurde, kann man es ja problemlos aktualisieren, aber mit MailMerge funktioniert das nicht. Auch ein Aktualisieren bei Ereignis "Serienbriefdruck gestartet" (oder "Serienbriefdruck abgeschlossen") hat keinen Effekt.

Lösungen?
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten