Word Dokument als PDF speichern inkl. Option nichtdruckbare Information Textmarke Überschrifften und Aufbau Dateinamen und Feldnamen Version und Datum
Hallo,
ich möchte gerne aus Word ein geöffnetes Dokument automatisch per Klick als PDF Datei speichern.
Hierzu soll zusätzlich Option der nichtdruckbare Information Textmarke Überschrifften mit einfließen, so dass diese im PDF als Sprungmarken gespeichert sind.
Gleichzeitig soll der Dateiname des PDF erweitert werden .
(hier habe ich im Dokument eine Versionsspalte und Datum der Änderung), in der Fußzeile bekomme ich diese Information ohne Probleme eingebunden.
Nur wie bekomme ich diese zusätzlich in den SaveAs Dateinamen erweitert
Bestehender Dateiname & " " Feldnamen StyleRef Formatvolagennamen _Version & " " & _Datum.pdf
Leider muss ich hier in der Umsetzung passen,
vielleicht kann mir jemand helfen.
Grüße aus München
ich möchte gerne aus Word ein geöffnetes Dokument automatisch per Klick als PDF Datei speichern.
Hierzu soll zusätzlich Option der nichtdruckbare Information Textmarke Überschrifften mit einfließen, so dass diese im PDF als Sprungmarken gespeichert sind.
Gleichzeitig soll der Dateiname des PDF erweitert werden .
(hier habe ich im Dokument eine Versionsspalte und Datum der Änderung), in der Fußzeile bekomme ich diese Information ohne Probleme eingebunden.
Nur wie bekomme ich diese zusätzlich in den SaveAs Dateinamen erweitert
Bestehender Dateiname & " " Feldnamen StyleRef Formatvolagennamen _Version & " " & _Datum.pdf
Leider muss ich hier in der Umsetzung passen,
vielleicht kann mir jemand helfen.
Grüße aus München
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 316047
Url: https://administrator.de/contentid/316047
Ausgedruckt am: 15.11.2024 um 05:11 Uhr
8 Kommentare
Neuester Kommentar
Hallo Thomas,
kein Problem wenn du stattdessen die ExportAsFixedFormat Methode benutzt, die kennt den entsprechenden Parameter:
Beachte das PDF wird hier im Beispiel im selben Pfad wie das Ursprungsdokument gespeichert
Grüße Uwe
kein Problem wenn du stattdessen die ExportAsFixedFormat Methode benutzt, die kennt den entsprechenden Parameter:
(hier habe ich im Dokument eine Versionsspalte und Datum der Änderung), in der Fußzeile bekomme ich diese
Das musst du mir noch etwas weiter erläutern (evt. Bild), das kann ich so leider nicht eindeutig zuordnen. Wenn du das tust bau ich es in den u.s. Code ein wo jetzt nur der String "Formatvorlage" steht. Meinst du die Felder in den "erweiterten Dokumenteigenschaften" ?Beachte das PDF wird hier im Beispiel im selben Pfad wie das Ursprungsdokument gespeichert
Sub SaveAsPDF()
Dim filepath As String
Set fso = CreateObject("Scripting.FileSystemObject")
With ActiveDocument
filepath = .Path & "\" & fso.GetBasename(.Name) & "_" & "Formatvorlage" & "_" & Format(Date, "yyyymmdd") & ".pdf"
.ExportAsFixedFormat filepath, wdExportFormatPDF, False, wdExportOptimizeForPrint, wdExportAllDocument, IncludeDocProps:=True, CreateBookmarks:=wdExportCreateHeadingBookmarks
End With
Set fso = Nothing
End Sub
Zur Info, wenn du die CustomDocumentProperties (Benutzerdefinierte Dokumenteigenschaften) meinst die kannst du so ansprechen:
Wenn du bereits vom System "vorhandene" Eigenschaften modifiziert hast die erreicht man stattdessen über diese Auflistung:
ActiveDocument.CustomDocumentProperties("Name der Eigenschaft").Value
ActiveDocument.BuiltInDocumentProperties("Last save time").Value
Dann markiere die Version bzw. Datum und setze ein Bookmark (Textmarke), das selbe machst du mit dem Datum, dann kommst du mit
an den Inhalt.
Ich würde das aber anders machen und die Version und das Datum in einer benutzerdefinierten Dokumenteigenschaft speichern (wie oben beschrieben). Diese lassen sich dann auch im Explorer anzeigen, nutzen und ändern und bei Bedarf auch ohne das Dokument zu öffnen abfragen.
ActiveDocument.Bookmarks("NamedesBookmarks").Range.Text
Ich würde das aber anders machen und die Version und das Datum in einer benutzerdefinierten Dokumenteigenschaft speichern (wie oben beschrieben). Diese lassen sich dann auch im Explorer anzeigen, nutzen und ändern und bei Bedarf auch ohne das Dokument zu öffnen abfragen.
Du erstellst ein Add-In-Dokument *.xlam dann kannst du die Methode aus jedem Dokument heraus aufrufen. Wenn es natürlich in dem aktiven Dokument keine Bookmarks mit den Namen gibt ist klar warum er dann deinen Fehler auswirft Du solltest also noch diesen Fall abfangen!
btw. du kann das
Man kann auch nach Text mit bestimmten Formatvorlagen suchen, aber für das Debugging bräuchte ich das Dokument hier, das würde jetzt zu weit gehen.:
Kannst du ja selber mal mit experimentieren wenn du willst.
btw. du kann das
ActiveDocument.Bookmarks("Version").Range.Text
verkürzen auf .Bookmarks("Version").Range.Text
weil du diese ja im With ActiveDocument
Abschnitt schreibst.Sub SaveAsPDF()
On Error Resume Next
Dim filepath As String, strVersion As String, strDate As String
Set fso = CreateObject("Scripting.FileSystemObject")
With ActiveDocument
strVersion = Replace(Trim(.Bookmarks("Version").Range.Text), Chr(13), "")
strDate = Replace(Trim(.Bookmarks("Datum").Range.Text), Chr(13), "")
If Err.Number <> 0 Then
MsgBox "Mindestens eine benötigte Textmarke (Version, Datum) wurde nicht gefunden.", vbExclamation
Exit Sub
End If
filepath = .Path & "\" & fso.GetBasename(.Name) & " Version " & strVersion & " vom " & strDate & ".pdf"
.ExportAsFixedFormat filepath, wdExportFormatPDF, False, wdExportOptimizeForPrint, wdExportAllDocument, IncludeDocProps:=True, CreateBookmarks:=wdExportCreateHeadingBookmarks
End With
Set fso = Nothing
End Sub
Man kann auch nach Text mit bestimmten Formatvorlagen suchen, aber für das Debugging bräuchte ich das Dokument hier, das würde jetzt zu weit gehen.:
With ActiveDocument.Content.Find
.Style = Styles("Version")
.Wrap = wdFindStop
.Execute
If .Found Then
strVersion = Replace(Trim(.Parent.Text), Chr(13), "")
End If
End With