Code:
Option ExplicitSub Pdf_in_Änderungen_und_Datum()
Dim oDoc As Document
Dim dDoc As DrawingDocument
Dim fso As Object
Dim ret As Variant
Dim outfile As String
For Each oDoc In ThisApplication.Documents
If oDoc.DocumentType = kDrawingDocumentObject Then
Set fso = CreateObject("Scripting.FilesystemObject")
Call oDoc.Activate
Set dDoc = ThisApplication.ActiveDocument
If dDoc Is Nothing Then Exit Sub
If Len(Trim(dDoc.FullFileName)) > 0 Then
outfile = fso.GetParentFolderName(dDoc.FullFileName) & "\Änderungen\" & fso.GetBaseName(dDoc.FullFileName) & "-" & Date & ".pdf"
' Get the PDF translator Add-In.
Dim PDFAddIn As TranslatorAddIn
Set PDFAddIn = ThisApplication.ApplicationAddIns.ItemById("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}")
Dim oContext As TranslationContext
Set oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = kFileBrowseIOMechanism
' Create a NameValueMap object
Dim oOptions As NameValueMap
Set oOptions = ThisApplication.TransientObjects.CreateNameValueMap
' Create a DataMedium object
Dim oDataMedium As DataMedium
Set oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
' Create a new FileDialog object.
Dim oFileDlg As Inventor.FileDialog ' FileDialog
Call ThisApplication.CreateFileDialog(oFileDlg)
oFileDlg.Filter = "PDF-File (*.pdf)|*.pdf|All Files (*.*)|*.*"
oFileDlg.FilterIndex = 1
oFileDlg.DialogTitle = "Save File Test"
oFileDlg.InitialDirectory = "C:\Temp"
oFileDlg.FileName = outfile
oFileDlg.CancelError = True
On Error Resume Next
oFileDlg.ShowSave
' If an error was raised, the user clicked cancel, otherwise display the filename.
If Err Then
MsgBox "User cancelled out of dialog. Resuming next file."
ElseIf oFileDlg.FileName <> "" Then
oDataMedium.FileName = oFileDlg.FileName
' Check whether the translator has 'SaveCopyAs' options
If PDFAddIn.HasSaveCopyAsOptions(dDoc, oContext, oOptions) Then
' Options for drawings...
oOptions.Value("All_Color_AS_Black") = 0
'oOptions.Value("Remove_Line_Weights") = 0
'oOptions.Value("Vector_Resolution") = 400
oOptions.Value("Sheet_Range") = kPrintAllSheets
'oOptions.Value("Custom_Begin_Sheet") = 2
'oOptions.Value("Custom_End_Sheet") = 4
'Publish document.
Call PDFAddIn.SaveCopyAs(dDoc, oContext, oOptions, oDataMedium)
Else
MsgBox "Erst alles Speichern", vbInformation
Exit Sub
End If
End If
End If
End If
Next
End Sub