Foxtable(狐表)用户栏目专家坐堂 → 专业报表WIdth值固定,text超长字号能否自动变小?


  共有3781人关注过本帖树形打印复制链接

主题:专业报表WIdth值固定,text超长字号能否自动变小?

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/2/12 17:18:00 [显示全部帖子]

 不可以,你可以判断字符的长度,对应的设置字体大小。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/2/12 17:27:00 [显示全部帖子]

Dim doc As New PrintDoc '定义一个报表
Dim rt As New prt.RenderText '定义一个文本对象
rt.Text = "Hello Foxtable" '设置文本对象的内容
rt.Style.Borders.All = New prt.Linedef(0.3, Color.Red) '设置边框

Dim g As Graphics = basemainform.CreateGraphics
Dim size = g.MeasureString(rt.Text, rt.Style.Font)
msgbox(size.width/96*25.4)
msgbox(size.height/96*25.4)

rt.Width=20
doc.Body.Children.Add(rt) '将文本对象加入到报表
doc.Preview() '预览'


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/2/12 17:49:00 [显示全部帖子]

以下是引用unverse在2015/2/12 17:47:00的发言:
size.width/96*25.4 这个是计算 字符的长度嘛,如果width 的值小于这个数就会打不开是吧,

 

意思是。你可以设置文本的字体,直至其宽度在某个宽度范围内,即可。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/2/12 17:55:00 [显示全部帖子]

 

Dim doc As New PrintDoc '定义一个报表
Dim rt As New prt.RenderText '定义一个文本对象
rt.Text = "Hello Foxtable" '设置文本对象的内容
rt.Style.Borders.All = New prt.Linedef(0.3, Color.Red) '设置边框
rt.Width=20

Dim g As Graphics = basemainform.CreateGraphics
Dim size As Object
Dim fsize As Double = rt.Style.Font.Size
Dim fname As String  = rt.Style.Font.Name

size = g.MeasureString(rt.Text, new font(fname, fsize))
Do While (size.width/96*25.4) > rt.Width.Value
    fsize -= 0.5
    size = g.MeasureString(rt.Text,  new font(fname, fsize))
Loop

rt.Style.Font = new font(fname, fsize)
doc.Body.Children.Add(rt) '将文本对象加入到报表
doc.Preview() '预览'


 回到顶部