Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  PDF Export

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  PDF Export (3246 mal gelesen)
Bluejay
Mitglied
Ingenieur


Sehen Sie sich das Profil von Bluejay an!   Senden Sie eine Private Message an Bluejay  Schreiben Sie einen Gästebucheintrag für Bluejay

Beiträge: 198
Registriert: 14.05.2007

Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400
Intel(R) Core(TM)2 Duo CPU
E6750 @2,66 GHz
3,00 GB RAM

erstellt am: 12. Apr. 2013 09:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Guten Morgen zusammen,
villeicht kann mir ja einer helfen - ich habe folgendes Problem, ich habe das folgenden Makro das mir ein PDF in ein vorgegebenes Verzeichnis aus einer idw exportiert. Leider tut es das nur wenn informationen wie Zeichnungsnumemr + Blatt + Index von unserem Datamanagementsystem in den iprops stehen. Bei nur lokal gespeicherten Dateien gibt es diese iprops nicht. Frage wie kann nich das Programm anpassen, das es mir auch ein pdf exportiert wenn diese info nich vorhanden ist?

Anbei der Code

Sub PDFExport()
'Set a reference to the active document (the document to be published).
    Dim oDocument As Document
    Set oDocument = ThisApplication.ActiveDocument
   
    Dim fso As Object
    Set fso = CreateObject("Scripting.FilesystemObject")

    Dim ret As Variant
    Set dDoc = ThisApplication.ActiveDocument
     
      If dDoc.FullFileName = "" Then
        MsgBox "Bitte zuerst die Datei speichern...  "
        Exit Sub
    End If
   
  ' 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
   
    Dim oZeichNr As Inventor.Property
    On Error Resume Next
    Set oZeichNr = dDoc.PropertySets(4).Item("Zeichnungsnummer")

    Dim oBlattNr As Inventor.Property
    On Error Resume Next
    Set oBlattNr = dDoc.PropertySets(4).Item("Blatt")

    Dim oRevNr As Inventor.Property
    On Error Resume Next
    Set oRevNr = dDoc.PropertySets(4).Item("Index")

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

        '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
 
   
    'Set the destination file name
    oDataMedium.fileName = "C:\GAIN\Exchange\" & "\" & oZeichNr.Value & "-" & oBlattNr.Value & "_" & oRevNr.Value & ".pdf"
  End If    'Publish document.
  Call PDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)

    MsgBox "PDF wurde unter  -- C:\GAIN\Exchange -- gespeichert!!"
 
End Sub


Über alle Hilfe bedanke ich mich jetzt schon


MFG

BlueJay

------------------
MFG

BlueJay

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daywa1k3r
Moderator
Softwareentwickler




Sehen Sie sich das Profil von daywa1k3r an!   Senden Sie eine Private Message an daywa1k3r  Schreiben Sie einen Gästebucheintrag für daywa1k3r

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 12. Apr. 2013 12:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bluejay 10 Unities + Antwort hilfreich

Hi, probier mal so:

Code:

Sub PDFExport()
'Set a reference to the active document (the document to be published).
    Dim oDocument As Document
    Set oDocument = ThisApplication.ActiveDocument
   
    Dim fso As Object
    Set fso = CreateObject("Scripting.FilesystemObject")

    Dim ret As Variant
    Dim dDoc As Document
    Set dDoc = ThisApplication.ActiveDocument
     
      If dDoc.FullFileName = "" Then
        MsgBox "Bitte zuerst die Datei speichern...  "
        Exit Sub
    End If
   
  ' 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
   
    Dim oZeichNr As String
    On Error Resume Next
    oZeichNr = GetPropertyValue(dDoc, 4, "Zeichnungsnummer")

    Dim oBlattNr As String
    On Error Resume Next
    oBlattNr = GetPropertyValue(dDoc, 4, "Blatt")

    Dim oRevNr As String
    On Error Resume Next
    oRevNr = GetPropertyValue(dDoc, 4, "Index")

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

        '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
 
   
    'Set the destination file name
    If (oZeichNr = "" And oBlattNr = "" And oRevNr = "") Then
        oDataMedium.FileName = "C:\GAIN\Exchange\" & dDoc.DisplayName & ".pdf"
    Else
        oDataMedium.FileName = "C:\GAIN\Exchange\" & "\" & oZeichNr & "-" & oBlattNr & "_" & oRevNr & ".pdf"
    End If
  End If    'Publish document.
  Call PDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)

    MsgBox "PDF wurde unter  -- C:\GAIN\Exchange -- gespeichert!!"
 
End Sub

Function GetPropertyValue(ByRef oDoc As Document, PropertyIndex As Integer, PropertyName As String) As String
    Dim sRet As String
    Err.Clear
    On Error Resume Next
    sRet = oDoc.PropertySets(PropertyIndex).Item(PropertyName).Value
   
    If Err.Number <> 0 Then
        GetPropertyValue = ""
    Else
        GetPropertyValue = sRet
    End If
       
End Function


------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools
FX64 LambdaSpect - Lichtsimulation mit Autodesk Inventor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 12. Apr. 2013 12:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bluejay 10 Unities + Antwort hilfreich

Hallo


Code:
Sub PDFExport()
'Set a reference to the active document (the document to be published).
    Dim oDocument As Document
    Set oDocument = ThisApplication.ActiveDocument
 
    Dim bErr As Boolean
 
    Dim fso As Object
    Set fso = CreateObject("Scripting.FilesystemObject")

    Dim ret As Variant
    Set dDoc = ThisApplication.ActiveDocument
   
      If dDoc.FullFileName = "" Then
        MsgBox "Bitte zuerst die Datei speichern...  "
        Exit Sub
    End If
 
  ' 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
 
    Dim oZeichNr As Inventor.Property
    On Error GoTo ErrorHandler
    Set oZeichNr = dDoc.PropertySets(4).Item("Zeichnungsnummer")

    Dim oBlattNr As Inventor.Property
    On Error GoTo ErrorHandler
    Set oBlattNr = dDoc.PropertySets(4).Item("Blatt")

    Dim oRevNr As Inventor.Property
    On Error GoTo ErrorHandler
    Set oRevNr = dDoc.PropertySets(4).Item("Index")


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

        '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

 
    'Set the destination file name
If bErr = False Then
    oDataMedium.FileName = "C:\GAIN\Exchange\" & "\" & oZeichNr.Value & "-" & oBlattNr.Value & "_" & oRevNr.Value & ".pdf"
Else
    oDataMedium.FileName = "C:\GAIN\Exchange\" & NameSplit(oDocument.FullFileName) & ".pdf"
End If
  End If    'Publish document.
  Call PDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)

    MsgBox "PDF wurde unter  -- C:\GAIN\Exchange -- gespeichert!!"

Exit Sub

ErrorHandler:
bErr = True
Resume Next

End Sub

Private Function NameSplit(ByVal sFilename As String) As String

Dim oArray() As String
oArray = Split(sFilename, "\")

NameSplit = Replace(oArray(UBound(oArray)), ".idw", "")

End Function


------------------
MfG
Ralf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daywa1k3r
Moderator
Softwareentwickler




Sehen Sie sich das Profil von daywa1k3r an!   Senden Sie eine Private Message an daywa1k3r  Schreiben Sie einen Gästebucheintrag für daywa1k3r

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 12. Apr. 2013 12:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bluejay 10 Unities + Antwort hilfreich

Jetzt die beide zusammenlegen, ausmisten und gut 

------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools
FX64 LambdaSpect - Lichtsimulation mit Autodesk Inventor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bluejay
Mitglied
Ingenieur


Sehen Sie sich das Profil von Bluejay an!   Senden Sie eine Private Message an Bluejay  Schreiben Sie einen Gästebucheintrag für Bluejay

Beiträge: 198
Registriert: 14.05.2007

Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400
Intel(R) Core(TM)2 Duo CPU
E6750 @2,66 GHz
3,00 GB RAM

erstellt am: 15. Apr. 2013 07:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Guten Morgen,
vielen Dank für die gemeinsame Hilfe - Die Routine funktioniert wie sie es soll - echt Super - die Sache mit dem Error Handler hat mir mal wieder etwas beigebracht - Danke noch mal

MFG

------------------
MFG

BlueJay

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz