Foxtable(狐表)用户栏目专家坐堂 → [求助]疯了,纵向piao据打印就是变成横向


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

主题:[求助]疯了,纵向piao据打印就是变成横向

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
[求助]疯了,纵向piao据打印就是变成横向  发帖心情 Post By:2015/7/13 11:10:00 [只看该作者]

看了之前论坛上发的帖子,浪费了快50张纸了,实在不行了,老师帮我看看怎么回事。
以下是我完整的打印按钮代码:
e.Form.Page.Width = 241 '纸张宽度为XX毫米
e.Form.Page.Height = 139.7 '纸张高度为XX毫米
e.Form.Page.LeftMargin = 25 '设置左边距
e.Form.Page.RightMargin = 25 '设置右边距
e.Form.Page.TopMargin = 10 '设置上边距
e.Form.Page.BottomMargin = 10 '设置下边距


Dim doc As PrintDoc = e.Form.GernatePrintDoc()
doc.AutoRotate = False '禁止自动旋转打印内容

For Each c As object In Doc.Body.Children
    If c.Gettype.Name Like "*Table*" Then
        Dim t As prt.RenderTable = c
        For i As Integer = 0 To t.Rows.Count - 1
            If t.Cells(i, 2).Text = Nothing  AndAlso t.Cells(i, 1).Text <> Nothing Then
                t.Cells(i, 1).SpanCols = 5
            End If
        Next
    End If
Next


Dim rx As New prt.RenderTable
rx.Cells(0,0).Text = "上海昌硕金属新材料有限公司"
rx.Cells(1,0).Text = "原料入库通知单"
rx.Cols(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '设置居中
rx.CellStyle.Spacing.Bottom = 0.5 '底端内容缩进0.5毫米
rx.Cells(0,0).Style.FontSize = 16 '设置字体大小
rx.Cells(1,0).Style.FontSize = 14 '设置字体大小
Doc.PageHeader = rx '作为页眉使用

Dim rx1 As New prt.RenderTable
rx1.Cells(0,0).Text = "制单:" &  MainTable.Current("录入人")
rx1.Cells(0,1).Text = "制单时间:" &  MainTable.Current("录入时间")
rx1.Cells(0,2).Text = "打印日期:" & Date.Today
rx1.Cells(1,0).Text = " "
rx1.Cells(2,0).Text = "一式四联: 【白色】 财务             【红色】 统计"
rx1.Cells(2,1).Text = "【蓝色】 营销             【黄色】 仓库 "
rx1.Cells(2,2).Text = "第[PageNo]页,共[PageCount]页"
rx1.Cols(0).Style.TextAlignHorz = prt.AlignHorzEnum.Left
rx1.Cols(1).Style.TextAlignHorz = prt.AlignHorzEnum.Center
rx1.Cols(2).Style.TextAlignHorz = prt.AlignHorzEnum.right
rx1.CellStyle.Spacing.Bottom = 0.5 '底端内容缩进0.5毫米
rx1.Style.FontSize = 8 '字体大小为8磅
Doc.PageFooter = rx1 '作为页脚使用


doc.Preview() '预览

以下是我点了打印按钮后的预览图:

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

在连续供纸的针式打印机上打出来的样子:

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



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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/13 11:14:00 [只看该作者]

 不预览,直接print

 

 

doc.Preview() '预览

 

改成

 

doc.Print


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/13 11:15:00 [只看该作者]

或者看一下这里,直接去打印机那里设置。

 

http://www.foxtable.com/help/topics/2904.htm

 


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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2015/7/13 12:19:00 [只看该作者]

又经过反复测试,老师的方法一是可行的,可惜不能预览了,方法二还是老样子,我可能改不来代码,老师能根据我一楼的代码帮我改下吗?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/13 14:22:00 [只看该作者]

以下是引用huangfanzi在2015/7/13 12:19:00的发言:
又经过反复测试,老师的方法一是可行的,可惜不能预览了,方法二还是老样子,我可能改不来代码,老师能根据我一楼的代码帮我改下吗?

 

方法二的意思,是你在打印那里设置纸张默认就是横向的。

 

然后下面这些红色代码可以不要

 

e.Form.Page.Width = 241 '纸张宽度为XX毫米
e.Form.Page.Height = 139.7 '纸张高度为XX毫米
e.Form.Page.LeftMargin = 25 '设置左边距
e.Form.Page.RightMargin = 25 '设置右边距
e.Form.Page.TopMargin = 10 '设置上边距
e.Form.Page.BottomMargin = 10 '设置下边距


Dim doc As PrintDoc = e.Form.GernatePrintDoc()
doc.AutoRotate = False '禁止自动旋转打印内容

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2015/7/13 14:43:00 [只看该作者]

帮助文件中的插图是纵向,老师的意思是改成横向吗?
另外,我为了搞清楚为什么设置个打印这么难,我特意做了个页面设置窗口,在这个窗口中设置了上下左右边距,然后执行打印预览,我发现用代码设置的右边距对应系统的打印预览中的上边距,代码设置的上边距是打印预览中的右边距,这就解释了打印方向转了90度,这是系统的BUG吗?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/13 14:55:00 [只看该作者]

 方法二,是要设置成横向;

 

 嗯嗯,是的,边距设置,默认是纵向,设置横向打印以后,就是旋转90度的。


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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2015/7/13 15:16:00 [只看该作者]

老师,还有个地方不明白,
e.Form.Page.Width = 241与doc.PageSetting.Width = 241有何区别。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/13 15:19:00 [只看该作者]

以下是引用huangfanzi在2015/7/13 15:16:00的发言:
老师,还有个地方不明白,
e.Form.Page.Width = 241与doc.PageSetting.Width = 241有何区别。

 

没什么区别。

 

设置 e.Form.Page.Width 之后,执行e.Form.GernatePrintDoc()后,会设置生成 doc.PageSetting.Width = 241


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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2015/7/13 18:41:00 [只看该作者]

 老师,按方式2用了打印预览后,怎么也设置不到我想要的结果,放弃了,直接打印的话确实能做到与设置的代码所想要的结果一致,可惜没有预览功能了,能通过别的方法进行预览吗? 

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