资源描述:
《VC打印机编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1.1--打印机编程1.1.1打印机介绍1.打印术语cpi(charactersPerInch)每英寸内所含的字符数,用来表示字符的大小、间距。cpl(CharactersPerLine)每行中所含的字符个数,用来在横向表示字符的宽度和间距。cps(CharacterPerSecond):每秒所能打印的字符个数,用来表示打印机的打印速度。当然它和打印的字符大小与笔划有关。一般以10cpi的西文字符为基准来计算打印速度.dpi(DotPerInch)每英寸所打印的点数(或线数),用来表示打印机打印分
2、辨.这是衡量打印机打印精度的主要参数之一.该值越大表明打印机的打印精度越高.lpi(LinesPerInch):每英寸所含的行数,用来表示在垂直方向字符的大小间距.ppm(PapersPerMinute):每分钟打印的页数,这是衡量打印机打印速度的重要参数,是指连续打印时的平均速度.在大多数的Internet及多媒体应用软件中,为使画面下载速度增快,大都是采用72dpi或75dpi的低解析度影像,如果仅从屏幕上观看,画质还可以,但是当使用解析度较高的打印机打印出来时,就会发生如锯齿状或是模糊不清的
3、问题.这主要的原因在于原始影像本身的像素不能呈现高解析度的输出品质.因此,无论使用的打印机品质或解析度多高,打印品质仍不理想.使用HPSmartFocus智慧聚焦技术的打印机驱动程序,将低品质的影像自动地做解析度提升的处理.这样一来,就可以打印出较清晰的影像.sRGB:(standardRedGreenBlue)是一种彩色语言协定.它提供了一个标准方法来定义色彩.让计算机的周边设备与应用软件对于色彩有一个共通的语言.sRGB是由HP和微软共同推出的开放业界标准.2.打印机技术指标(1)打印质量衡量
4、图像清晰程度最重要的指标就是分辨率(dpi每平方英寸多少个点).300dpi是人眼分辨打印文本与图像的边缘是否有锯齿的临界点.再考虑到其他的一些因素,只有360dpi以上的打印效果才能基本令人满意.要将基色组成的色点转换成印刷上由四色墨水喷出的各种色彩效果,就需要由色彩转换的驱动程序来实现.目前各打印机厂商均有自已的图像调整技术.(2)打印速度打印机的打印速度是每分钟打印多少页纸(PPM),打印机速度与打印的色彩和打印分辨有关.(3)色彩数目更多的彩色墨盒数就意味着更丰富的色彩.有红、黄、蓝三色单
5、墨盒。还有黑、淡蓝和淡红的六色打印机。1.1.2分辨率分辨率是一个表示平面图像精细程序的概念,通常它是以横向和纵向点的数量来衡量的,表示成:水平点数*垂直点数的形式.在一个固定的平面内,分辨率越高,图像越细致.分辨率有多种.在显示器上有表示显示精度的显示分辨率,在打印机上有表示打印精度的打印机分辨率.1、显示分辨率显示分辨率是显示器在显示图像时的分辨率。显示分辨率的数值是指整个显示器所有可视面积上水平像素和垂直像素的数量.例如:800*600的分辨率是指在整个屏幕上水平显示800个像素,垂直显示6
6、00个像素.显示分辨率的水平像素和垂直像素的总数总是成一定的比例:一般为4:3,5:4,8:52、打印机分辨率打印机分辨率直接关系到打印机输出图像或文字的质量好坏。打印机分辨率用dpi(dotperinch)来表示。喷墨打印机和激光打印机的分辨率通常是相同的.例如:打印机分辨率为600dpi,是指打印机在一平方英寸的区域内垂直打印600个点,水平打印600个点.总共可打印360000个点.1.2--打印机编程基础(未完)1.2编程基础下面将了解打印编程中至关重要的两个概念"设备环境"和"映射模式"
7、1.2.1设备环境设备环境本身是GDI(GraphicsDeviceinterface)对象.每个C++设备对象有一个相关的设备环境.它由一个32位HDC类型句柄来标识.GDI是Windows核心DLL中的一组接口函数.这些函数处于硬件的驱动程序之上.当应用程序调用这些函数的时候,它们再调用驱动程序提供的接口函数.1.CDC类使用MFC编程,所用的设备环境不是CDC就是从CDC派生的。CDC类中有两个与底层GDI对象有关的句柄m_hDC和m_hAttribDC.与m_hDC相关的GDI对象处理绘图
8、函数的所有输出流;与m_hAttribDC句柄有关的GDI对象处理所有与绘图属性有关的操作。如颜色属性和绘图模式。每个窗口、控件都拥有一个覆盖窗口或控件的设备环境。我们可以使用任何一个控件的设备环境,从而绘制控件或者改善倥件的外观。获得设备环境对象指针需要调用GetDC函数。在构造一个CDC对象,并且对它处理完之后,务必使用ReleaseDC()函数将CDC对象释放。GetDC()函数和ReleaseDC()函数是CWnd类的成员函数,任何CWnd类及其派生类都可以通过调用它获得和