以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]报表表格高度的问题? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=159184) |
-- 作者:2425004926 -- 发布时间:2020/12/16 10:12:00 -- [求助]报表表格高度的问题? 如何能求出表格第二行的高度?我用文字加一行,再加一行也可以试验出来(比如1.3行高度多增一行是0.7,1.5行高度多增一行是0.8),用文本字体格式算出来的方法得出的数据不是很准确(h2),能否有更快的方法? Dim doc As New PrintDoc \'定义一个报表
doc.PageSetting.Landscape = True \'横向打印 Doc.PageSetting.LeftMargin = 25 \'设置左边距 Doc.PageSetting.RightMargin = 20 \'设置右边距 Doc.PageSetting.TopMargin = 20 \'设置左边距 Doc.PageSetting.BottomMargin = 20 \'设置左边距 Dim rt As New prt.RenderTable() \'定义一个表格对象 rt.Style.GridLines.All = New prt.LineDef \'将网格线类型设为默认类型 rt.Width = 100 \'表宽为150毫米 Dim rx2 As New prt.RenderText \'创建一个文本 rx2.Width = 100 rx2.Text = "以及科学技术的发展,短视频术的发展,短视术的发展,短发展,短视短视术的发展,短发展,短视频频术的发展发展,短视术的发展发展,短视术的发展,短视视" rx2.Style.Font = New Font("宋体", 15, FontStyle.Bold) \'设置字体如果不设置字体,会出现导出PDF乱码 rx2.Style.LineSpacing = 150 \'1.5倍行距 doc.Body.Children.Add(rt) \'将表格对象加入到报表中 rt.Rows.Count = 2 \'设置行数 rt.Rows(0).Height = 134 rt.Cols.Count = 1 \'设置列数 rt.Cells(1,0).RenderObject = rx2 Dim g As Graphics = basemainform.CreateGraphics g.PageUnit = GraphicsUnit.Millimeter \'设置计算打印高度时的单位为毫米,和专业报表的单位一致 Dim size As Object size = g.MeasureString(rx2.Text, rx2.Style.Font, 100) \'文本/样式/宽度 Dim h2 As Integer = size.height Output.Show(rt.Height) Output.Show(h2) Doc.Preview() \'预览报表 |
-- 作者:有点蓝 -- 发布时间:2020/12/16 10:17:00 -- 只能这样,没有其它办法 |
-- 作者:2425004926 -- 发布时间:2020/12/16 11:54:00 -- 好的,谢谢! |
-- 作者:2425004926 -- 发布时间:2020/12/17 9:22:00 -- 有没有方法返回文本rx2的行数? |
-- 作者:有点蓝 -- 发布时间:2020/12/17 9:27:00 -- MeasureString计算一个字符的高度,就是1行的高度,然后在计算rx2的整个高度,除以一行的高度就是行数 |
-- 作者:2425004926 -- 发布时间:2020/12/17 9:59:00 -- 明白,谢谢!
|