Я пробовал несколько разных решений, чтобы попытаться вставить изображение в шаблон документа.У меня была пара успехов, но не с желаемым эффектом.По сути, я просто пытаюсь вставить изображение в верхней части документа над всем другим содержимым.Изображение в лучшем случае должно переместить остальное содержимое вниз по странице, а не на что-либо сверху.
With objDoc
Dim filePath As String = Path.Combine(appPath, fileName)
If Not filePath = "" Then
Dim img As Image = Image.FromFile(filePath)
Dim imgX As Integer = img.Width
Dim imgY As Integer = img.Height
'insert picture here
End If
End With
Заменив приведенный выше комментарий следующим, я добился успеха ... вроде.Следующее вставит изображение в заголовок.Но изображение будет масштабироваться очень странным образом, независимо от определения параметров изображения.
.PageSetup.DifferentFirstPageHeaderFooter = True
.Sections(1).Headers(Word.WdHeaderFooterIndex.wdHeaderFooterPrimary).Shapes.AddPicture(
FileName:=filePath,
LinkToFile:=False,
SaveWithDocument:=True,
Left:=0,
Top:=0,
Width:=imgX,
Height:=imgY
).ConvertToInlineShape()
Ниже будет вставлено изображение под заголовком и над текстом.Попытка преобразовать его в линейную форму вызывает исключение.Предоставление холсту 0,0
начала в этом случае игнорирует поля шаблона и помещает изображение к левому краю листа.Даже если бы мне пришлось сдвинуть его вправо и заставить текст сместиться вниз, это все равно нежелательно, так как в верхней части слишком много пустого пространства.
Dim objCanvas As Word.Shape = objWordApp.ActiveDocument.Shapes.AddCanvas(Left:=0, Top:=0, Width:=imgX, Height:=imgY)
objCanvas.CanvasItems.AddPicture(FileName:=filePath, LinkToFile:=False, SaveWithDocument:=True)
Остальное из следующих попытокчто я обнаружил, просеивая через MSDN и различные другие выходы.Ни на одном из них вообще нет изображения.
'.InlineShapes.AddPicture(filePath, Type.Missing, Type.Missing, Type.Missing)
'Dim objRng As Word.Range = .Range()
'objRng.InlineShapes.AddPicture(filePath)
'Dim objInlineShape As Word.InlineShape = objWordApp.Selection.InlineShapes.AddPicture(
' FileName:=filePath,
' LinkToFile:=False,
' SaveWithDocument:=True
')
'objInlineShape.LockAspectRatio = Microsoft.Office.Core.MsoTriState.msoTrue
'objInlineShape.Width = imgX
'objInlineShape.Height = imgY
'.Application.Selection.InlineShapes.AddPicture(filePath)
'Dim objRng As Word.Range = .Sections(1).Range()
'objRng.InlineShapes.AddPicture(filePath)
'
'Dim objInlineShape As Word.InlineShape = .InlineShapes.AddPicture(filePath)
'Dim objShape As Word.Shape = objInlineShape.ConvertToShape()
'objDoc.Bookmarks.Item("\startofdoc").Range.InlineShapes.AddPicture(filePath)
Сам документ представляет собой всего лишь четыре таблицы с некоторым форматированием.Какого черта я делаю не так?