Foxtable(狐表)用户栏目专家坐堂 → 打印机指定问题


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

主题:打印机指定问题

帅哥哟,离线,有人找我吗?
可乐七号
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:136 积分:1168 威望:0 精华:0 注册:2021/2/26 13:53:00
打印机指定问题  发帖心情 Post By:2023/2/8 16:13:00 [只看该作者]

设置打印机: Doc.PrinterName = printname
设置了打印,还是从默认打印机上打出信息。这是什么原因?


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


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/8 16:16:00 [只看该作者]

我测试没有问题。是不是预览后,在预览窗口打印的?

 回到顶部
帅哥哟,离线,有人找我吗?
可乐七号
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:136 积分:1168 威望:0 精华:0 注册:2021/2/26 13:53:00
  发帖心情 Post By:2023/2/8 16:25:00 [只看该作者]

不是,是直接打印的。

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


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/8 16:33:00 [只看该作者]

完整代码发上来看看

 回到顶部
帅哥哟,离线,有人找我吗?
可乐七号
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:136 积分:1168 威望:0 精华:0 注册:2021/2/26 13:53:00
  发帖心情 Post By:2023/2/8 17:18:00 [只看该作者]

函数调用代码:
Dim comprintset As String =  Forms("商品条码打印").Controls("comprintset").text ' 打印机
Dim num As Integer = e.Form.Controls("num").text '打印份数
Vars("CODEid") = e.Form.Controls("id").text
Dim dr As DataRow
dr = DataTables("CommodityBarcode").Find("ID = " & Vars("CODEid"))
Functions.Execute("PrintCodeing",dr,num,comprintset )



以下是 PrintCodeing 函数代码
Dim dr As DataRow = Args(0)'打印内容
Dim t As String = "打印" '操作类型 打印 / 预览
Dim num As Integer = args(1)'打印份数
Dim printname As String  = args(2) '打印名

Dim doc As New PrintDoc '定义一个报表
doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight '设置排列方式

doc.PageSetting.Width = 50 '纸张宽度为60毫米
doc.PageSetting.Height = 30 '纸张高度为40毫米
Doc.PageSetting.LeftMargin = 0 '设置左边距
Doc.PageSetting.RightMargin = 0 '设置右边距
Doc.PageSetting.TopMargin = 0 '设置上边距
Doc.PageSetting.BottomMargin = 0 '设置下边距
doc.AutoRotate = False '禁止自动旋转打印内容
Dim fntx As New Font("微软雅黑",12,FontStyle.Bold )

Dim ra As New prt.RenderArea
Dim rt As prt.RenderText

ra.Width = 50 '宽度60毫米
ra.Height = 30 '高度40毫米
ra.Style.Spacing.All = 1
'ra.Style.Borders.All = New prt.Linedef(0.3, Color.Red) '设置边框
ra.SplitHorzBehavior = prt.SplitBehaviorEnum.Never '禁止水平分割
ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never '禁止垂直分割
Doc.Body.ChildRen.Add(ra) '将容器加入到报表中


Dim fnt As New Font("微软雅黑",14)
Dim fnt1 As New Font("微软雅黑",12)

'rt = New prt.RenderText
'rt.Text = "款号:"
'rt.Width = "Auto" '自动设置宽度
'rt.X = 2
'rt.Y = 1
'rt.Style.Font = fnt
'ra.Children.Add(rt) '添加到容器中
'品牌内容
'rt = New prt.RenderText
'rt.Text = dr("itemNo")
'rt.Width = "Auto" '自动设置宽度
'rt.X = "Prev.Right"
'rt.Y = "Prev.top"
'rt.Style.Font = fnt
'ra.Children.Add(rt)

rt = New prt.RenderText
rt.Text = "规格:"
rt.Width = "Auto" '自动设置宽度
rt.X = 2
rt.Y = 1 '"Prev.Bottom"
rt.Style.Font = fnt
ra.Children.Add(rt) '添加到容器中

rt = New prt.RenderText
rt.Text = dr("colour").TRIM() & dr("size").TRIM()
rt.Width = "Auto" '自动设置宽度
rt.X = "Prev.right"
rt.Y = "Prev.top"
rt.Style.Font = fnt
ra.Children.Add(rt)

Dim Bar As New BarCodeBuilder
Dim rg As New prt.RenderGraphics
rg = new prt.RenderGraphics
Bar.Symbology = Barpro.Symbology.Code128
bar.Code = dr("barcode")
Bar.BarRatio = 0.2648
Bar.QuietZoneWidth = 0
Bar.DisplayCode = False
Bar.AddCheckSum = False
Bar.DisplayStartStopChar = False
Bar.BarHeight = 16
rg.width = 50
rg.height = 16
bar.DrawOnCanvas(rg.Graphics,0,0,1)
rg.X = 0
rg.y =  "Prev.Bottom"
rg.Style.ImageAlign.AlignHorz=prt.ImageAlignHorzEnum.Center
ra.Children.Add(rg)

rt = New prt.RenderText
rt.Text = dr("barcode")
rt.Width = 50
rt.X = 1
rt.Y = "Prev.Bottom"
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
rt.Style.Font = fnt1 
ra.Children.Add(rt)


Dim ps As new System.Drawing.Printing.PrinterSettings
If t = "打印"
    Doc.PrinterName = printname
    ps.Copies = num    '设置份数
    doc.Print(ps)
Else
    Doc.PrinterName = printname
    Doc.Preview
End If

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


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/8 17:25:00 [只看该作者]

用了PrinterSettings,会覆盖专业报表的设置的。试试

Dim ps As new System.Drawing.Printing.PrinterSettings
ps.PrinterName = printname
If t = "打印"
    ps.Copies = num    '设置份数
    doc.Print(ps)


 回到顶部
帅哥哟,离线,有人找我吗?
可乐七号
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:136 积分:1168 威望:0 精华:0 注册:2021/2/26 13:53:00
  发帖心情 Post By:2023/2/10 9:18:00 [只看该作者]

可以了,图片点击可在新窗口打开查看

 回到顶部