Word Docs AUTOMATISCH auch als PDF speichern möglich?

zehde

Ensign
Registriert
Okt. 2018
Beiträge
231
Hallo liebe Leute,

Ich erstelle Schreiben aus einer branchenspezifischen Spezialsoftware. Die Schreiben werden in Word automatisch benannt und wenn ich auf Schließen klicke natürlich auch automatisch korrekt gespeichert.

Für manche Anwendungen wäre es schön, wenn Word beim Schließen nicht nur ein docx erstellen würde, sondern automatisch AUCH(!) ein gleichnamiges PDF.

Die Funktion „als xps oder pdf exportieren“ ist mir bekannt. Man muss es aber immer händisch machen und teils wird es im Alltag vergessen.

Ist dieses Vorhaben realisierbar?
Danke an alle!
 
Anbierter der Spezialsoftware anfragen.

Vor vielen Jahren hat bei uns einmal ein Findiger einen Dienst erstellt welcher alle paar Minuten in ein Verzeichnis nach DOC/DOCX schaute und diese dann in PDF wandelte plus die PDF in ein anders Verzeichnis kopierte. Hatte sich spaeter erledigt weil weg von lokalen MS-Office.

Per Macro sollte sowas natuerlich auch moeglich sein.
Aber bei MS-Office bin ich raus seit Jahren und aus Deiner Spezialsoftware sowieso.
Such einfach mal danach. Gib bestimmt Loesungen dafuer.
 
  • Gefällt mir
Reaktionen: zehde
Hallo, danke für die Tipps.
Die Spezialsoftware spielt eigentlich keine Rolle. Diese erstellt nur ein Word Dokument. Ab da gibt sie zu 100% an Word ab. Die Lösung muss daher in Word selber liegen.

ODER, wenn nicht anders machbar, in Drittsnbieter-Software, die das macht, was du beschreibst. Gibt es so etwas?
 
Was ist der Vorteil dieses Makros im Verhältnis zu der integrierten Funktion „als PDF bereitstellen“, die ich mir auch in den Schnellzugriff gezogen habe?
 
VBA oder C# VSTO können sich an Events, also Ereignisse hängen. Das relevante bei dir wäre dann BeforeSave (wenn ich mich richtig erinnere) - oder BeforeClose. Bedeutet, es würde dann automatisiert die integrierte PDF-Export-Funktion auslösen und zusätzlich die PDF abspeichern.
 
  • Gefällt mir
Reaktionen: zehde
Onsave/Saveas = export as PDF(Filename=filename)
Genau sowas suche ich.
Wie kann man das realisieren?
Wo finde ich dazu was?
 
Zuletzt bearbeitet:
Augenblick. Dummstell…
Ich will ja zuerst als DOCX speichern und dann noch extra als PDF.
Wenn ein Aktions-[Ereignis]-Makro auf Speichern reagiert und vor dem «Save» als PDF speichert ist keine DOCX mehr da die zu speichern ist. Oder?!?

→ Einschub: das darf kaum so direkt in der Normal.Dot stehen, sonst haben wir einen Zoo an PDFs wenn wir mal normal speichern.
Es muss schon eine eigenem Makro ›für genau diesen Fall‹ sein. Der Haken ist klar - man muss es auch benutzen…

Es (Aktionsmakro) müsste irgendwas wie SaveCopyAs haben das zuerst als PDF auswirft um dann mit dem Beenden die DOCX abzuspeichern.

CN8
 
Ne andersrum. Sonst weiss es ja keinen Dateinamen. Also entweder NACH jedem Speichervorgang ODER beim Beenden. Als PDF wird ja nicht gespeichert sondrn, wie MS das nennt „bereitgestellt“. Da ist das Ur-docx immer auch noch da. :)
 
Zuletzt bearbeitet:
Ach doch, ja, die DOCX bleibt ja offen. Es wird die PDF gespeichert, quasi als Kopie.
Mein Fehler. Ich erzeuge per Makro Serienbriefe die das Muster als jeweils angepasste PDF auswerfen. Die werden ja auch nicht geöffnet… Und die Serienbriefquelle bleibt mit dem letzten Datensatz offen. Da habe ich gepennt.
Meine Ansatz war, dass in der geöffneten DOCX (wenn denn genau das vom Tool kommt) noch was angepasst wird und dann diese Änderung und die PDF zu speichern sind.
Wenn das Tool mit einer Rohdatei Word öffnet die selbst aber noch nicht gespeichert ist muss der offene Zustand (hoffentlich…) erst als DOCX gespeichert werden und dann noch als PDF zusätzlich. Direkt als PDF; bleibt das Original auch da noch offen?
Bei Aktionsmakros bin ich dennoch vorsichtig.

CN8
 
Sagen wir es so. Immer, wenn das docx speichert (egal ob speichern als .. oder speichern), soll es nicht nur ein docx speichern, sondern auch ein gleichnamiges PDF.
 
Zumindest mit Word2016 funktioniert diese bescheidene Zeile als ein »Save-Copy-As«:
ActiveDocument.SaveAs2 "Name", wdFormatPDF
(Name sei mal symbolisch, der muss noch erfasst werden)

Aber… Ich sehe da eine satten Stolperstein. 2. mal gelingt es mir nicht trotz MS höchstpersönlich das Aktionsmakro ans Laufen zu bekommen, 1. müsste es in einer DOCM stehen, du hast eine DOCX (würde ich mal dringend wetten).
Damit bleibt nur die Normal.DotM als Behelf was aber immer ein manuelles Speichern mit einem eigenen Button erfordert. Normales Speichern unter unmittelbarer Mitnahme eines weiteren Schrittes (eben PDF auswerfen) scheint nicht zu klappen.

CN8
 
  • Gefällt mir
Reaktionen: zehde
Sagen wir - ich kann mit einem Extra-Button im Ribbon leben. Mutmaßlich auch weil meist mehr als plumpes Abspeichern zu passieren hat.
Damit als DOCX und PFD auswerfen ist recht einfach (»recht« weil ich erahne, dass das Wo eine interessante Frage sein wird).

CN8
 
Das bringt Word schon mit Bordmitteln mit. Einfach „Als PDF/XPS bereitstellen“ in den Schnellzugriff. Ich wollte es halt mit dem Speichervorgang automatisieren, weil so wird es einfach oft vergessen.

Word erstellt dann - mit gleichem Namen und Dateiort - ein pdf durch 2 Klicks.
 
Wenn alle diese Dokumente in einem zentralen Ordner sind kannst Du per Script die Dinger wandeln. Das war das was wir hatten. Geht auch mit Powershell.

Eine weitere Idee wäre gleich ein DMS zu verwenden welches die Docx als PDF integriert.
 
Zu allererst, das Makro müsste überhaupt nicht in einer docm stehen. Auch nicht in der Normal.dotm.
https://imaginado.de/2020/05/vba-code-verwalten-und-verteilen/

Danach die spannende Frage, benutzt die Extra Software ein integriertes mitgebrachtes Template oder kann man dort ein eigenes angeben was dann mit den Inhalten gefüllt wird um dann die Steuerung an Word abzugeben wenn es geöffnet wurde?
Wenn das der Fall ist, dann kann man tricksen bzw. sich Orientierung verschaffen.
In dieser dotx wird dann unter Datei > Informationen > Eigenschaften > Erweiterte Eigenschaften ein neues Document Property angelegt mit einem definierten Inhalt. Ich benutze da sowas wie "<Firma>DocumentType" und "Briefvorlage" oder "Protokoll" als Inhalt.

Und dann kannst du im ActiveDocument DocumentBeforeClose Event nämlich checken lassen ob dieses Document Property existiert, wenn ja, dann lies es aus. Wenn es dem Wert X entspricht und in der Eigenschaft Filename der Datei was anderes als "" drin steht, dann generiere zusätzlich die PDF.

Ich würde schon denken das sich dieser Prozess abbilden lässt.
Ich täte ihn nicht mehr als VBA umsetzen sondern mit C#, aber das Konzept ändert sich nicht.
 
morcego schrieb:
Zu allererst, das Makro müsste überhaupt nicht in einer docm stehen. Auch nicht in der Normal.dotm.
Falls du da an mich denkst - ich hatte das wegen potenziellen Auto-Makos genannt.

Deswegen unterstreiche ich gerne, dass natürlich die Normal.DotM nicht nur reicht sondern auch die natürliche Lösung ist. 🙂

CN8
 
Zurück
Oben