以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]word报表中图片问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=104763)

--  作者:lzzhx
--  发布时间:2017/8/4 15:44:00
--  [求助]word报表中图片问题
请教老师:
        想在word报表中由几个单元格合并成的一个照片框中放置一个图片,并进行比例缩放
下面代码请老师看看有没有问题,给优化一下。现在照片框的宽度和高度是写死了,如何能用代码获取照片框的宽度和高度值?

Dim file As String = ProjectPath & "RemoteFiles\\" & tb.Current("照片")
Dim img As image = getImage(file)
Dim ZPwidth As Integer = img.width  \'照片原始宽度  像素
Dim ZPheight As Integer = img.height  \'照片原始高度  像素
Dim Docwidth As Integer = 200   \'432  \'模板照片框宽度  像素
Dim Docheight As Integer = 150   \'336 \'模板照片框高度  像素
Dim bl,Wbl,Hbl As Double  \'原始图片像素和模板照片框比例
Wbl = ZPwidth/Docwidth
Hbl = ZPheight/Docheight
Dim width,height As Integer
If ZPwidth <= Docwidth AndAlso ZPheight <= Docheight Then
    width = ZPwidth
    height = ZPheight
ElseIf ZPwidth > Docwidth AndAlso ZPheight <= Docheight Then
    width = ZPwidth
    height = Cint(ZPheight/Wbl)
ElseIf ZPwidth <= Docwidth AndAlso ZPheight > Docheight Then
    width = Cint(ZPwidth/Hbl)
    height = Docheight
ElseIf ZPwidth > Docwidth AndAlso ZPheight > Docheight Then
    If Wbl >= Hbl Then
        width = Cint(ZPwidth/Wbl)
        height = Cint(ZPheight/Wbl)
    Else
        width = Cint(ZPwidth/Hbl)
        height = Cint(ZPheight/Hbl)
    End If
End If
wrt.ReplaceWithImage("Tihuan照片",file, width, height)
[此贴子已经被作者于2017/8/4 15:45:27编辑过]

--  作者:有点甜
--  发布时间:2017/8/4 16:01:00
--  

指定宽度或者指定高度,另一个弄成-1,就自动按比例的了

 

http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=101165&skin=0

 


--  作者:lzzhx
--  发布时间:2017/8/4 16:11:00
--  
能用代码获取照片框的宽度和高度值吗?

后期若修改了模板中的照片框的大小,只能在程序中再指定吗?

--  作者:有点甜
--  发布时间:2017/8/4 16:45:00
--  
以下是引用lzzhx在2017/8/4 16:11:00的发言:
能用代码获取照片框的宽度和高度值吗?

后期若修改了模板中的照片框的大小,只能在程序中再指定吗?

 

你为什么不直接在设计模板的时候指定宽度或者高度呢?如

 

[&&图片.jpg, 100,-1]

[&文件路径,-1,100]

 

无法获取文本框宽高,而且,你模板的文本框位置也有可能改变。


--  作者:lzzhx
--  发布时间:2017/8/4 16:56:00
--  
100是像素值 还是 磅值?
关键是有的图片比较宽,要以宽度缩放填充,而有的图片比较窄,要以高度缩放填充,要如何判断?

--  作者:lzzhx
--  发布时间:2017/8/4 17:08:00
--  
搞定了

Dim Docwidth As Integer = 200   \'432  \'模板照片框宽度  像素
Dim Docheight As Integer = 150   \'336 \'模板照片框高度  像素

把上面的像素值要换算成磅值