以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]能否让打印预览容器内的控件位置自动缩放到纸张的大小匹配?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=49175)

--  作者:花开的声音
--  发布时间:2014/4/13 15:51:00
--  [求助]能否让打印预览容器内的控件位置自动缩放到纸张的大小匹配?
在打印窗口中,代码中设置好纸张大小,在窗口的PANEL控件,也设置宽度和高度,但因屏幕问题,不能设置到与代码中设置的纸张大小那么大。打印预览的结果 就是PANEL中的控件内容全部显示到了纸张的左上角,而右下角无内容,如图所示。如何设置才能使打印预览中的显示内容与没有打印之前,在panel中显示的一样,是填满整个页面的?
打印前panel中的控件内容:
图片点击可在新窗口打开查看此主题相关图片如下:3.jpg
图片点击可在新窗口打开查看
打印预览中的内容:
图片点击可在新窗口打开查看此主题相关图片如下:4.jpg
图片点击可在新窗口打开查看

--  作者:花开的声音
--  发布时间:2014/4/13 18:20:00
--  
没人知道 吗?
--  作者:有点甜
--  发布时间:2014/4/13 19:24:00
--  

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

 

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

 

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

 


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


--  作者:花开的声音
--  发布时间:2014/4/13 20:17:00
--  
另,panel中所绑定字段的控件,我是在下面放一张经过扫描得到的图片框来定位的。
--  作者:有点甜
--  发布时间: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()


--  作者:花开的声音
--  发布时间:2014/4/13 21:00:00
--  
刚试了下,就是我想实现的功能。再试下调整页边距,有问题再请教,谢谢呵!
--  作者:花开的声音
--  发布时间:2014/4/13 21:00:00
--  
还没有试真正打印,不晓得打印时位置有没有变化。