Foxtable(狐表)用户栏目专家坐堂 → 有没有办法 把专业报表生成的页面白色底 处理掉呢 让它在预览时成为透明图片


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

主题:有没有办法 把专业报表生成的页面白色底 处理掉呢 让它在预览时成为透明图片

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
有没有办法 把专业报表生成的页面白色底 处理掉呢 让它在预览时成为透明图片  发帖心情 Post By: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-04-30test05.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2020/5/1 10:04:56编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By: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() '预览

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点酸)我测试就是透明的:Dim doc As New P...  发帖心情 Post By:2020/5/2 18:00:00 [只看该作者]

谢谢  你的这个思路是直接将图片导入到专业报表中  然后再用专业报表生成图片 

图片点击可在新窗口打开查看此主题相关图片如下:123.png
图片点击可在新窗口打开查看

现在我想做的是 先生成专业报表,然后再把专业报表的的内容  叠加再图片上  不晓得有没有更好的办法呢?
[此贴子已经被作者于2020/5/2 18:00:27编辑过]

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


加好友 发短信
等级:超级版主 帖子:112380 积分:572162 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/5 11:54:00 [只看该作者]

专业报表保存后的图片无法透明,只能是直接在图片里自行绘制表格

 回到顶部