以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- [求助]打印方向 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=119812)
|
-- 作者:天一生水
-- 发布时间: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) \'定义垂直偏移参数
......
|
-- 作者:有点甜
-- 发布时间:2018/6/1 12:07:00
--
你是打印预览后打印的,还是直接打印的?
你设置好以后,直接doc.print行不行?
[此贴子已经被作者于2018/6/1 12:07:03编辑过]
|
-- 作者:天一生水
-- 发布时间:2018/6/1 12:09:00
--
没有预览,直接打印的。
......
doc.print
|
-- 作者:有点甜
-- 发布时间:2018/6/1 12:13:00
--
试试设置
http://www.foxtable.com/webhelp/scr/2904.htm
|
-- 作者:天一生水
-- 发布时间: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编辑过]
|
-- 作者:有点甜
-- 发布时间:2018/6/1 14:48:00
--
1、正常打印的情况,不可能有你这种问题出现,请检查你的代码。或者单独测试一段简单的打印代码;
2、参考 http://www.foxtable.com/webhelp/scr/1588.htm
3、参考代码
Dim doc As New PrintDoc \'定义一个报表 Dim rt As New prt.RenderText \'定义一个文本对象 rt.Text = "Hello Foxtable,I Love YOU!" \'设置文本对象的内容 doc.Body.Children.Add(rt) \'将文本对象加入到报表
Dim diag As New System.Windows.Forms.PrintDialog \'打印 If diag.ShowDialog() = 1 Then Dim ps As System.Drawing.Printing.PrinterSettings = diag.PrinterSettings \'ps.PrinterName = "打印机名" \'设置打印机名 \'ps.Copies = 2 \'设置份数 doc.Print(ps) \'打印 End If
|
-- 作者:天一生水
-- 发布时间: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
|
-- 作者:有点甜
-- 发布时间:2018/6/1 17:41:00
--
直接这样写,测试有没有问题
Dim doc As New PrintDoc \'定义一个报表 Dim rt As New prt.RenderText \'定义一个文本对象 rt.Text = "Hello Foxtable" \'设置文本对象的内容 doc.Body.Children.Add(rt) \'将文本对象加入到报表 doc.Print
或者试试加上代码,如
ShowAppWindow("打印进程", 5)
|
-- 作者:天一生水
-- 发布时间:2018/6/4 11:32:00
--
谢谢甜老师!
把最前面的两句代码注释掉,就可以退出“打印进程”了。
e.Form.ResumeRedraw e.Form.StopRedraw
-------------
遇到一个新问题,连续打印时,从第二张开始,打印的坐标 向右向上 有0.5mm偏移,但是并不累加偏移,第二张以后都是一样的。是什么原因?
见图的红框中的勾号:
此主题相关图片如下:截屏图片.jpg

|
-- 作者:有点甜
-- 发布时间:2018/6/4 11:36:00
--
1、预览是否正常?如果预览页不正常,那就调整成正常的,再打印;
2、如果预览正常,打印不正常,那你每次重新 New PrintDoc ,再打印。
|