如何在水晶报表打印的时候,代码修改打印机默认纸张?
声明:本贴在图表区首发,图表区太冷,故在此重发,加50分,两贴150分,混合给分。
http://topic.csdn.net/u/20080131/13/835e5317-e469-48eb-ab0d-d87ac458667e.html
问题困扰多日亟待解决。
水晶报表打印特殊规格的纸张(自定义纸张,单据),不论是通过CrystalReportViewer打印,还是用报表的PrintToPrinter(1, true, 1, 1)方法打印,打印时的纸张都是按系统打印机的“打印首选项-高级-纸张/输出-纸张规格”所设置的纸张规格打印的,尽管我设置报表的rpt.PrintOptions.PaperSize = DirectCast(pszPagerSize.RawKind, PaperSize),打印也会按“打印首选项-高级-纸张/输出-纸张规格”处设置的纸张打印。
如何,在水晶报表打印时,用代码设置“打印首选项-高级-纸张/输出-纸张规格”,为我指定的纸张?
问题要求是,系统打印机的“打印首选项-高级-纸张/输出-纸张规格”纸张设置是A4(默认),在水晶报表打印时通过代码控制使打印能够按我指定的特殊规格的纸张打印,打印结束后需要保证依然是系统的“打印首选项-高级-纸张/输出-纸张规格”纸张设置还是A4
代码示例:
系统是“打印首选项-高级-纸张/输出-纸张规格”纸张设置是A4
下面的pszPagerSize是一个特殊规格的纸张,它的正确性毋庸置疑,有个Function实现它的获得,这里为了简便可以换成其他的纸张,比如A3。
下面的代码打印完成是按A4 打印的,问题是如何代码控制按pszPagerSize(A3)打印
Dim pszPagerSize As New System.Drawing.Printing.PaperSize
Dim rpt As New MyCrystalReport1
rpt.PrintOptions.PrinterName = document.PrinterSettings.PrinterName
‘此处可以换成其他类型纸张,比如A3
rpt.PrintOptions.PaperSize = DirectCast(pszPagerSize.RawKind, PaperSize)
rpt.PrintToPrinter(1, True, 1, 1)
其实我的目的非常简单,就是想保留打印默认常用纸张设置(打印首选项-高级-纸张/输出-纸张规格),在打印单据时不需要在去通过PrintDialog等方式人为手动去选择改变打印机特殊单据纸张,打印单据时,代码控制自动按特殊单据纸张打印,不影响系统打印机设置。
我的打印机是针式打印,有多种型号,主要是Epson LQ670K、LQ670K+、LQ680K。
我用的是CrystalReports for VS.Net 2005
http://topic.csdn.net/u/20080131/13/835e5317-e469-48eb-ab0d-d87ac458667e.html
问题困扰多日亟待解决。
水晶报表打印特殊规格的纸张(自定义纸张,单据),不论是通过CrystalReportViewer打印,还是用报表的PrintToPrinter(1, true, 1, 1)方法打印,打印时的纸张都是按系统打印机的“打印首选项-高级-纸张/输出-纸张规格”所设置的纸张规格打印的,尽管我设置报表的rpt.PrintOptions.PaperSize = DirectCast(pszPagerSize.RawKind, PaperSize),打印也会按“打印首选项-高级-纸张/输出-纸张规格”处设置的纸张打印。
如何,在水晶报表打印时,用代码设置“打印首选项-高级-纸张/输出-纸张规格”,为我指定的纸张?
问题要求是,系统打印机的“打印首选项-高级-纸张/输出-纸张规格”纸张设置是A4(默认),在水晶报表打印时通过代码控制使打印能够按我指定的特殊规格的纸张打印,打印结束后需要保证依然是系统的“打印首选项-高级-纸张/输出-纸张规格”纸张设置还是A4
代码示例:
系统是“打印首选项-高级-纸张/输出-纸张规格”纸张设置是A4
下面的pszPagerSize是一个特殊规格的纸张,它的正确性毋庸置疑,有个Function实现它的获得,这里为了简便可以换成其他的纸张,比如A3。
下面的代码打印完成是按A4 打印的,问题是如何代码控制按pszPagerSize(A3)打印
Dim pszPagerSize As New System.Drawing.Printing.PaperSize
Dim rpt As New MyCrystalReport1
rpt.PrintOptions.PrinterName = document.PrinterSettings.PrinterName
‘此处可以换成其他类型纸张,比如A3
rpt.PrintOptions.PaperSize = DirectCast(pszPagerSize.RawKind, PaperSize)
rpt.PrintToPrinter(1, True, 1, 1)
其实我的目的非常简单,就是想保留打印默认常用纸张设置(打印首选项-高级-纸张/输出-纸张规格),在打印单据时不需要在去通过PrintDialog等方式人为手动去选择改变打印机特殊单据纸张,打印单据时,代码控制自动按特殊单据纸张打印,不影响系统打印机设置。
我的打印机是针式打印,有多种型号,主要是Epson LQ670K、LQ670K+、LQ680K。
我用的是CrystalReports for VS.Net 2005
...全文
相关推荐
水晶报表自定义纸张大小打印
水晶报表查看器CrystalReportViewer自带打印功能,调用当前系统默认打印机进行打印,但.NET里的水晶版本不支持Web打印,需要水晶报表10以上的版本才支持。另外由于其他原因,我们大多需要自己写代码进行打印,这就牵扯到如何写代码、如何设置打印参数的 问题,以下是一些基本知识:
C#实现调用打印机(打印字符串、打印绘图、打印图片),还差打印水晶报表
C#实现调用打印机(打印字符串、打印绘图、打印图片),还差打印水晶报表
水晶报表 套打 设置纸张大小
水晶报表 套打 设置纸张大小
水晶报表打印边距格式设置
可以自定义打印格式,如左边距,右边距,纸张选择,打印机选择等.
winform 水晶报表打印,无预览
winform 水晶报表打印,无预览 。USB 热敏打印机。


