vb.net,水晶报表打印时纸张变为信纸 , 打印机里面已经自定义好了纸张,用EXCEL,WORD就正常,请高手指点别的地方转来的!~ 不过我们以前做的时候 都是在打印机里增加一种打印纸 然后就可以选了!~
一下转载内容!~~~
水晶报表-强大而成熟 , 但是多少男儿汉败倒在他的自定义纸张设置上 。
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 唉
VB.NET中怎么获取当前打印机的纸张类型我是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.Net 编程时如何获得打印机的物理边距网络上找到这个比较全面vb.net打印机纸张,vb.net打印机纸张你试一下vb.net打印机纸张 , 我记得以前也是这么设置vb.net打印机纸张的 。
intGetDeviceCaps(HDChdc,intnIndex);
其中,hdc用来指定设备环境句柄,nIndex用来指定要获取的参量索引,对于打印机而言,它常常需要下列的预定义值vb.net打印机纸张:
LOGPIXELSX打印机水平分辨率
LOGPIXELSY打印机垂直分辨率
PHYSICALWIDTH打印纸的实际宽度
PHYSICALHEIGHT打印纸的实际高度
PHYSICALOFFSETX实际可打印区域的物理左边距
PHYSICALOFFSETY实际可打印区域的物理上边距
下面的函数代码就是用来设置页边距,并且还计算页面的物理边距:
voidCEx_Prn1View::SetPageMargin(CDC*pDC,CPrintInfo*pInfo,intl,intt,intr,intb)
//l,t,r,b分别表示左上右下边距,单位为0.1mm
{
intnOldMode=pDC- GetMapMode();
pDC- SetMapMode(MM_LOMETRIC);
//计算一个设备单位等于多少0.1mm
doublescaleX=254.0/(double)GetDeviceCaps(
pDC- m_hAttribDC,LOGPIXELSX);
doublescaleY=254.0/(double)GetDeviceCaps(
pDC- m_hAttribDC,LOGPIXELSY);
推荐阅读
- html5类,html5类选择器
- cim系统erp,erp系统crm系统
- Java第一行代码第二章,java代码第一行一般是什么意思
- 虚拟机扫描仪,虚拟机扫描仪驱动
- mysql回车怎么去掉 mysql回车后语句不执行
- 快手直播为什么不清晰,快手直播间不清晰
- pdf中怎么把页面竖过来,pdf横页怎么变竖
- 网红故事直播,网红说故事
- php数据显示源码 php源码数据库文件是哪个