Есть ли способ добавить картинку, которая пропорционально ограничена определенной областью? Мне нужно изменить программу, которую я написал несколько лет назад, и заказчик предоставляет мне размеры изображений, которые повсюду! Хуже того, похоже, что мы сами манипулируем имиджем. Я не вижу ничего в документах , которые выделяются этим, так что я здесь! Я понимаю, что есть параметры объекта .Height
и .Width
, но, учитывая текущую поставку изображений, я надеюсь избежать написания кода, который это решает. Я также надеюсь не добавлять больше библиотек. Что еще хуже, я могу сделать это в ImageMagick, но даже в этом случае до сих пор нет объяснения, почему изображение размером 300x300 будет занимать 1/4 листа. Исходное изображение было 300x100 и отлично помещалось в заголовке.
Try
'Open the template
objDoc = objWordApp.Documents.Open(appPath & "\PackListTemplate.dotm", [ReadOnly]:=True)
'set word document as active
objDoc = objWordApp.ActiveDocument
Using conn = New SqlConnection(My.Settings.ConnStr)
conn.Open()
Using cmd As New SqlCommand()
cmd.Connection = conn
cmd.CommandType = CommandType.Text
With objDoc
'get the image blob and store it as a file
'return the file path
Dim filePath As String = WriteImageFromDb()
'apply the filepath as the image header of the document
.PageSetup.DifferentFirstPageHeaderFooter = 0
.Sections(1).Headers(Word.WdHeaderFooterIndex.wdHeaderFooterPrimary).Shapes.AddPicture(filePath)
End With
End Using
End Using
Catch ex As Exception
Console.WriteLine(ex.Message)
Console.ReadLine()
Finally
'quit msWord
objWordApp.Quit()
'clear objWord object
If Not objWordApp Is Nothing Then objWordApp = Nothing
'close com objects on parent system
If Not objDoc Is Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDoc)
End If
If Not objWordApp Is Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(objWordApp)
End If
'If Not objTable Is Nothing Then objTable = Nothing
If Not objDoc Is Nothing Then objDoc = Nothing
If Not objWordApp Is Nothing Then objWordApp = Nothing
'exit application with exit code 0 (successful)
' Environment.Exit(0)
GC.Collect()
End Try
EDIT:
Я заметил в Intellisense, что есть свойство .WidthRelative
. Странно это не в документах, но не стоит удивляться. Я думаю, если я смогу получить размеры изображения, я смогу определить, какое значение применить к нему.