Foxtable(狐表)用户栏目专家坐堂 → 绘图添加文字背景留白


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

主题:绘图添加文字背景留白

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


加好友 发短信
等级:三尾狐 帖子:772 积分:8802 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By:2021/4/21 21:33:00 [只看该作者]

采用报表直接绘制,清晰度可以了,还有两个问题,如实例,我想把图片放到容器ra填满并居中显示,应该如何操作?另外,因为放到容器中图片尺寸变小了,所以其文字的定位跟painter中有差异,这个应该怎么解决?也就是希望Paiter1中添加文字的地方和报表中完全一直,实例里是有差异的,Painter中文字在框线下方,报表中文字已经压着框线了。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:绘图.rar




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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/22 8:41:00 [只看该作者]


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


加好友 发短信
等级:三尾狐 帖子:772 积分:8802 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By:2021/4/22 11:36:00 [只看该作者]

我设置了居中,但好像没有效果,另外,就是文字的位置,在窗口显示和报表显示会有些许差异,当图片缩小比较多的情况下,偏离会比较大,这个有什么办法吗?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:绘图.rar



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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/22 13:49:00 [只看该作者]

Dim fl As String = ProjectPath & "无内容.jpg"
Dim doc As New PrintDoc '定义一个报表对象
Doc.PageSetting.Landscape = True '横向打印
Doc.PageSetting.LeftMargin = 10 '设置左边距
Doc.PageSetting.RightMargin = 10 '设置右边距
Doc.PageSetting.TopMargin = 10 '设置上边距
Doc.PageSetting.BottomMargin = 10 '设置下边距
Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight '设置排列方式
Dim img As Image
For i As Integer = 1 To 2
    Dim ra As New prt.RenderArea
    ra.Width = 138 '宽度53毫米
    ra.Height = 90 '高度24毫米
    ra.Style.Spacing.All = 0.2
    ra.Style.Borders.All = New prt.Linedef(0.3, Color.blue) '设置边框
    ra.SplitHorzBehavior = prt.SplitBehaviorEnum.Never '禁止水平分割
    ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never '禁止垂直分割
    Doc.Body.ChildRen.Add(ra) '将容器加入到报表中
    
    Dim rg As New prt.RenderGraphics()
    Dim g As Graphics = rg.Graphics
    img = getImage(fl)
    g.DrawImage(img,0,0)
    g.DrawString(msg,fnt,Brushes.white,100,105)
    rg.Height= "Parent.Height"
    rg.Width = "Auto"
    rg.Style.TextAlignHorz = prt.AlignHorzEnum.Center
    rg.Style.TextAlignVert = prt.AlignVertEnum.Center
    ra.Children.Add(rg)
    Dim w As Integer = (138 - 90 / img.Height * img.Width) / 2
    rg.x = w
Next
Doc.Preview() '预览

文字的位置要自己根据图片世界绘制大小动态设置绘制的位置,类似于上面的居中计算一样

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


加好友 发短信
等级:三尾狐 帖子:772 积分:8802 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By:2021/4/23 11:51:00 [只看该作者]

我定位还是有问题,我在Painter1中点击左键可以标记一个红点,但是生成报表的时候明显红点的位置和Painter1显示的有偏离,这个应该怎么改,我试着等比例改x,y坐标,但没达到效果,蓝版可否出手相助?实例已上传
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:绘图.rar




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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/23 12:03:00 [只看该作者]

14楼代码我测试没有问题

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


加好友 发短信
等级:三尾狐 帖子:772 积分:8802 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By:2021/4/23 12:09:00 [只看该作者]

蓝版你把红点标记在食指方框正中央,然后点击按钮生成报表,你会发现报表中红点的位置向左上偏移。

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/23 13:41:00 [只看该作者]

自己微调一下:g.DrawImage(getImage("point.png"),Vars("x")+1,Vars("y")+6)

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


加好友 发短信
等级:三尾狐 帖子:772 积分:8802 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By:2021/4/23 14:21:00 [只看该作者]

微调我试过的,不是微调的问题,因为我图的横竖和大小可能都不一样,每张图上有很多个标注点,这样两边出来还是会不一致。这个是软件的硬伤吗,有没有办法校正过来。

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/23 14:22:00 [只看该作者]

没有办法,只能做到差不多。如果要精确,建议使用专业的绘图软件绘制,然后在保存打印

 回到顶部
总数 23 上一页 1 2 3 下一页