以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]利用GDI+可否实现字宽系数的调整 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=135315) |
-- 作者:ajie5211 -- 发布时间:2019/5/23 14:20:00 -- [求助]利用GDI+可否实现字宽系数的调整 现在手上一个要求是,文字填充到单元格,字高不变,但宽度要自适应,目前发现字宽系数是无法设置的,哪如何来实现把文字先转成图片,然后单元格绘图把文字图片填充进来,填充时,高度不变,宽度按单元格的来? |
-- 作者:ajie5211 -- 发布时间:2019/5/23 15:22:00 -- 自己顶一下,还请版主出手。 |
-- 作者:有点甜 -- 发布时间:2019/5/23 15:37:00 -- 没看懂为什么要怎样做,输入两个字,那就把字变形拉宽?输入10个字,就缩小?
|
-- 作者:ajie5211 -- 发布时间:2019/5/23 15:40:00 -- 字体总长度不大于单元格时,字体不拉宽,输入10字,字体总长度大于单元格长度时,需要缩小让字体能显示全,但不可以换行,字高不变。 |
-- 作者:有点甜 -- 发布时间:2019/5/23 16:00:00 -- 参考
If e.Col.name = "第一列" AndAlso e.text > "" Then |
-- 作者:ajie5211 -- 发布时间:2019/5/23 16:55:00 -- 搞定了,谢版主。 If e.Col.name = "第一列" AndAlso e.text > "" Then Dim g As Graphics = basemainform.creategraphics Dim fnt As New Font("宋体",9) Dim msg As String = e.text Dim sf As new StringFormat sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Center \'Dim size = g.MeasureString(msg, fnt, e.width) Dim size = g.MeasureString(msg, fnt) If e.width < size.width Then e.text = "" Dim bmp As new bitmap(size.width, e.height) g = Graphics.FromImage(bmp) g.DrawString(msg,fnt,Brushes.black, new Rectangle(0, 0, size.width+1, e.height), sf) e.graphics.DrawImage(bmp,new Rectangle(e.x, e.y, e.width, e.height)) End If End If
|
-- 作者:ajie5211 -- 发布时间:2019/5/30 17:45:00 -- 版主,专业报表中,这个是怎么实现的,整了一下午没有搞定。比如字高12,宽度大于70mm时图片就要缩放,高度不变,但宽度为70. |
-- 作者:有点甜 -- 发布时间:2019/5/30 19:38:00 -- 直接设置图片的宽度和拉伸属性,即可
http://www.foxtable.com/webhelp/scr/1182.htm
|