以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 专业报表生成PDF乱码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148545) |
-- 作者:hongsejiyi -- 发布时间:2020/4/9 20:19:00 -- 专业报表生成PDF乱码 升级到2020.04.10版本 试用了,专业报表生成PDF,出现的问题是:在命令窗口使用,结果正常,见附件图片1,但从网页方式浏览,就出现乱码,见附件图片2 代码如下: 命令窗口代码: Dim doc As New PrintDoc \'定义一个报表 Dim rt As New prt.RenderTable() \'定义一个表格对象 Dim rx As New prt.RenderText \'定义一个文本对象 Dim CurRow As Row = Tables("ypfk").Current \'加入标题 rx.text = "疫情防控体温上报报表" rx.Style.FontBold = True \'字体加粗 rx.Style.FontSize = 18 \'大体大小为16磅 rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中排列 rx.Style.Spacing.Bottom = 3 \'和下面的对象(表格)距离3毫米 doc.Body.Children.Add(rx) \'加入到报表中 \'指定行数?列数?列宽?行高 rt.Rows.Count = 4 \'设置总行数 rt.Cols.Count = 5 \'设置总列数 rt.Height = 150 \'设置表格的高度为80毫米 rt.Rows(3).Height = 50 \'设置第7行(显示备注的行)的高度为40毫米,剩余高度被平均分排到其他行 rt.Rows(2).height =50 rt.Cols(0).Width = 24 \'设置前四列的宽度,剩余的宽度被分配给5列(显示图片的那列) rt.Cols(1).Width = 35 rt.Cols(2).Width = 24 rt.Cols(3).Width = 40 \'设置合并单元格 rt.Cells(0,4).SpanRows = 2 \'第1行第5个单元格向下合并6行(用于显示照片) rt.Cells(2,1).SpanCols =4 \'第5行第2个单元格向右合并3列(用于显示地址) rt.Cells(3,1).SpanCols = 4 \'第7行第1个单元格向右合并5列(用于显示备注) \'设置表格样式 rt.CellStyle.Spacing.All = 1 \'单元格内容缩进1毫米 rt.Style.GridLines.All = New prt.Linedef \'设置网格线 rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中 rt.Rows(3).Style.TextAlignVert = prt.AlignVertEnum.Top \'唯独第7行是备注,内容靠上对齐 \'下面很简单,指定每一个单元格的内容 rt.Cells(0,0).Text= "审核人" rt.Cells(0,1).Text = CurRow("第二列") rt.Cells(0,2).Text= "时间" rt.Cells(0,3).Text = CurRow("第一列") rt.Cells(1,0).Text= "处室" rt.Cells(1,1).Text = CurRow("第三列") rt.Cells(1,2).Text= "未上报人数" rt.Cells(1,3).Text = CurRow("wbrs") rt.Cells(2,0).Text= "未上报人员" rt.Cells(2,1).Text = CurRow("第五列") rt.Cells(3,0).Text = "已经上报人员" rt.cells(3,1).text= CurRow("第四列") rt.Cells(0,4).Image = GetImage("chw.png") doc.Body.Children.Add(rt) \'将表格对象加入到报表中 Doc.Preview 网页函数: Dim e As RequestEventArgs= args(0) e.Resp Select Case e.Path Case "yq2020" Dim doc As New PrintDoc \'定义一个报表 Dim rt As New prt.RenderTable() \'定义一个表格对象 Dim rx As New prt.RenderText \'定义一个文本对象 Dim CurRow As Row = Tables("ypfk").Current \'加入标题 rx.text = "疫情防控体温上报报表" rx.Style.FontBold = True \'字体加粗 rx.Style.FontSize = 18 \'大体大小为16磅 rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中排列 rx.Style.Spacing.Bottom = 3 \'和下面的对象(表格)距离3毫米 doc.Body.Children.Add(rx) \'加入到报表中 \'指定行数?列数?列宽?行高 rt.Rows.Count = 4 \'设置总行数 rt.Cols.Count = 5 \'设置总列数 rt.Height = 150 \'设置表格的高度为80毫米 rt.Rows(3).Height = 50 \'设置第7行(显示备注的行)的高度为40毫米,剩余高度被平均分排到其他行 rt.Rows(2).height =50 rt.Cols(0).Width = 24 \'设置前四列的宽度,剩余的宽度被分配给5列(显示图片的那列) rt.Cols(1).Width = 35 rt.Cols(2).Width = 24 rt.Cols(3).Width = 40 \'设置合并单元格 rt.Cells(0,4).SpanRows = 2 \'第1行第5个单元格向下合并6行(用于显示照片) rt.Cells(2,1).SpanCols =4 \'第5行第2个单元格向右合并3列(用于显示地址) rt.Cells(3,1).SpanCols = 4 \'第7行第1个单元格向右合并5列(用于显示备注) \'设置表格样式 rt.CellStyle.Spacing.All = 1 \'单元格内容缩进1毫米 rt.Style.GridLines.All = New prt.Linedef \'设置网格线 rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中 rt.Rows(3).Style.TextAlignVert = prt.AlignVertEnum.Top \'唯独第7行是备注,内容靠上对齐 \'下面很简单,指定每一个单元格的内容 rt.Cells(0,0).Text= "审核人" rt.Cells(0,1).Text = CurRow("第二列") rt.Cells(0,2).Text= "时间" rt.Cells(0,3).Text = CurRow("第一列") rt.Cells(1,0).Text= "处室" rt.Cells(1,1).Text = CurRow("第三列") rt.Cells(1,2).Text= "未上报人数" rt.Cells(1,3).Text = CurRow("wbrs") rt.Cells(2,0).Text= "未上报人员" rt.Cells(2,1).Text = CurRow("第五列") rt.Cells(3,0).Text = "已经上报人员" rt.cells(3,1).text= CurRow("第四列") rt.Cells(0,4).Image = GetImage("chw.png") doc.Body.Children.Add(rt) \'将表格对象加入到报表中 e.WriteReportAsPDF(doc) Case Else e.AsReportServer("\\") End Select e.Handled = True \'通知系统异步函数执行完毕,可以关闭信道 [此贴子已经被作者于2020/4/9 20:20:57编辑过]
|
-- 作者:baicaocao -- 发布时间:2020/4/9 20:28:00 -- 设置字体为微软雅黑 |
-- 作者:程兴刚 -- 发布时间:2020/4/9 20:31:00 -- 报表代码中明确指定字体为windows系统里面包含的字体! |
-- 作者:有点蓝 -- 发布时间:2020/4/9 20:44:00 -- rx.font = new font("宋体",18) \'或者其它系统字体 rx.text = "疫情防控体温上报报表" rx.Style.FontBold = True \'字体加粗
|
-- 作者:hongsejiyi -- 发布时间:2020/4/9 23:05:00 -- rx.style.font = new Font("宋体",18) 这样就可以了
|
-- 作者:ouyangfenghuan -- 发布时间:2021/5/27 20:38:00 -- mark |