以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于Excel报表中图片列的大小  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=75434)

--  作者:lake163
--  发布时间:2015/10/8 14:52:00
--  关于Excel报表中图片列的大小

Excel 报表中图片列引用方法为:

[&列名,X,Y,Width,Height]

其中Width,Height 的单位均为像素。

出现一个问题:在不同显示分辨率的电脑上,打印出的照片大小是不一致的。在一台电脑上调试好后,在低分辨率电脑上就会扩大,在高分辨率电脑上则缩小。

请问如何解决?

 


此主题相关图片如下:qq截图20151006103857.png
按此在新窗口浏览图片

[此贴子已经被作者于2015/10/8 14:52:50编辑过]

--  作者:大红袍
--  发布时间:2015/10/8 14:57:00
--  

 这个控制不了的,高分辨率看起来自然小,设计尺寸根据1024*768设计宽高即可。


--  作者:lake163
--  发布时间:2015/10/8 15:14:00
--  

不单纯是显示的问题,关键是打印出来效果也不一样啊!

[此贴子已经被作者于2015/10/8 15:14:49编辑过]

--  作者:大红袍
--  发布时间:2015/10/8 15:15:00
--  

那你就不要固定大小直接用图片本来的大小。


--  作者:lake163
--  发布时间:2015/10/8 15:46:00
--  
图片本来的大小就不一致啊?


--  作者:大红袍
--  发布时间:2015/10/8 15:47:00
--  
那没办法
--  作者:lake163
--  发布时间:2015/10/8 16:11:00
--  
不管怎样,还是要谢谢的。
--  作者:lake163
--  发布时间:2015/10/10 13:38:00
--  
受帮助中一些内容的启发,对于EXCEL报表中,图片的大小与分辨率的的关系,有这样一个思路。
1、获取当前分辨率:dim fbl as Integer = SysInfo.ScreenWidth
2、计算当前分辨率与设计时分辨率的比例关系 : dim bl = fbl/1366      \'设计时分辨率为1366
3、根据比例,替换图片引用表达式中的宽和高。

以上方法,代码没有问题,图片能正常显示,但仍然不能获得满意的大小。
图片的大小与分辨率好象没有线性关系,假如1366分辨下宽度为145,那么 1900(22寸显示器)、1600(13.3寸显示器)分辨下合理的值均为170。
请问是什么原因?  不会与显示器的DPI有关吗?


以下逐个定义的方式虽然能够应付,但比较麻烦:(1280以下分辨率,合适的数值还未测试)
dim kd,gd   as Integer
If SysInfo.ScreenWidth = 1900
    kd = 170
    gd = 227
Else If SysInfo.ScreenWidth = 1600
    kd = 170
    gd = 227
Else If SysInfo.ScreenWidth = 1366
    kd = 145
    gd = 181
Else If SysInfo.ScreenWidth = 1280
    kd = 130
    gd = 173
Else If SysInfo.ScreenWidth > 1024
    kd = 110
    gd = 147
End If

[此贴子已经被作者于2015/10/10 13:40:52编辑过]

--  作者:大红袍
--  发布时间:2015/10/11 11:22:00
--  
显示器pdi要一致
--  作者:lake163
--  发布时间:2015/10/11 12:14:00
--  
很奇怪报表是用来打印的,其中图片大小为啥要用显示像素来计算?