Esportare immagini da vb a word

di il
13 risposte

Esportare immagini da vb a word

Buongiorno a tutti,
da qualche tempo mi ritrovo con un grattacapo che non riesco a risolvere, in pratica sto sviluppando un programma che alla fine deve restituirmi un file word con tutti i dati (fin qui tutto bene), il problema è che devo inserirci anche delle immagini (qui ho problemi) .

Vi posto di seguito il codice che ho usato fin'ora:

Imports System.Configuration
Imports System.IO
Imports System.Data.OleDb
Imports System.IO.File
Imports word = Microsoft.Office.Interop.Word

Dim testo As word.Application
Dim pagina As word.Document


testo = CreateObject("word.application")
testo.Visible = True
pagina = testo.Documents.Add


testo.Selection.TypeText("prova")
testo.Selection.TypeText(Me.TextBox20.Text)

fin qui funziona tutto

allo stesso modo vorrei aggiungere delle immagini, ma non so come fare.
Qualcuno sa darmi una mano?

P.S. non ho usato nessun modello di word precompilato con i segnalibri, il documento viene creato e scritto al momento dal programma.

13 Risposte

  • Re: Esportare immagini da vb a word

    Hai provato a cercare con google ?
    http://www.dotnetfunda.com/forums/show/3421/how-to-use-vbnet-insert-image-into-word-document
  • Re: Esportare immagini da vb a word

    Ti ringrazio per avermi risposto, in realtà si ho cercato senza sosta su google, ma purtroppo senza successo.
    Ad ogni modo ho provato ad usare la guida che mi hai linkato, però ho alcuni problemi.

    Imports System.Configuration
    Imports System.IO
    Imports System.Data.OleDb
    Imports System.IO.File
    Imports word = Microsoft.Office.Interop.Word
    Imports System.Drawing
    Imports Spire.Doc --> mi dice che non riesce a trovarlo, idem per la voce sottostante
    Imports Spire.Doc.Documents

    Dim testo As word.Application
    Dim pagina As word.Document

    testo = CreateObject("word.application")
    testo.Visible = True
    pagina = testo.Documents.Add

    Dim sezione As Section = pagina.Addsection()
    Dim paragrafo As paragraph = section.AddParagraph()

    paragrafo.Format.HorizontalAlignment = Spire.Doc.Documents.HorizontalAlignment.Left
    paragrafo.AppendPicture(cad.PictureBox1)

    questo è il codice che ho usato, mi da problemi quando vado a definire la sezione ed il paragrafo.

    nell'esempio va a prendere un'immagine da un percorso esterno, nel mio caso l'immagine è già presente nel programma, io devo solo farla riportare nel file word.

    Riesci a spiegarmi come sistemare il codice affinché funzioni?
  • Re: Esportare immagini da vb a word

    Spire.Doc è una libreria che devi prima installare e poi referenziare nel tuo progetto.
    Ovvio che se non la installi ti dà problemi nell'IMPORT
    https://www.e-iceblue.com/Introduce/free-doc-component.html
  • Re: Esportare immagini da vb a word

    Sempre dal link indicato, senza bisogno di librerie aggiuntive
    Dim paragrafo As paragraph = section.AddParagraph()
    paragrafo.InlineShapes.AddPicture(FileName:="F:\Documenti\Immagini\pippo.jpg",
            LinkToFile:=False, SaveWithDocument:=True)
  • Re: Esportare immagini da vb a word

    Ho ancora qualche problema a far funzionare il codice, riposto esattamente quello che ho scritto.

    Imports System.Configuration
    Imports System.IO
    Imports System.Data.OleDb
    Imports System.IO.File
    Imports word = Microsoft.Office.Interop.Word
    Imports System.Drawing

    Dim testo As word.Application
    Dim pagina As word.Document

    testo = CreateObject("word.application")
    testo.Visible = True
    pagina = testo.Documents.Add

    Dim sezione As Section = pagina.Addsection() --> mi dice che section non è definito, come posso fare a definirlo?
    Dim paragrafo As paragraph = section.AddParagraph() --> come sopra, non è definito nemmeno paragraph

    paragrafo.InlineShapes.AddPicture(FileName:="F:\Documenti\Immagini\pippo.jpg",
    LinkToFile:=False, SaveWithDocument:=True)


    Vi ringrazio per l'aiuto che riuscirete a darmi.
  • Re: Esportare immagini da vb a word

    Come hai definito
    Dim testo As word.Application
    Dim pagina As word.Document
    anche paragrafo e sezione devono essere definiti
    Dim Paragrafo As Word.Paragraph
    Dim sezione As Word.Section
  • Re: Esportare immagini da vb a word

    Sono riuscito a far inserire l'immagine in un file word, ho usato il seguente codice:
    Dim testo As word.Application
    Dim pagina As word.Document
    Dim img As word.InlineShape
    
    
            testo = CreateObject("word.application")
            testo.Visible = True
            pagina = testo.Documents.Add
    
            img = pagina.Shapes.AddPicture(FileName:="B:\Pictures\25.jpg", LinkToFile:=False,
                         SaveWithDocument:=True, Left:=50, Top:=50, Width:=300, Height:=200)
    però appena carica l'immagine il programma va in crash e genera un errore



    Qualcuno sa come risolverlo?
  • Re: Esportare immagini da vb a word

    Devi aggiungere il paragrafo
            Dim testo As Word.Application
            Dim pagina As Word.Document
            Dim Paragrafo As Word.Paragraph
            testo = CreateObject("word.application")
            testo.Visible = True
            pagina = testo.Documents.Add
            Paragrafo = pagina.Content.Paragraphs.Add
            Paragrafo.Range.InlineShapes.AddPicture(FileName:="B:\Pictures\25.jpg",
            LinkToFile:=False, SaveWithDocument:=True)
  • Re: Esportare immagini da vb a word

    Ti ringrazio, funziona perfettamente.

    ho solo un paio di quesiti ulteriori:

    1- se l'immagine invece di essere su un percorso fisico del computer fosse già nel programma all'interno di una picturebox come faccio per inserirla nel file word?

    2- quando viene inserita l'immagine, anche se è la prima istruzione che esegue il programma, viene spostata dopo il testo, come faccio a far si che una volta inserita l'immagine il cursore vada avanti e inserisca il testo dopo l'immagine e non prima?
  • Re: Esportare immagini da vb a word

    Una ricerca con google ??
    https://stackoverflow.com/questions/33644422/how-to-insert-images-and-text-into-word-document
    https://stackoverflow.com/questions/16538601/how-to-insert-image-object-as-picture-in-word-document
  • Re: Esportare immagini da vb a word

    In realtà ho visto quegli articoli, però non riesco a farli funzionare, affrontiamone uno alla volta, scrivere dopo un'immagine:

    ho usato il seguente codice:
      Dim testo As word.Application
            Dim pagina As word.Document
            Dim Paragrafo As word.Paragraph
            Dim oRng As word.Range
            testo = CreateObject("word.application")
            testo.Visible = True
            pagina = testo.Documents.Add
            Paragrafo = pagina.Content.Paragraphs.Add
            Paragrafo.Range.InlineShapes.AddPicture(FileName:="B:\Pictures\25.jpg",
            LinkToFile:=False, SaveWithDocument:=True)
    
            oRng = Paragrafo.Range
            oRng.Collapse(word.WdCollapseDirection.wdCollapseStart)
            oRng = Paragrafo.Range
            oRng.InsertAfter(vbCrLf)
            oRng.Collapse(word.WdCollapseDirection.wdCollapseEnd)
            oRng.Text = "Picture no " & vbCrLf	--> è l'unica scritta che viene inserita sotto l'immagine, tutte le altre invece no, vengono inserite a monte e spostano l'immagine verso il basso
            oRng.Font.Name = "Arial"
            oRng.Font.Size = 14
            Paragrafo.Range.InsertParagraphAfter()
            oRng.Collapse(word.WdCollapseDirection.wdCollapseEnd)
    come si può risolvere?
  • Re: Esportare immagini da vb a word

    Se dopo aver inserito l'immagine inserisci vbCrLf come puoi pretendere di scriverci accanto ?
    inoltre perché 2 volte oRng = Paragrafo.Range ?
    Mi sembra che tu incolli a caso
  • Re: Esportare immagini da vb a word

    Crossposting

    https://www.hwupgrade.it/forum/showthread.php?t=289470
Devi accedere o registrarti per scrivere nel forum
13 risposte