2014-10-01 261 views
2

嗨,我希望从图片框插入图像到.doc文件。我能够将图像存入文件,并且可以正确保存,但是我无法处理图像的位置。我希望将图像放在模板.doc中存在的表格中,但它总是在第一个表格的第一个单元格中结束。将图片插入word文档

Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click 
     Dim objWordApp As Word.Application 
     objWordApp = New Word.Application 
     Dim objDoc As Word.Document 

     objWordApp.Documents.Open("" & Form2.TextBox1.Text & "\capatext\temlate.doc") 
     objDoc = objWordApp.ActiveDocument 

     'Open an existing document. 


     objDoc.Content.Find.Execute(FindText:="<<srce>>", _ 
ReplaceWith:=Form1.TextBox15.Text, _ 
Replace:=Word.WdReplace.wdReplaceAll) '''''' 
     Dim oldbitmap As Bitmap = New Bitmap(Form1.PictureBox1.Image) 
     Dim newbitmap As Bitmap = New Bitmap(CInt(100%), CInt(100%)) 
     Dim g As Graphics = Graphics.FromImage(newbitmap) 
     g.DrawImage(oldbitmap, 0, 0, newbitmap.Width, newbitmap.Height) 
     Dim pathToSavedImage As String = "" & Form2.TextBox1.Text & "\capatext\tempimg1.jpg" 
     newbitmap.Save(pathToSavedImage) 
     oldbitmap.Dispose() 
     newbitmap.Dispose() 
     g.Dispose() 

     Dim ObjPic As Microsoft.Office.Interop.Word.InlineShape = objDoc.InlineShapes.AddPicture(pathToSavedImage) 
     Dim oldCopy As String 
     oldCopy = ("" & Form2.TextBox1.Text & "\" & Form1.TextBox1.Text & ".doc") 
     If System.IO.File.Exists(oldCopy) = True Then 
      System.IO.File.Delete(oldCopy) 
     ElseIf System.IO.File.Exists(oldCopy) = False Then 
     End If 
     objWordApp.Quit() 
     objWordApp = Nothing 
     Timer1.Start() 
    End Sub 
+0

也许你可以简化您的代码段一点,所以这是它更容易找出什么地方出了错.... – 2014-10-01 12:30:39

+0

好这样做我删除所有这些都不相关。 – user1362134 2014-10-01 12:55:49

+0

它每次都将图片放在文档的开头。 – user1362134 2014-10-01 12:56:09

回答

1

你好,这里是我工作的代码

If Form1.CheckBox4.CheckState.Equals(CheckState.Checked) Then 

      Dim oldbitmap As Bitmap = New Bitmap(Form1.PictureBox1.Image) 
      Dim newbitmap As Bitmap = New Bitmap(CInt(100%), CInt(100%)) 
      Dim g As Graphics = Graphics.FromImage(newbitmap) 
      g.DrawImage(oldbitmap, 0, 0, newbitmap.Width, newbitmap.Height) 
      Dim pathToSavedImage As String = "" & Form2.TextBox1.Text & "\capatext\tempimg1.jpg" 
      newbitmap.Save(pathToSavedImage) 

      oldbitmap.Dispose() 
      newbitmap.Dispose() 
      g.Dispose() 

      objDoc.Tables(1).Cell(4, 1).Range.InlineShapes.AddPicture(_ 
      FileName:=pathToSavedImage, LinkToFile:=False) 
     Else 
     End If 
     Dim oldCopy As String 
     oldCopy = ("" & Form2.TextBox1.Text & "\" & Form1.TextBox1.Text & ".doc") 
     If System.IO.File.Exists(oldCopy) = True Then 
      System.IO.File.Delete(oldCopy) 
     ElseIf System.IO.File.Exists(oldCopy) = False Then 
     End If 
     objWordApp.Documents.Item(1).Save() 
     objWordApp.Quit() 
     objWordApp = Nothing 

     Timer1.Start()