以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于专业报表打印小尺寸标签错误的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=53089)

--  作者:zenbu
--  发布时间:2014/6/29 16:08:00
--  [求助]关于专业报表打印小尺寸标签错误的问题

现在碰到一个问题,就是用专业报表设计的标签在打印的时候,如果标签小的话打印不正确

现在需要打印的标签尺寸是35*25,如果采用此规格的话打印出来自动横向变味竖向

相同的代码如果标签尺寸改为100*75(我自己用的另一种标签规格)就没有任何问题

小标签要经常使用,必须要使用,请大家帮忙看看是什么问题

标签打印机型号是佳博GP3120TN

 

请看图


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


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

代码如下:

Dim Doc As new PrintDoc \'定义一个新报表
Dim rt As New prt.RenderTable \'定义一个新表格
Doc.PageSetting.Height = 35

Doc.PageSetting.Width = 25
Doc.PageSetting.LeftMargin = 0  \'左边距
Doc.PageSetting.RightMargin = 0 \'右边据
doc.PageSetting.BottomMargin = 0 \'底边距
Doc.PageSetting.TopMargin = 0 \'上边距
\'Doc.PageSetting.Landscape = True  \'是否横向

Dim tab As Table = Tables("Daohuolist_table1")
rt.Style.Font = tab.font
rt.Rows.Count = 1  \'总行数
rt.Cols.Count = 1  \'总列数
rt.Height = 35
rt.Width = 25
    \'rt.SplitHorzBehavior = prt.SplitBehaviorEnum.Never \'禁止水平分割
    \'rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止垂直分割
rt.Style.GridLines.All = New prt.LineDef(0,Color.black)  \'网格线
rt.Cells(0,0).Text = "test"

 

Doc.Body.Children.Add(rt)
Doc.PrinterName = "TSC TTP-245"
Doc.Preview() \'预览报表

[此贴子已经被作者于2014-6-29 16:08:46编辑过]

--  作者:有点甜
--  发布时间:2014/6/29 16:12:00
--  

试试这样

 

Dim Doc As new PrintDoc \'定义一个新报表
Dim rt As New prt.RenderTable \'定义一个新表格
Doc.PageSetting.Height = 35
Doc.PageSetting.Width = 25
Doc.PageSetting.LeftMargin = 0  \'左边距
Doc.PageSetting.RightMargin = 0 \'右边据
doc.PageSetting.BottomMargin = 0 \'底边距
Doc.PageSetting.TopMargin = 0 \'上边距
Doc.PageSetting.Landscape = True  \'是否横向
doc.AutoRotate = False \'禁止自动旋转打印内容

Dim tab As Table = Tables("Daohuolist_table1")
rt.Style.Font = tab.font
rt.Rows.Count = 1  \'总行数
rt.Cols.Count = 1  \'总列数
rt.Height = 35
rt.Width = 25
    \'rt.SplitHorzBehavior = prt.SplitBehaviorEnum.Never \'禁止水平分割
    \'rt.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止垂直分割
rt.Style.GridLines.All = New prt.LineDef(0,Color.black)  \'网格线
rt.Cells(0,0).Text = "test"

 

Doc.Body.Children.Add(rt)
Doc.PrinterName = "TSC TTP-245"
Doc.Preview() \'预览报表


--  作者:zenbu
--  发布时间:2014/6/29 16:38:00
--  

还是不行,不知道什么原因,打印机的设置里长宽反了,手动调整长宽也没有用。

用PS之类的打印机设置纸张以后打印出来,没有问题

 


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

--  作者:有点甜
--  发布时间:2014/6/29 16:43:00
--  

 你再试试2楼的方法,不要预览,直接打印doc.print看看。

 

 再有,红色的代码调整一下多试几次。

 

 再不行的话,就用这个方法

 

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

 


--  作者:zenbu
--  发布时间:2014/6/29 17:04:00
--  

用打印预览无效,直接打印有效。

直接打印也是刚开始打印出来的是空白的,打印机设置里不知道因为改了哪个现在确实正常出来了。

非常感谢有点甜图片点击可在新窗口打开查看


--  作者:zenbu
--  发布时间:2014/6/29 17:21:00
--  
仔细看了一下线条,其实还是竖着打出来
--  作者:有点甜
--  发布时间:2014/6/29 17:26:00
--  
以下是引用zenbu在2014-6-29 17:21:00的发言:
仔细看了一下线条,其实还是竖着打出来

 

这个跟你设置rt的宽度和高度有关吧?倒过来设置。


--  作者:zenbu
--  发布时间:2014/6/29 17:49:00
--  

问题应该还是出现在打印预览里了,现在可以确定用打印预览的话就无法正常打印,直接打印可以了。

应该是打印预览的一种BUG吧?

但是直接打印的话,如果是用FOR NEXT循环,打印的时候效果不是很理想,有打印机犹豫的情况

如果是弄成一长串表格的话,到最后打印的位置不对。

如果打印预览的问题不能解决的话,看来只能弄成PDF文档,在打印PDF了,这样弄比较麻烦。


--  作者:有点甜
--  发布时间:2014/6/29 17:53:00
--  

 弄成一长串表格打印吧,不应该有问题的,间隔要设置妥当。

 

 如果是误差问题,可以4、5个(一张打印纸)一次,这样就是折中的办法。


--  作者:zenbu
--  发布时间:2014/6/29 18:06:00
--  
有控制打印份数的代码吗?