Foxtable(狐表)用户栏目专家坐堂 → [求助]能否让打印预览容器内的控件位置自动缩放到纸张的大小匹配?


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

主题:[求助]能否让打印预览容器内的控件位置自动缩放到纸张的大小匹配?

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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8418 威望:0 精华:0 注册:2012/10/29 20:09:00
[求助]能否让打印预览容器内的控件位置自动缩放到纸张的大小匹配?  发帖心情 Post By:2014/4/13 15:51:00 [只看该作者]

在打印窗口中,代码中设置好纸张大小,在窗口的PANEL控件,也设置宽度和高度,但因屏幕问题,不能设置到与代码中设置的纸张大小那么大。打印预览的结果 就是PANEL中的控件内容全部显示到了纸张的左上角,而右下角无内容,如图所示。如何设置才能使打印预览中的显示内容与没有打印之前,在panel中显示的一样,是填满整个页面的?
打印前panel中的控件内容:
图片点击可在新窗口打开查看此主题相关图片如下:3.jpg
图片点击可在新窗口打开查看
打印预览中的内容:
图片点击可在新窗口打开查看此主题相关图片如下:4.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8418 威望:0 精华:0 注册:2012/10/29 20:09:00
  发帖心情 Post By:2014/4/13 18:20:00 [只看该作者]

没人知道 吗?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/13 19:24:00 [只看该作者]

 你的这个问题,需要用到专业报表去打印。

 

 或者是用代码对窗口doc对象的位置进行重新的定位,才能把控件打印到对应的位置的。

 

 建议还是用专业报表去做:http://www.foxtable.com/help/topics/1166.htm

 


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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8418 威望:0 精华:0 注册:2012/10/29 20:09:00
  发帖心情 Post By:2014/4/13 20:08:00 [只看该作者]

有点甜老师,我就是用的专业报表做的,但有些地方看了半天帮助就是弄不出来,我做了个例子,麻烦你帮我实现这个功能行不?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:页边距调整3.table


 回到顶部
帅哥哟,离线,有人找我吗?
花开的声音
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8418 威望:0 精华:0 注册:2012/10/29 20:09:00
  发帖心情 Post By:2014/4/13 20:17:00 [只看该作者]

另,panel中所绑定字段的控件,我是在下面放一张经过扫描得到的图片框来定位的。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/13 20:47:00 [只看该作者]

 弄了一下,如下代码

 

Dim tb As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim pan As WinForm.Panel = e.Form.Controls("Panel1")

Dim doc As new PrintDoc

Doc.PageSetting.Width=180
Doc.PageSetting.Height=100
Doc.PageSetting.TopMargin=10
Doc.PageSetting.BottomMargin=0
Doc.PageSetting.LeftMargin=10
Doc.PageSetting.RightMargin=10

Dim wbl As Double = Doc.PageSetting.Width.value / pan.Width
Dim hbl As Double = Doc.PageSetting.Height.value / pan.Height
For Each c As object In pan.Children
    Dim rt As new prt.RenderText
    rt.Text = c.text
    rt.x =  new C1.C1Preview.Unit(CStr(c.left * wbl))
    rt.y = new C1.C1Preview.Unit(CStr(c.Top * hbl))
    Doc.Body.Children.Add(rt)
Next

doc.Preview()


 回到顶部
帅哥哟,离线,有人找我吗?
花开的声音
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8418 威望:0 精华:0 注册:2012/10/29 20:09:00
  发帖心情 Post By:2014/4/13 21:00:00 [只看该作者]

刚试了下,就是我想实现的功能。再试下调整页边距,有问题再请教,谢谢呵!

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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8418 威望:0 精华:0 注册:2012/10/29 20:09:00
  发帖心情 Post By:2014/4/13 21:00:00 [只看该作者]

还没有试真正打印,不晓得打印时位置有没有变化。

 回到顶部