UNOService MailMerge Aktualisieren des Dokumentes vor dem Output
Verfasst: 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:
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?
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", ...)
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?