别的地方转来的!~ 不过我们以前做的时候 都是在打印机里增加一种打印纸 然后就可以选了!~
创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的源汇网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
一下转载内容!~~~
水晶报表-强大而成熟,但是多少男儿汉败倒在他的自定义纸张设置上。
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 唉
“报表宽度大于纸的宽度”是因为你的datareport宽度实际大于纸张的宽度,设置一下,(最笨的方法就是改变顶上的标尺位置直到,不提示“报表宽度大于纸的宽度”)如下图:(图中的位置我试过了,可以的)
Orientation属性
该值指出文档是以纵向还是横向的方式被打印。在设计时是不可用的。
属性有下列值,及表示的含义:
1
文档打印以纸的窄边作顶部
2
文档打印以纸的宽边作顶部。
希望对你有帮助!有问题可以给我发邮件qeelin@qq.com
我是VB.NET 2010版本
窗体上添加一个按钮,代码如下:
Imports System.Drawing.Printing
Public Class Form1
'采用关键字WithEvents声明一个PrintDocument对象,会引发它的PrintPage事件
Private WithEvents My_PrintDocument As PrintDocument
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'实例化PrintDocument对象
My_PrintDocument = New PrintDocument
'显示默认的打印机名称
MsgBox(My_PrintDocument.PrinterSettings.PrinterName)
'显示默认的打印机纸张类型名称
MsgBox(My_PrintDocument.DefaultPageSettings.PaperSize.ToString)
End Sub
End Class
首先:
用VB控制针式打印机,这个不是VB功能,控制硬件打印,同时控制纸张,你会用到VC的相关知识,比如接口,DLL调用,以及打印接口控制等等。
其次,
打印纸张控制,类似于报表,需要你深入的了解。