以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自定打印纸张问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=88037)

--  作者:rjh4078
--  发布时间:2016/7/25 16:06:00
--  自定打印纸张问题
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=54472&skin=0
根据这个做了修改  发现本地打印机没问题  但是如果是共享打印机就报错


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


--  作者:大红袍
--  发布时间:2016/7/25 16:08:00
--  
 有可能是共享打印机不支持你动态添加纸张的。你需要去到打印机所在的电脑,添加对应的纸张,然后再用对应的数值设置。
--  作者:rjh4078
--  发布时间:2016/7/25 16:15:00
--  


--  作者:rjh4078
--  发布时间:2016/7/26 10:38:00
--  
按照你的方法试了  但是调用的时候还是会出错


--  作者:rjh4078
--  发布时间:2016/7/26 10:38:00
--  

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

--  作者:大红袍
--  发布时间:2016/7/26 10:40:00
--  

 先获取你添加的纸张的值是什么,然后再指定啊。

 

 只要纸张存在值正确,不可能报错


--  作者:rjh4078
--  发布时间:2016/7/26 10:55:00
--  
这个代码是在报表事件的afterbulid事件中

Dim Book As New XLS.Book \'定义一个Excel工作簿
book=e.Book
Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
\'
\'Dim cps As new CustomPaperSize.CustomPaperSize()
\'cps.SetPrintForm(DefaultPrinter,"送货单",100*21.75, 100*13.9)
\'cps.SetPrintForm(DefaultPrinter,"加工单",100*21.75, 100*27.95)
Dim prtdoc As new Printing.PrintDocument()
prtdoc.PrinterSettings.PrinterName = DefaultPrinter

Select Case e.Book.TempLate
    Case "对账单"
        With Sheet.PrintSetting
            \'\'页眉左边为日期,中间为时间,右边为表名
            \'.Header = "&L&D &C&T &R&A"
            \'在页脚右边打印页号和总页数
            .Footer = "&R第&P页,总&N页"
        End With
    Case "送货单","送货单无金额"
        For Each ps As System.Drawing.Printing.PaperSize In prtdoc.PrinterSettings.PaperSizes  \'生成打印机的纸张下拉列表
            If ps.PaperName = "送货单" Then
                Sheet.PrintSetting.PaperKind = ps.RawKind
            End If
        Next
    Case "加工单","加工单含成本"
        For Each ps As System.Drawing.Printing.PaperSize In prtdoc.PrinterSettings.PaperSizes  \'生成打印机的纸张下拉列表
            If ps.PaperName = "加工单" Then
                Sheet.PrintSetting.PaperKind = ps.RawKind
            End If
        Next
        
End Select
[此贴子已经被作者于2016/7/26 10:55:46编辑过]

--  作者:大红袍
--  发布时间:2016/7/26 11:39:00
--  
如果你直接在excel文件那里设置打印纸张,能否选择对应的纸张?
--  作者:rjh4078
--  发布时间:2016/7/26 19:02:00
--  
以下是引用大红袍在2016/7/26 11:39:00的发言:
如果你直接在excel文件那里设置打印纸张,能否选择对应的纸张?
手动打印可以的


--  作者:大红袍
--  发布时间:2016/7/26 19:49:00
--  

1、你的默认打印机是不是这个打印机?

 

2、试试直接用vba

 

http://www.foxtable.com/webhelp/scr/2121.htm