🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 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
* LO-Experte *
Beiträge: 1081
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 gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten