Share

Export to DWF

Description

This sample demonstrates publishing of Inventor files in DWF format.

Code Samples

To run this sample, the document to be published must be active. The DWF file is created as C:\temptest.DWF (this can be changed in the code below).
Public Sub PublishDWF()
    ' Get the DWF translator Add-In.
    Dim DWFAddIn As TranslatorAddIn
    Set DWFAddIn = ThisApplication.ApplicationAddIns.ItemById("{0AC6FD95-2F4D-42CE-8BE0-8AEA580399E4}")

    'Set a reference to the active document (the document to be published).
    Dim oDocument As Document
    Set oDocument = ThisApplication.ActiveDocument

    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

    ' Check whether the translator has 'SaveCopyAs' options
    If DWFAddIn.HasSaveCopyAsOptions(oDocument, oContext, oOptions) Then

        oOptions.Value("Launch_Viewer") = 1

        ' Other options...
        'oOptions.Value("Publish_All_Component_Props") = 1
        'oOptions.Value("Publish_All_Physical_Props") = 1
        'oOptions.Value("Password") = 0

        If Typeof oDocument Is DrawingDocument Then

            ' Drawing options
            oOptions.Value("Publish_Mode") = kCustomDWFPublish
            oOptions.Value("Publish_All_Sheets") = 0

            ' The specified sheets will be ignored if
            ' the option "Publish_All_Sheets" is True (1)
            Dim oSheets As NameValueMap
            Set oSheets = ThisApplication.TransientObjects.CreateNameValueMap

            ' Publish the first sheet AND its 3D model
            Dim oSheet1Options As NameValueMap
            Set oSheet1Options = ThisApplication.TransientObjects.CreateNameValueMap

            oSheet1Options.Add "Name", "Sheet:1"
            oSheet1Options.Add "3DModel", True
            oSheets.Value("Sheet1") = oSheet1Options

            ' Publish the third sheet but NOT its 3D model
            Dim oSheet3Options As NameValueMap
            Set oSheet3Options = ThisApplication.TransientObjects.CreateNameValueMap

            oSheet3Options.Add "Name", "Sheet3:3"
            oSheet3Options.Add "3DModel", False

            oSheets.Value("Sheet2") = oSheet3Options

            'Set the sheet options object in the oOptions NameValueMap
            oOptions.Value("Sheets") = oSheets
        End If

    End If

    'Set the destination file name
    oDataMedium.FileName = "c:\temptest.dwf"

    'Publish document.
    Call DWFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)
End Sub


Was this information helpful?