以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  专业报表打印标签的方向问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=38693)

--  作者:whoami2012
--  发布时间:2013/8/4 17:28:00
--  专业报表打印标签的方向问题
标签预览正常(预览的效果就是最终想要的),但打印后与标签呈90度角,且横跨两个标签

代码:

Dim doc As New PrintDoc \'定义一个新报表

doc.PageSetting.Height = 32  \'标签纸高
doc.PageSetting.Width = 52  \'标签纸宽
doc.PageSetting.Landscape = True   ‘调整过
doc.PageSetting.LeftMargin = 1 \'设置左边距
doc.PageSetting.RightMargin = 1 \'设置右边距
doc.PageSetting.TopMargin = 1 \'设置上边距
doc.PageSetting.BottomMargin = 1 \'设置下边距
doc.AutoRotate = False  \'调整过

Dim rx As prt.RenderText
Dim rm As prt.RenderEmpty \'定一个空对象


rm = new prt.RenderEmpty \'定义一个新的空对象
rm.BreakBefore = prt.BreakEnum.Page \'打印前换页
doc.Body.Children.Add(rm) \'加入到报表中

rx = New prt.RenderText
rx.Text = "同协制造"
rx.Style.Font = New Font("黑体",14)
rx.X = 2
rx.Y = 3
Doc.Body.Children.Add(rx)

rx = New prt.RenderText
rx.Text = "  No:513070001"
rx.Style.Font = New Font("宋体",12)
rx.X = 2
rx.Y = 9
Doc.Body.Children.Add(rx)

rx = New prt.RenderText
rx.Text = "用户:用户姓名"
rx.Style.Font = New Font("宋体",12)
rx.X = 2
rx.Y = 14
Doc.Body.Children.Add(rx)

rx = New prt.RenderText
rx.Text = "衣柜"
rx.Style.Font = New Font("宋体",12)
rx.X = 2
rx.Y = 22

Doc.Body.Children.Add(rx)
doc.Preview()

条码打印机用的是TDP-245驱动程序。使用 BarTender 条码打印软件时,一切正常,但在专业报表中,文字方向总是不对,请高手看下,还有哪些地方需要调整。
图片点击可在新窗口打开查看此主题相关图片如下:bq.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2013-8-4 17:29:12编辑过]

--  作者:程兴刚
--  发布时间:2013/8/4 19:06:00
--  

把:doc.AutoRotate = False 上移到代码的第二行试试:

 

 

Dim doc As New PrintDoc \'定义一个新报表
doc.AutoRotate = False
……

--  作者:有点甜
--  发布时间:2013/8/4 19:25:00
--  
 doc.AutoRotate = False 涉及到硬件问题,的稳定性不太好。

 如果你是在预览窗口点的打印,应该就是不旋转的;如果你是直接print的话,可能会不旋转。

--  作者:程兴刚
--  发布时间:2013/8/5 13:40:00
--  

我的理解不一样:

 

      1、当定义完一个报表,首先要禁止自动旋转,然后再定义报表宽、高度;

      2、相反,如果先定义了报表宽、高度,当报表宽度大于报表高度时,代码执行到这里就已经自动旋转了,在后续的代码再用doc.AutoRotate = False 来禁止自动旋转时,实际报表已经自动旋转了,后面的禁止是在当前的报表(已经旋转后的基础上)形成的,所以,这个禁止将无效;

      3、由于预览不涉及到硬件,故:预览没有问题,而在打印机驱动程序中执行会出现错误。


--  作者:whoami2012
--  发布时间:2013/8/19 21:42:00
--  
谢谢大家的指导!
今天试了调整代码,仍然和原来一样的结果:打印预览正常,打印出来的文字与预览相比,还是转了90度(标签纸的方向与预览是一样的)。
报表内容宽、高度好像也没走出报表尺寸,自动旋转会起作用吗?求解

--  作者:有点甜
--  发布时间:2013/8/19 21:55:00
--  
以下是引用whoami2012在2013-8-19 21:42:00的发言:
谢谢大家的指导!
今天试了调整代码,仍然和原来一样的结果:打印预览正常,打印出来的文字与预览相比,还是转了90度(标签纸的方向与预览是一样的)。
报表内容宽、高度好像也没走出报表尺寸,自动旋转会起作用吗?求解


直接设置打印机成横向打印看是否可以吧。

--  作者:菲舍尔
--  发布时间:2013/8/20 2:37:00
--  
在c1控件中
 
doc.PageSetting.Landscape = True   doc.AutoRotate = False 
 
全部是即时生效的属性,即设置后,即时引发调整页面属性的方法或函数
 
你只设一个属性试试,不要两个同时设置 

--  作者:狐狸爸爸
--  发布时间:2013/8/20 8:27:00
--  

1、doc.PageSetting.Landscape = True doc.AutoRotate = False  只设置一个

2、不要预览,直接打印

3、只设置页面宽度,不设置高度看看。


--  作者:coch2004
--  发布时间:2013/12/9 12:40:00
--  
顶贴一下,我也打印机是tsc ttp-245 plus 也遇到同样无法解决的问题,怎么处理?
--  作者:baoxyang
--  发布时间:2013/12/9 12:59:00
--  

要在打印机服务器设置打印标签的实际纸张大小,在打印机设置纸张类型中选中自定义的纸张大小。在代码设置旋转无效。