Message 1 of 3
PDF code issue looping through sheets

Not applicable
10-31-2018
04:21 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
hi all I have this code and I think I know what is wrong but I can work out how to correct it.
the code makes a pdf of each sheet and names it depending on what is in a prompted entry box.
at the moment it loops through all the sheets and at first glance it looks ok but when you look at each pdf they are all the same (current active sheet). I think the issue is I am looping through all sheets and getting the data but before I pdf it I need to activate that sheet.
any help would be great thanks
Imports SysIO = System.IO Imports System.Windows.Forms Sub Main () ' Get current location of this file Dim ExportPath As String = ThisDoc.Path ' Check that this file has been saved and actually exists on disk If String.IsNullOrEmpty(ExportPath) Then MsgBox("This file has not yet been saved and doesn't exist on disk! - please save it first",64, "Formsprag iLogic") Return End If ' Define folder browse dialog Dim Dialog = New FolderBrowserDialog() ' Set options for folder browser dialog Dialog.SelectedPath = ExportPath Dialog.ShowNewFolderButton = True Dialog.Description = "Choose Folder for Export..." ' Show dialog box If DialogResult.OK = Dialog.ShowDialog() Then ' User clicked 'ok' on dialog box - capture the export path ExportPath = Dialog.SelectedPath & "\" Else ' User clicked 'cancel' on dialog box - exit Return End If 'Read Title Block from Active Sheet oPath = ThisDoc.Path oFileName = ThisDoc.FileName(False) 'without extension oPDFAddIn = ThisApplication.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 'Define the drawing Dim oDrawing As DrawingDocument oDrawing = ThisDoc.Document Dim oSheet As Sheet Dim lPos As Long Dim rPos As Long Dim sLen As Long Dim sSheetName As String Dim iSheetNumber As Integer 'step through each drawing sheet For Each oSheet In oDrawing.Sheets 'find the seperator in the sheet name:number lPos = InStr(oSheet.Name, ":") 'find the number of characters in the sheet name sLen = Len(oSheet.Name) 'find the sheet name sSheetName = Left(oSheet.Name, lPos -1) 'find the sheet number sSheetNumber = Right(oSheet.Name, sLen -lPos) 'set PDF Options If oPDFAddIn.HasSaveCopyAsOptions(oDataMedium, oContext, oOptions) Then oOptions.Value("All_Color_AS_Black") = 1 oOptions.Value("Remove_Line_Weights") = 1 oOptions.Value("Vector_Resolution") = 400 oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintSheetRange oOptions.Value("Custom_Begin_Sheet") = sSheetNumber oOptions.Value("Custom_End_Sheet") = sSheetNumber End If 'get PDF target folder path oFolder = Left(oPath, InStrRev(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 oDoc As Document oDoc = ThisApplication.ActiveDocument Dim oTB1 As TitleBlock oTB1 = oSheet.TitleBlock Dim titleDef As TitleBlockDefinition titleDef = oTB1.Definition Dim oPrompt ' Find the Prompted Entry called <MATERIALS> in the Title Block For Each defText In titleDef.Sketch.TextBoxes If defText.Text = "drawing number" Then oPrompt = defText Exit For End If Next 'write prompted entry to iprop Dim Mat As String Mat=oTB1.GetResultText(oPrompt) ExportFilename = Mat & ".pdf" ExportDWGFileName = Mat & ".dwg" '____________in loop above 'Set the PDF target file name oDataMedium.FileName = ExportPath & ExportFilename 'Publish document oPDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium) 'MessageBox.Show(ExportFilename, "Title") Call DWG (ExportPath,ExportDWGFileName) Next MessageBox.Show("Done!", "Done") End Sub