none
Vb2017 - Da Word a Pdf RRS feed

  • Domanda

  • Salve a tutti,

    ho trovato del codice per creare un file pdf da un word . Uso VB 2017 con office 2013 . Ho aggiunto nei riferimenti del progetto la libreria Office.interopt.word 15.00.00 e scritto il codice sotto riportato 

    Sull’istruzione interopt mi da sempre  Microsoft.Office.Interop. non è definito . 

    Ma cosa manca ? 

    Grazie

        Private Sub ConvertWordToPDF(filename As String)
            Dim wordApplication As New Microsoft.Office.Interop.Word.Application
            Dim wordDocument As Microsoft.Office.Interop.Word.Document = Nothing
            Dim outputFilename As String
    
            Try
                wordDocument = wordApplication.Documents.Open(filename)
                outputFilename = System.IO.Path.ChangeExtension(filename, "pdf")
    
                If Not wordDocument Is Nothing Then
                    wordDocument.ExportAsFixedFormat(outputFilename, Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF, True, Microsoft.Office.Interop.Word.WdExportOptimizeFor.wdExportOptimizeForOnScreen, Microsoft.Office.Interop.Word.WdExportRange.wdExportAllDocument, 0, 0, Microsoft.Office.Interop.Word.WdExportItem.wdExportDocumentContent, True, True, Microsoft.Office.Interop.Word.WdExportCreateBookmarks.wdExportCreateNoBookmarks, True, True, False)
                End If
            Catch ex As Exception
                'TODO: handle exception
            Finally
                If Not wordDocument Is Nothing Then
                    wordDocument.Close(False)
                    wordDocument = Nothing
                End If
    
                If Not wordApplication Is Nothing Then
                    wordApplication.Quit()
                    wordApplication = Nothing
                End If
            End Try
    
        End Sub
    
    
    
    

    mercoledì 4 dicembre 2019 17:08

Risposte

  • Ho riprovato a compilare sia a 32 che a 64 bit e funziona tutto correttamente, con VS2017, visto che prima avevo provato con 2019 (non che mi aspettassi cose diverse)

    Che framework usi?

    Windows form?

    • Contrassegnato come risposta ElCremo giovedì 5 dicembre 2019 13:37
    giovedì 5 dicembre 2019 11:10

Tutte le risposte

  • hai inserito in testa al codice, prima della classe, la seguente riga ?

    Imports Microsoft.Office.Interop


    • Modificato patel45 mercoledì 4 dicembre 2019 17:24
    mercoledì 4 dicembre 2019 17:23
  • Ciao,

    a me il tuo codice funziona, a parte una conversione da String ad Object che ho dovuto fare, visto che ho l'Option Strict impostato ad ON.

    Controlla che nei tuoi riferimenti ci sia:

    Microsoft World 15xx Object Library e   Microsoft Office 15xx Object LibraryQuando ho aggiunto il riferimento alla libreria World, automaticamente mi ha tirato dentro anche la libreria Office.

    giovedì 5 dicembre 2019 07:47
  • hai inserito in testa al codice, prima della classe, la seguente riga ?

    Imports Microsoft.Office.Interop


    Patel, scusa se mi permetto, ma...

    a cosa serve l'istruzine Imports se nel codice fornito viene specificato il percorso completo delle classi?

    giovedì 5 dicembre 2019 07:53
  • Ciao vbMizio, semplicemente non ci ho fatto caso ed il codice mi sembrava corretto
    giovedì 5 dicembre 2019 08:29
  • Buongiorno ed innanzitutto grazie per le risposte.

    Ho controllato ed ho tutti i riferimenti … Che ci sia qualcosa da aggiungere nell'installazione di visual studio o magari di office ?

    giovedì 5 dicembre 2019 10:33
  • Ho riprovato a compilare sia a 32 che a 64 bit e funziona tutto correttamente, con VS2017, visto che prima avevo provato con 2019 (non che mi aspettassi cose diverse)

    Che framework usi?

    Windows form?

    • Contrassegnato come risposta ElCremo giovedì 5 dicembre 2019 13:37
    giovedì 5 dicembre 2019 11:10
  • Ciao , mi hai dato una grande dritta.

    Con il framework 4.6 funziona, con il 4.6.1 no

    grazie mille

    giovedì 5 dicembre 2019 13:37
  • Boh, io ho usato 4.7.2.

    giovedì 5 dicembre 2019 14:40