Foxtable(狐表)用户栏目专家坐堂 → [求助]打印方向


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

主题:[求助]打印方向

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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]打印方向  发帖心情 Post By:2018/6/1 11:55:00 [显示全部帖子]

 快递单是横着放的,打印确是竖着的,是哪里原因?

 


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

打印代码:


            Dim doc As New PrintDoc '定义一个报表
           
            doc.PageSetting.Width = 230 '纸张宽度为100毫米
            doc.PageSetting.Height = 127 '纸张高度为120毫米
            Dim rx As prt.RenderText '定义一个文本对象
            Doc.PageSetting.LeftMargin = 19 '设置左边距
            Doc.PageSetting.RightMargin = 20 '设置右边距
            Doc.PageSetting.TopMargin = 24 '设置上边距
            Doc.PageSetting.BottomMargin = 12 '设置下边距
           
           
            Dim x As Integer = val(e.Form.Controls("TextBox01").Value) '定义水平偏移参数
            Dim y As Integer = val(e.Form.Controls("TextBox02").Value) '定义垂直偏移参数

        ......


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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/6/1 12:09:00 [显示全部帖子]

没有预览,直接打印的。

......

doc.print


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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/6/1 12:41:00 [显示全部帖子]

可以啦,谢谢甜老师!

 

设置一个新纸张:EMS 23X12.7   

因为测试时,选的打印纸是A4纸,A4的宽度只有21cm,所以打印机自动横着打印了。

 

还存在几个问题:

1、打印完成后,进程窗口一直不关闭,怎么设置?

2、能否在代码中设置选用的打印机为:LQ730

3、另外,怎样在窗口设置一个按钮,调出  打印服务器属性 设置?

 


图片点击可在新窗口打开查看此主题相关图片如下:image 2.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/6/1 12:57:14编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/6/1 16:59:00 [显示全部帖子]

甜老师,我测试了一下,打印完后,用鼠标右键点击桌面的状态栏,进程窗口才能关闭。

 

请老师看一下我的打印代码有没有问题?

谢谢!

e.Form.ResumeRedraw
e.Form.StopRedraw
Dim doc As New PrintDoc '定义一个报表

doc.PageSetting.Width = 230 '纸张宽度为100毫米
doc.PageSetting.Height = 127 '纸张高度为120毫米
Dim rx As prt.RenderText '定义一个文本对象
Doc.PageSetting.LeftMargin = 19 '设置左边距
Doc.PageSetting.RightMargin = 20 '设置右边距
Doc.PageSetting.TopMargin = 24 '设置上边距
Doc.PageSetting.BottomMargin = 12 '设置下边距


Dim x As Integer = val(e.Form.Controls("TextBox01").Value) -25 '定义水平偏移参数
Dim y As Integer = val(e.Form.Controls("TextBox02").Value) -2 '定义垂直偏移参数
Dim rm As prt.RenderImage '定义一个图形队形
With Tables("EMS编辑_table1")
    For Each Currow As Row In .GetCheckedRows
              
        Dim rep As New prt.RenderEmpty '定义一个新的空对象
        rep.BreakBefore = prt.BreakEnum.Page '打印前换页
        doc.Body.Children.Add(rep ) '加入到报表中
       
        rx = new prt.RenderText
        rx.Text = CurRow("年")
        rx.Style.Font = New Font("宋体", 10, FontStyle.Bold)
        rx.x = 69 + x '设置坐标的时候,注意加上偏移参数
        rx.y = 27 + y
        doc.body.Children.Add(rx)
             
        ......
        rx = new prt.RenderText
        rx.Text = CurRow("收件人邮政编码_6")
        rx.Style.Font = New Font("宋体", 10, FontStyle.Bold)
        rx.x = 204 + x '设置坐标的时候,注意加上偏移参数
        rx.y = 68 + y
        doc.body.Children.Add(rx)
    Next
End With
doc.print

 

 


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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/6/4 11:32:00 [显示全部帖子]

谢谢甜老师!

把最前面的两句代码注释掉,就可以退出“打印进程”了。

e.Form.ResumeRedraw
e.Form.StopRedraw

-------------

遇到一个新问题,连续打印时,从第二张开始,打印的坐标  向右向上  有0.5mm偏移,但是并不累加偏移,第二张以后都是一样的。是什么原因?

见图的红框中的勾号:

 

 


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

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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/6/4 11:51:00 [显示全部帖子]

预览是正常的,但是预览和打印是分开两个按钮的。

打印代码如下,是不是这三句加黑的代码有问题,或者把调整偏移的第9、10行两句代码放到with语句内?

 

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

doc.PageSetting.Width = 230 '纸张宽度为100毫米
doc.PageSetting.Height = 127 '纸张高度为120毫米
Dim rx As prt.RenderText '定义一个文本对象
Doc.PageSetting.LeftMargin = 19 '设置左边距
Doc.PageSetting.RightMargin = 20 '设置右边距
Doc.PageSetting.TopMargin = 24 '设置上边距
Doc.PageSetting.BottomMargin = 12 '设置下边距


Dim x As Integer = val(e.Form.Controls("TextBox01").Value) -25 '定义水平偏移参数
Dim y As Integer = val(e.Form.Controls("TextBox02").Value) -2 '定义垂直偏移参数
With Tables("EMS编辑_table1")
    For Each Currow As Row In .GetCheckedRows
              
        Dim rep As New prt.RenderEmpty '定义一个新的空对象
        rep.BreakBefore = prt.BreakEnum.Page '打印前换页
        doc.Body.Children.Add(rep ) '加入到报表中
       
        rx = new prt.RenderText
        rx.Text = CurRow("年")
        rx.Style.Font = New Font("宋体", 10, FontStyle.Bold)
        rx.x = 69 + x '设置坐标的时候,注意加上偏移参数
        rx.y = 27 + y
        doc.body.Children.Add(rx)
             
        ......
        rx = new prt.RenderText
        rx.Text = CurRow("收件人邮政编码_6")
        rx.Style.Font = New Font("宋体", 10, FontStyle.Bold)
        rx.x = 204 + x '设置坐标的时候,注意加上偏移参数
        rx.y = 68 + y
        doc.body.Children.Add(rx)
    Next
End With
doc.print


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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/6/4 12:51:00 [显示全部帖子]

谢谢甜老师,按照老师的指点,已解决。

 

再问个问题,专业报表设置坐标的时候,允不允许设置0.5mm的级别。

比如,代码中的69或27,能否设置成68.5或27.5:

 

        rx = new prt.RenderText
        rx.Text = CurRow("年")
        rx.Style.Font = New Font("宋体", 10, FontStyle.Bold)
        rx.x = 69 + x '设置坐标的时候,注意加上偏移参数
        rx.y = 27 + y
        doc.body.Children.Add(rx)


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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/6/5 11:27:00 [显示全部帖子]

打印地址时,由于字符太多,部分字符打印不上。
希望如果单元格字符超过16,那么在16的位置后面加上换行符。

请老师看一下第三行代码怎么改?


rx = new prt.RenderText
'rx.Text = CurRow("收件人_地址")
rx.Text = Iif(CurRow("收件人_地址").Length >15 ,CurRow("收件人_地址").Insert(15,vbcrlf) ,CurRow("收件人_地址"))
rx.Style.Font = New Font("宋体", 11, FontStyle.Regular)
rx.x = 129 + x '设置坐标的时候,注意加上偏移参数
rx.y = 57 + y
doc.body.Children.Add(rx)


此主题相关图片如下:截屏图片.jpg
按此在新窗口浏览图片

[此贴子已经被作者于2018/6/5 11:28:34编辑过]

 回到顶部