小花喵 老牛亦知昭光贵,不用扬鞭自奋蹄。

水晶报表【完美】解决默认打印机,默认自定义纸张及单据,默认打印方向

转自:

http://blog.sina.com.cn/s/blog_6dd740190101le1q.html


【公司项目】vb.net项目中(c#请将下面的代码用百度 vb.net转c#

比如遇到的问题:


1.设置打印机的特殊规格的纸张(自定义纸张,单据)名称及规格大小:

2.在用水晶报表打印的时候,弹出打印机设置框。在高级选项中,纸张规格每次默认是LETTER,样将他默认为我自定议的纸张啊???
'导入
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports CrystalDecisions.CrystalReports
 '设置全局变量
 Dim ReportDoc As New ReportDocument()

'[1].以下是在窗体加载事件里-----------------------------------------
 ReportDoc.Load(path) '加载 程序里的水晶报表的路径
Dim PaperRowKind As Integer = 0
Dim pageSettings As System.Drawing.Printing.PageSettings = New System.Drawing.Printing.PageSettings()

      For Each pageSize As System.Drawing.Printing.PaperSize In pageSettings.PrinterSettings.PaperSizes
            If pageSize.PaperName = "porv" Then'这里找到我默认的设置的纸张名字 porv
                PaperRowKind = pageSize.RawKind
            End If
        Next
      '设置报表的打印的纸张大小="porv"
   ReportDoc.PrintOptions.PaperSize = CType(PaperRowKind,CrystalDecisions.Shared.PaperSize)
      '设置报表的打印的方向  一般为竖向  一般打印特殊规格的针式的单据之类的
       ReportDoc.PrintOptions.PaperOrientation = PaperOrientation.Portrait

      '将报表设置到    CrystalReportViewer1 上
        CrystalReportViewer1.ReportSource = ReportDoc
'---------------------------------------------------------
'[2]接下来很重要 打印水晶报表报表 。
'可以在添加一个打印按钮,然后以下把这句代码放进按钮“打印”的单击事件中:

 ReportDoc.PrintToPrinter(1, False, 0, 0)'这种方法是可以得到完美的默认纸张及方向
 ' CrystalReportViewer1.PrintReport()'而不是这种方法,这个只会,纸张规格每次默认是LETTER


作者:admin 分类:未分类 浏览:1827 评论:0
留言列表
发表评论
来宾的头像