以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] 窗体循环打印 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=119249) |
|
-- 作者:goodhawk -- 发布时间:2018/5/21 15:26:00 -- [求助] 窗体循环打印 进行打印标签, 用的是窗体打印。 我期望能按一个打印按钮, 能把当前窗体做连续打印: 以下内容为程序代码: 1 \'页面设置 2 With e.Form.page 3 .Landscape = False \'纵向打印 4 .width = 80 5 .height = 50 6 .LeftMargin = 1 7 .TopMargin = 1 8 .RightMargin = 1 9 .BottomMargin = 1 10 End With 11 12 \'打印 13 Dim doc As PrintDoc = e.Form.GernatePrintDoc() 14 Doc.AutoRotate = False 15 \'Doc.SavePDF("e:\\3.pdf") 16 17 With Tables("printer_setting") 18 Dim r As Integer 19 r = .FindRow("[flag]=\'标签打印机\'" ) 20 If r >= 0 Then 21 Doc.PrinterName = .Current("printer_address") 22 Else 23 MessageBox.Show("打印机未设定,路径:我的工作台->基础资料->打印机设定") 24 Return 25 End If 26 End With 27 28 Doc.PrinterName = "\\\\192.168.1.3\\Argox CP-2140M PPLB" 29 Doc.print() 30 Forms("标签").Close() |
|
-- 作者:有点甜 -- 发布时间:2018/5/21 15:34:00 -- 你窗口的控件是绑定表列的?你想切换不同的行,然后打印?如果是,那你写成循环就行了。 |
|
-- 作者:goodhawk -- 发布时间:2018/5/21 15:59:00 -- 不是, 就是简单的要把当前的窗口, 打印 n 遍。 我用了 for i = 0 to 10
print() next 这样子没法打印 10遍的啊
|
|
-- 作者:有点甜 -- 发布时间:2018/5/21 16:01:00 -- For i As Integer = 1 to 10 Dim doc As PrintDoc = e.Form.GernatePrintDoc() Next |
|
-- 作者:goodhawk -- 发布时间:2018/5/21 17:50:00 -- @有点甜, 用上面的code是可以打印多次了。 有个问题不太清楚, 为啥用下面这个是不ok的 ? 因为我发现用这种方式打印的时候, 速度很慢, 每次都要重新生成文档, 重新发送打印指令。 有没有办法把这个 doc的文档, n多份拼接一下, 同时发送给 打印机呢 ? Dim doc As PrintDoc = e.Form.GernatePrintDoc()
|
|
-- 作者:有点甜 -- 发布时间:2018/5/21 17:53:00 -- 参考这种方式
Dim doc As PrintDoc = e.Form.GernatePrintDoc()
Dim ps As new System.Drawing.Printing.PrinterSettings
ps.PrinterName = "HP LaserJet 6L"
ps.Copies = 10 \'设置份数
doc.Print(ps) \'打印
|
|
-- 作者:goodhawk -- 发布时间:2018/5/22 12:51:00 -- 感谢, 实现得很完美, 赞 @有点甜 |