Foxtable(狐表)用户栏目专家坐堂 → [报表] 专业报表图片及水印问题


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

主题:[报表] 专业报表图片及水印问题

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
[报表] 专业报表图片及水印问题  发帖心情 Post By:2011/12/9 13:49:00 [只看该作者]

我想在专业报表中加入一图片,图片可分为如图所示四部分.

现在的问题是:分别加入四部分好,还是一次性把此图片作为水印好?把整张图片作水印,有时可见图片,有时预览不到,苦恼?



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



Dim doc As New PrintDoc '定义一个报表对象
Doc.PageSetting.LeftMargin = 0 '设置左边距
Doc.PageSetting.RightMargin=0
Doc.PageSetting.TopMargin = 0
Doc.PageSetting.BottomMargin = 0

Dim rm As New prt.RenderImage '定义一个图片对象
rm.Image = GetImage("水印.JPG") '设置图片
rm.Width = "Parent.Width" '宽度等于页面宽度
rm.Height ="Parent.Height" 
rm.Style.ImageAlign.StretchHorz = False '禁止图片水平拉伸
Doc.WaterMark = rm
Doc.Preview() '预览





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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2011/12/9 13:53:00 [只看该作者]

是否和图片体积有关?

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/9 13:56:00 [只看该作者]

用四个图片也行。

 

另: 把整张图片作水印,有时可见图片,有时预览不到?

 

这个问题毫无规律可循吗?只是有时?

 


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2011/12/9 14:23:00 [只看该作者]

以下是引用狐狸爸爸在2011-12-9 13:56:00的发言:

用四个图片也行。

 

另: 把整张图片作水印,有时可见图片,有时预览不到?

 

这个问题毫无规律可循吗?只是有时?

 


1.一样的代码,下图我就预览不到!没什规律,就是开启多程序,后来就是关闭了其它程序也不行.



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

Dim doc As New PrintDoc '定义一个报表对象
Doc.PageSetting.LeftMargin = 0 '设置左边距
Doc.PageSetting.RightMargin=0
Doc.PageSetting.TopMargin = 0
Doc.PageSetting.BottomMargin = 0

Dim rm As New prt.RenderImage '定义一个图片对象
rm.Image = GetImage("000.JPG") '设置图片
rm.Width = "Parent.Width" '宽度等于页面宽度
rm.Height ="Parent.Height" 
rm.Style.ImageAlign.StretchHorz = False '禁止图片水平拉伸
Doc.WaterMark = rm
Doc.Preview() '预览



2. 还有如图片过大,如代码设置不当,如没有

rm.Width = "Parent.Width" '宽度等于页面宽度

rm.Height ="Parent.Height

预览不到不止,还要杀进程!


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/9 14:31:00 [只看该作者]

呵呵,可能水印的图片不能太大,我们检查一下看看。

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2011/12/9 14:40:00 [只看该作者]

以下是引用狐狸爸爸在2011-12-9 14:31:00的发言:
呵呵,可能水印的图片不能太大,我们检查一下看看。
似乎和图片格式有关:我试了BMP格式10M多也没问题,其他JPG,PNG,PDF格式的有些100KB多也不行!


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/9 14:41:00 [只看该作者]

收到。

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2011/12/9 16:32:00 [只看该作者]

Dim Ln1 As string = vbcrlf & vbcrlf

Dim doc As New PrintDoc '定义一个报表对象

Doc.PageSetting.LeftMargin = 0 '设置左边距
Doc.PageSetting.RightMargin=0
Doc.PageSetting.TopMargin = 0
Doc.PageSetting.BottomMargin = 0
Dim ra1,ra2,ra3,ra4 As New prt.RenderArea
Dim rm As New prt.RenderImage '定义一个图片对象
rm.Image = GetImage("ST21.JPG") '设置左侧图片
ra1.Width = 20 '宽度53毫米
ra1.Height = 300 '高度24毫米
ra1.Children.Add(rm)
doc.Body.Children.Add(ra1) '将图片对象加入报表
doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight

rm = New prt.RenderImage
rm.Image = GetImage("ST1.JPG") '设置页眉图片
ra2.Width = 188 '宽度53毫米
ra2.Height = 295 '高度24毫米

ra2.Style.Spacing.All = 5
ra2.Children.Add(rm)

Dim rt As New prt.RenderText '定义一个文本对象

rt.Text = Ln1 & "XXXX" '设置文本对象的内容
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
rt.Style.Font = New Font("Tahoma",20, FontStyle.Bold)
ra2.Children.Add(rt)

rt = New prt.RenderText
rt.Text =  "ABC" 
rt.Style.Font = New Font("Tahoma",11)
ra2.Children.Add(rt)

rt = New prt.RenderText
rt.Text =Ln1 &  "XXXXXX" 
rt.Style.Font = New Font("Tahoma",11, FontStyle.Bold)
ra2.Children.Add(rt)

Dim tb As New prt.RenderTable() '定义一个表格对象
ra2.Children.Add(tb) '将表格对象加入到报表中
tb.Style.GridLines.All = New prt.Linedef(Color.Gray)
tb.Width = 175 '表宽为150毫米
tb.Height = 20 '表高为150毫米
tb.Rows.Count = 2 '设置行数
tb.Cols.Count = 4 '设置列数
tb.Cols(0).Width = 35
tb.Cols(1).Width = 50
tb.Cols(2).Width = 30
tb.Cols(3).Width = 55

Dim Ls As String() = {"Accounts 賬目","From 由 To 至","Monthly 月租","Total 合計"}
For c As Integer = 0 To 3
    rt= New prt.RenderText '定义一个文本对象
    rt.Text = Ls(c) '为文本对象设置内容
    rt.Style.Font = New Font("Tahoma",11, FontStyle.Bold)
    tb.Cells(0, c).RenderObject = rt '将文本对象放置在单元格中
Next
tb.Rows(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '第一行内容水平居中
tb.Rows(0).Style.TextAlignVert = prt.AlignVertEnum.Center '第一行内容水平居中

Dim Ls3 As New List(of String)
Ls3.Add("Rental 租金")
Ls3.Add("01/12/2011-31/12/2011")
Ls3.Add("HK$888.00")
Ls3.Add("HK$888.00")
For c As Integer = 0 To 3
    rt = New prt.RenderText '定义一个文本对象
    rt.Text = Ls3(c) '为文本对象设置内容
    rt.Style.Font = New Font("Tahoma",11)
    tb.Cells(1, c).RenderObject = rt '将文本对象放置在单元格中
Next
tb.Rows(1).Style.TextAlignHorz = prt.AlignHorzEnum.Center '第一行内容水平居中
tb.Rows(1).Style.TextAlignVert = prt.AlignVertEnum.Center '第一行内容水平居中


rt = New prt.RenderText
rt.Text =Ln1 &"DEEDDSSS" 
rt.Style.Font = New Font("Tahoma",11, FontStyle.Bold)
ra2.Children.Add(rt)


rt = New prt.RenderText
rt.Text =Ln1 & "DDDDDDDDEEEEEEE"
rt.Style.Font = New Font("Tahoma",11)
ra2.Children.Add(rt)

rt = New prt.RenderText
rt.Text =Ln1 & Ln1 & "敬註:" & Ln1 & "6 Month (5% off) Prepayment , 1 Year (10% off) Prepayment"

rt.Style.Font = New Font("Tahoma",12, FontStyle.Bold)
ra2.Children.Add(rt)



rt = New prt.RenderText
rt.Text =Ln1 & Ln1 & "DEEDDXXXXXXXXXXXX"
rt.Style.Font = New Font("Tahoma",11)
ra2.Children.Add(rt)

rt = New prt.RenderText
rt.Text ="ggggggggggggggggggggggggggggggg"
rt.x=2
rt.y=230
rt.Style.Font = New Font("標楷體",12, FontStyle.Bold)
ra2.Children.Add(rt)

rm = New prt.RenderImage
rm.Image = GetImage("STt.JPG") '设置图片
rm.x=2
rm.y =267
ra2.Children.Add(rm)
doc.Body.Children.Add(ra2)



'设置水印
rm = New prt.RenderImage
rm.Image = GetImage("222.BMP") '设置图片
rm.x = 50
rm.y =100
rm.Style.ImageAlign.StretchHorz = True '禁止图片水平拉伸
Doc.WaterMark = rm'

rt =New prt.RenderText
rt.Text =""
rt.BreakAfter = prt.BreakEnum.Page

rm = New prt.RenderImage
rm.Image = GetImage("ST21.JPG") '设置左侧图片
ra3.Width = 20 '宽度53毫米
ra3.Height = 300 '高度24毫米
ra3.Children.Add(rm)
doc.Body.Children.Add(ra3) '将图片对象加入报表

Doc.Preview() '预览


以上代码正常:图片ST21占据第2页左侧.

如我想于第2页再加入 页眉图片,代码如何?

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2011/12/9 16:38:00 [只看该作者]

试来试去:要不第2 页上没有,要不重叠在第1页页眉上

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


加好友 发短信
等级:狐神 帖子:6885 积分:43595 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/12/9 16:39:00 [只看该作者]

以下是引用don在2011-12-9 16:32:00的发言:
Dim Ln1 As string = vbcrlf & vbcrlf

Dim doc As New PrintDoc '定义一个报表对象

Doc.PageSetting.LeftMargin = 0 '设置左边距
Doc.PageSetting.RightMargin=0
Doc.PageSetting.TopMargin = 0
Doc.PageSetting.BottomMargin = 0
Dim ra1,ra2,ra3,ra4 As New prt.RenderArea
Dim rm As New prt.RenderImage '定义一个图片对象
rm.Image = GetImage("ST21.JPG") '设置左侧图片
ra1.Width = 20 '宽度53毫米
ra1.Height = 300 '高度24毫米
ra1.Children.Add(rm)
doc.Body.Children.Add(ra1) '将图片对象加入报表
doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight

rm = New prt.RenderImage
rm.Image = GetImage("ST1.JPG") '设置页眉图片
ra2.Width = 188 '宽度53毫米
ra2.Height = 295 '高度24毫米

ra2.Style.Spacing.All = 5
ra2.Children.Add(rm)

Dim rt As New prt.RenderText '定义一个文本对象

rt.Text = Ln1 & "XXXX" '设置文本对象的内容
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
rt.Style.Font = New Font("Tahoma",20, FontStyle.Bold)
ra2.Children.Add(rt)

rt = New prt.RenderText
rt.Text =  "ABC" 
rt.Style.Font = New Font("Tahoma",11)
ra2.Children.Add(rt)

rt = New prt.RenderText
rt.Text =Ln1 &  "XXXXXX" 
rt.Style.Font = New Font("Tahoma",11, FontStyle.Bold)
ra2.Children.Add(rt)

Dim tb As New prt.RenderTable() '定义一个表格对象
ra2.Children.Add(tb) '将表格对象加入到报表中
tb.Style.GridLines.All = New prt.Linedef(Color.Gray)
tb.Width = 175 '表宽为150毫米
tb.Height = 20 '表高为150毫米
tb.Rows.Count = 2 '设置行数
tb.Cols.Count = 4 '设置列数
tb.Cols(0).Width = 35
tb.Cols(1).Width = 50
tb.Cols(2).Width = 30
tb.Cols(3).Width = 55

Dim Ls As String() = {"Accounts 賬目","From 由 To 至","Monthly 月租","Total 合計"}
For c As Integer = 0 To 3
    rt= New prt.RenderText '定义一个文本对象
    rt.Text = Ls(c) '为文本对象设置内容
    rt.Style.Font = New Font("Tahoma",11, FontStyle.Bold)
    tb.Cells(0, c).RenderObject = rt '将文本对象放置在单元格中
Next
tb.Rows(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '第一行内容水平居中
tb.Rows(0).Style.TextAlignVert = prt.AlignVertEnum.Center '第一行内容水平居中

Dim Ls3 As New List(of String)
Ls3.Add("Rental 租金")
Ls3.Add("01/12/2011-31/12/2011")
Ls3.Add("HK$888.00")
Ls3.Add("HK$888.00")
For c As Integer = 0 To 3
    rt = New prt.RenderText '定义一个文本对象
    rt.Text = Ls3(c) '为文本对象设置内容
    rt.Style.Font = New Font("Tahoma",11)
    tb.Cells(1, c).RenderObject = rt '将文本对象放置在单元格中
Next
tb.Rows(1).Style.TextAlignHorz = prt.AlignHorzEnum.Center '第一行内容水平居中
tb.Rows(1).Style.TextAlignVert = prt.AlignVertEnum.Center '第一行内容水平居中


rt = New prt.RenderText
rt.Text =Ln1 &"DEEDDSSS" 
rt.Style.Font = New Font("Tahoma",11, FontStyle.Bold)
ra2.Children.Add(rt)


rt = New prt.RenderText
rt.Text =Ln1 & "DDDDDDDDEEEEEEE"
rt.Style.Font = New Font("Tahoma",11)
ra2.Children.Add(rt)

rt = New prt.RenderText
rt.Text =Ln1 & Ln1 & "敬註:" & Ln1 & "6 Month (5% off) Prepayment , 1 Year (10% off) Prepayment"

rt.Style.Font = New Font("Tahoma",12, FontStyle.Bold)
ra2.Children.Add(rt)



rt = New prt.RenderText
rt.Text =Ln1 & Ln1 & "DEEDDXXXXXXXXXXXX"
rt.Style.Font = New Font("Tahoma",11)
ra2.Children.Add(rt)

rt = New prt.RenderText
rt.Text ="ggggggggggggggggggggggggggggggg"
rt.x=2
rt.y=230
rt.Style.Font = New Font("標楷體",12, FontStyle.Bold)
ra2.Children.Add(rt)

rm = New prt.RenderImage
rm.Image = GetImage("STt.JPG") '设置图片
rm.x=2
rm.y =267
ra2.Children.Add(rm)
doc.Body.Children.Add(ra2)



'设置水印
rm = New prt.RenderImage
rm.Image = GetImage("222.BMP") '设置图片
rm.x = 50
rm.y =100
rm.Style.ImageAlign.StretchHorz = True '禁止图片水平拉伸
Doc.WaterMark = rm'

rt =New prt.RenderText
rt.Text =""
rt.BreakAfter = prt.BreakEnum.Page

rm = New prt.RenderImage
rm.Image = GetImage("ST21.JPG") '设置左侧图片
ra3.Width = 20 '宽度53毫米
ra3.Height = 300 '高度24毫米
ra3.Children.Add(rm)
doc.Body.Children.Add(ra3) '将图片对象加入报表

Doc.Preview() '预览


以上代码正常:图片ST21占据第2页左侧.

如我想于第2页再加入 页眉图片,代码如何?

好长


 回到顶部
总数 14 1 2 下一页