以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]利用GDI+可否实现字宽系数的调整  (http://www.foxtable.com/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
    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
    e.text = ""
    Dim size = g.MeasureString(msg, fnt, e.width)
    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


--  作者: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