以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 有没有办法 把专业报表生成的页面白色底 处理掉呢 让它在预览时成为透明图片 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=149426) |
-- 作者:李孝春 -- 发布时间:2020/5/1 9:47:00 -- 有没有办法 把专业报表生成的页面白色底 处理掉呢 让它在预览时成为透明图片 有没有办法 把专业报表生成的页面白色底 处理掉呢 让它在预览时成为透明图片 不然遮挡了部分主图内容 当前代码如下: Dim doc As New PrintDoc \'定义一个报表 doc.PageSetting.Width = 100 \'纸张宽度为100毫米 doc.PageSetting.Height = 60 Doc.PageSetting.LeftMargin = 10 \'设置左边距 Doc.PageSetting.RightMargin = 10 \'设置右边距 Doc.PageSetting.TopMargin = 5 \'设置上边距 Doc.PageSetting.BottomMargin = 5 \'设置下边距 doc.AutoRotate = False \'禁止自动旋转打印内容 Dim rt As New prt.RenderTable() \'定义一个表格对象 rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中 rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中 rt.Cols(2).Style.TextAlignHorz = prt.AlignHorzEnum.Left \'所有文本内容靠左对齐 \'rt.Cols(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center \'唯独第一列内容居中 rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止被垂直分割 rt.Width = "Parent.Width" \'对象宽度等于页面宽度 rt.Height = "Parent.Height" \'对象高度等于页面高度 Dim rs As New prt.RenderText() \'定义一个文本对象 rs.Text = "照片音视频标签" \'设置文本对象的内容 rs.Style.Font = New Font("宋体", 14 , FontStyle.Bold) \'设置文本对象的字体 rs.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'文本内容水平居中 doc.Body.Children.Add(rs) \'将文本对象加入到表格中 doc.Body.Children.Add(rt) \'将表格对象加入到报表中 rt.Style.GridLines.All = New prt.LineDef \'将网格线类型设为默认类型 rt.Height = 40 \' rt.Rows.Count = 5 rt.Cols.Count = 2 rt.Cols(0).Width = 20 rt.Cells(0,0).text = "时间" rt.Cells(0,1).text = Format(Date.today ,"yyyy年MM月dd日") rt.Cells(1,0).text = "地点" rt.Cells(1,1).text = "珠藏" rt.Cells(2,0).text = "人物" rt.Cells(2,1).text ="曹刚" rt.Cells(3,0).text = "说明" rt.Cells(3,1).text = "2020年4月30日,曹刚到珠藏镇新兴村开展生态环境保护工作调研!" rt.Cells(3,1).Style.TextAlignHorz = prt.AlignHorzEnum.Left rt.Cells(4,0).text = "作者" rt.Cells(4,1).text ="曹刚" rt.Rows(3).Height=20 \'doc.Preview doc.SaveImage("c:\\data\\abc.png") Dim imgback As image = getimage(ProjectPath & "Images\\兰花.png") \'主图 Dim bmp As new bitmap(imgback.width, imgback.height) Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(bmp) g.DrawImage(imgback, 0, 0, imgback.Width, imgback.Height) \'绘制主图\' Dim img = getimage("c:\\data\\abc_page1.png") Dim x As Integer = imgback.Width - 200 \'二维码图距离主图左边距 Dim y As Integer = imgback.height - 160 \'二维码图距离主图上边距 g.DrawImage(img, x, y, 200, 160) \'合并图片 bmp.Save(ProjectPath & "Images\\" & Date.Today & "test05.jpg") \'保存 bmp.dispose \'释放资源\' 实现的效果图如下:
[此贴子已经被作者于2020/5/1 10:04:56编辑过]
|
-- 作者:有点酸 -- 发布时间:2020/5/1 19:44:00 -- 我测试就是透明的: Dim doc As New PrintDoc \'定义一个报表对象 Dim rm As New prt.RenderImage \'定义一个图片对象 rm.Image = GetImage("EP1.BMP") \'设置图片 rm.Style.Borders.All = New prt.Linedef(1, Color.Red) \'设置边框 doc.Body.Children.Add(rm) \'将图片对象加入报表 Dim rt As New prt.RenderTable() \'定义一个表格对象 rt.Style.GridLines.All = New prt.Linedef \'设置网格线 \'下面的代码向表格中填入值 For r As Integer = 0 To 5 For c As Integer = 0 To 5 Dim rx As New prt.RenderText \'定义一个文本对象 rx.Text = r & "," & c \'为文本对象设置内容 rt.Cells(r, c).RenderObject = rx \'将文本对象放置在单元格中 Next Next rt.x = 50 rt.y = 50 doc.Body.Children.Add(rt) \'将文本对象加入到报表 Doc.Preview() \'预览 |
-- 作者:李孝春 -- 发布时间:2020/5/2 18:00:00 -- 回复:(有点酸)我测试就是透明的:Dim doc As New P... 谢谢 你的这个思路是直接将图片导入到专业报表中 然后再用专业报表生成图片 现在我想做的是 先生成专业报表,然后再把专业报表的的内容 叠加再图片上 不晓得有没有更好的办法呢?
[此贴子已经被作者于2020/5/2 18:00:27编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/5/5 11:54:00 -- 专业报表保存后的图片无法透明,只能是直接在图片里自行绘制表格 |