vb.net,水晶报表打印时纸张变为信纸,打印机里面已经自定义好了纸张,用EXCEL,WORD就正常,请高手指点
发布网友
发布时间:2022-05-14 11:03
我来回答
共2个回答
热心网友
时间:2023-10-14 22:42
别的地方转来的!~ 不过我们以前做的时候 都是在打印机里增加一种打印纸 然后就可以选了!~
一下转载内容!~~~
水晶报表-强大而成熟,但是多少男儿汉败倒在他的自定义纸张设置上。
1:水晶报表是纸形打印。所以自定义纸张类打印肯定要在电脑上增加对应的纸张才行(手动加还是代码加这个不管)
2:纸张分3种系统内建(不可更改),自定义,打印机自带。很遗憾的是水晶只认系统内建的。
3:打印机一般分2种。1普通喷墨的A4,2有联单的针式
4:注意水晶报表不是所见所得的,预览的纸张是什么不一定打印的就是什么纸张(受3方影响。打印机、报表内设置、PAPERSIZE 属性,三者之间关系不详)。
5:对于第一种A4纸张。没什么好说的系统内建纸型。水晶报表认。直接指定就行
6:对于第二种联单的自定义型一般专机专用,当然是建好纸张让打印机默认自己建的纸张为默认首选了。
7:然后设置水晶报表使用打印机默认的纸张PaperSize = CrystalDecisions.Shared.PaperSize.DefaultPaperSize
以上能保证专机专纸的任何打印。:要注意第4点。如果你是自定义纸而且要预览要保障预览和打印都用指定的纸张,那么预览时你得指定PaperSize=你自定义纸张的索引号。打印的时候又改成CrystalDecisions.Shared.PaperSize.DefaultPaperSize
8:如果你想一个打印机多个自定义纸张那么用API吧动态改变打印机的默认纸张,根据以上拐2弯就能实现了遗憾的是网络打印机的话就没折了。o(︶︿︶)o 唉
热心网友
时间:2023-10-14 22:42
发现vb相关的报表都用的不顺心,建议还是使用Excel来做,代码不清楚或不会使用的,都可以在vba中先生成,然后直接饮用到vb中,特方便!追问z自己解决了,CrystalReportViewer只预览,用ReportDocument的方法打印
Dim rd As New ReportDocument()
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
rd.PrintToPrinter(1, True, 0, 0)
End Sub