How to save all idw's as pdf's for active file directory using iLogic

Not applicable
03-12-2015
06:22 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Here is the code that I have put together to make pdf's from all idw's in active document location.
But I can't seem to get it to use the pdfaddin options.
Any help would be appreciated.
Sub Main() oPath = ThisDoc.Path If MsgBox("This will write PDF files from all idw files in this location: " & vbCr & vbCr & oPath & vbCr & vbCr & " *** Are you sure you want to do this? ***", vbOKCancel + vbExclamation, "Batch Write PDF Files") = vbCancel Then Exit Sub 'get PDF target folder path oFolder = oPath & "\" & "PDF" 'Check for the PDF folder and create it if it does not exist If Not System.IO.Directory.Exists(oFolder) Then System.IO.Directory.CreateDirectory(oFolder) End If Dim MyFiles As String() ' Sets up the variable "MyFile" to be each file in the directory ' This example looks for all the files that have an .ipt extension. ' This can be changed to whatever extension is needed. Also, this ' macro searches the current directory. MyFiles = System.IO.Directory.GetFiles(oPath, "*.idw") ' Starts the Loop, which will Continue Until there are no more files found. For Each MyFile As String In MyFiles ' Displays a message box with the name of the file. This can be ' changed to any procedure that would be needed to run on every ' file in the directory such as opening each file. 'opens file: ThisApplication.SilentOperation = True Dim partDoc As Document = ThisApplication.Documents.Open(MyFile, False) On Error Resume Next If partDoc.DocumentType = kDrawingDocumentObject Then 'oFileName = ThisDoc.FileName(False) 'without extension 'Dim oPropSet As PropertySet 'Dim oProp As Inventor.Property Dim invPartNoProperty As Inventor.Property = partDoc. _ PropertySets.Item("Design Tracking Properties").Item("Part Number") PartNumber = invPartNoProperty.Value ' Get the DataIO object. 'Dim oDataIO As DataIO = partDoc.ComponentDefinition.DataIO 'oRevNum = iProperties.Value("Project", "Revision Number") oPDFAddIn = partDoc.ApplicationAddIns.ItemById _ ("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}") oDocument = ThisApplication.ActiveDocument oContext = ThisApplication.TransientObjects.CreateTranslationContext oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism oOptions = ThisApplication.TransientObjects.CreateNameValueMap oDataMedium = ThisApplication.TransientObjects.CreateDataMedium If oPDFAddIn.HasSaveCopyAsOptions(oDataMedium, oContext, oOptions) Then oOptions.Value("All_Color_AS_Black") = 0 oOptions.Value("Remove_Line_Weights") = 1 oOptions.Value("Vector_Resolution") = 400 'oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintAllSheets oOptions.Value("Custom_Begin_Sheet") = 1 'oOptions.Value("Custom_End_Sheet") = 4 End If 'Set the PDF target file name 'oDataMedium.FileName = oFolder & "\" & oFileName & " Rev " & oRevNum & ".pdf" oDataMedium.FileName = oFolder & "\" & PartNumber & ".pdf" 'Publish document 'oPDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium) partDoc.SaveAs(oFolder & "\" & PartNumber & (".pdf") , True) End If partDoc.Close(False) partDoc = Nothing ThisApplication.SilentOperation = False Next Shell("explorer.exe " & oFolder,vbNormalFocus) End Sub