打印基础知识(1)
来源:互联网 发布:php 变量前加@ 编辑:程序博客网 时间:2024/06/04 23:21
打 印 技 术
( 视频讲解:63分钟)
打印机是计算机常用的外设之一,人们在工作和学习中也要经常打印文件。因此,在编写应用软件时,就不能不考虑在程序中加入打印功能。本章将介绍使用Visual C++ 6.0设计打印功能,首先介绍打印的基础知识,然后介绍如何进行打印输出以及打印控制。
通过阅读本章,您可以:
: 掌握打印基础知识
: 应用打印输出
: 控制打印方向
: 设置打印纸大小
12.1 打印基础知识
视频讲解:光盘/TM/Video/12/打印基础知识.exe
对于初学者来说,打印是Windows程序设计中比较困难的部分。在进行打印设计之前,首先要了解一些打印的基础知识,其中包括打印机、分辨率和映射模式,只有掌握了这些基础知识以后才能够对打印进行更深入的研究。本节将介绍打印的基础知识。
12.1.1 打印机介绍
打印机是将计算机的运行结果或中间结果打印在纸上的常用输出设备,利用打印机打印出各种文字、图形和图像等信息。打印机作为一种极有用的输出设备已被越来越多的计算机用户接受。
在进行打印时,经常使用一些英文字母缩写来表示分辨率、字符大小、打印速度等参数。一些常见的英文字母缩写的含义介绍如下。
þ cpi(Characters Per Inch):每英寸所含的字符数,用来表示字符的大小、间距。
þ cpl(Characters Per Line):每行中所含的字符数,用来横向表示字符的宽度与间距。
þ cps(Characters Per Second):每秒所能打印的字符个数,用来表示打印机的打印速度。
þ dpi(Dot Per Inch):每英寸所打印的点数,用来表示打印分辨率。
þ lpi(Lines Per Inch):每英寸所含的行数,用来表示垂直方向字符的大小、间距。
þ ppm(Papers Per Minute):每分钟打印的页数,是衡量打印机输出速度的一个重要指标。
þ pixel:像素,图片元素的简称,在计算机屏幕或打印纸上形成图像的一个点。
12.1.2 分辨率
分辨率是一个表示平面图像精细程度的概念,通常是以横向和纵向点的数量来衡量的,表示成水平点数*垂直点数的形式。在一个平面内,显示的点越多,分辨率就越高,显示的图像越细致。分辨率的种类有很多,下面对打印时需要使用的屏幕分辨率和设备分辨率进行一些简单的介绍。
þ 屏幕分辨率:决定出现在屏幕上的信息数量(以像素为单位)的设置。低分辨率能使屏幕上的项目大一些,但屏幕区域会变小;高分辨率扩大了整个屏幕区域,但单个项目会变小。
þ 设备分辨率(Device Resolution):又称输出分辨率,指的是各类输出设备每英寸上可产生的点数,如显示器、喷墨打印机、激光打印机、绘图仪的分辨率。这种分辨率通过DPI来衡量,目前,PC显示器的设备分辨率在60~120DPI之间,而打印设备的分辨率则在360~1440DPI之间。
12.1.3 映射模式
在屏幕上绘制图像或文字的过程中,使用GDI对象可以很容易地实现,但是,如果将这些图形和文字打印出来能否与屏幕的效果相同呢?这就取决于映射模式了,映射模式反映了逻辑设备单位与实际物理坐标单位之间的对应转换关系。映射模式可以通过设备环境类的一个成员函数SetMapMode来设置。
语法如下:
virtual int SetMapMode(int nMapMode);
参数说明如下。
nMapMode:Windows提供的映射模式。可选值如表12.1所示。
表12.1 Windows映射模式
映 射 模 式
Y轴正方向
描 述
MM_TEXT
向下
默认模式,1个像素(文本映射模式)
MM_LOMETRIC
向上
0.1毫米(固定比率映射模式)
MM_HIMETRIC
向上
0.01毫米(固定比率映射模式)
MM_LOENGLISH
向上
0.01英寸(固定比率映射模式)
MM_HIENGLISH
向上
0.001英寸(固定比率映射模式)
MM_TWIPS
向上
1/1440英寸(固定比率映射模式)
MM_ISOTROPIC
用户自定义
相等缩放轴上的任意单位,X轴和Y轴单位相等(可变比率映射模式)
MM_ANISOTROPIC
用户自定义
任意缩放轴上的任意单位(可变比率映射模式)
U 注意:Y轴正方向的映射模式在不改变原点时,因为逻辑坐标Y值向上增长,所以在视口中的逻辑坐标值都是负的,在绘制图形时,很容易将图形绘制到屏幕上方。
设置映射模式后,传给绘图函数的坐标值都通过GDI内部的映射机制转换成设备坐标。
如果有需要,还可以通过SetWindowOrg函数来改变窗口坐标(逻辑坐标)的原点,用SetView PortOrg函数来改变视口坐标(设备坐标)的原点。
U 注意:在MM_ANISOTROPIC和MM_ISOTROPIC模式下,还可以使用SetWindowExt函数设定逻辑环境的大小,用SetViewPortOrg函数来设定视口起点坐标。这两个函数将逻辑坐标转换为设备坐标。
设备环境本身提供了一些函数实现逻辑坐标和设备坐标间的互换。
þ DPtoHIMETRIC函数:用于将设备坐标单位转换为HIMETRIC坐标单位,该函数以像素为单位进行转换。
þ PptoLP函数:可以接受一个指向CPoint类或者CRect类对象的指针作为参数,然后把它所指向的对象从设备单位转换为逻辑单位。该函数以点为单位进行转换。
þ HIMETRICtoDP函数:将HIMETRIC单位转换为设备单位,该函数以像素为单位进行转换。
þ HIMETRICtoLP函数:将HIMETRIC单位转换为逻辑单位,该函数以像素为单位进行转换。
þ LptoDP函数:将逻辑单位转换为设备单位。该函数以点为单位进行转换。
þ LPtoHIMETRIC函数:将逻辑单位转换为HIMETRIC单位,该函数以像素为单位进行转换
文章来自:http://book.csdn.net/bookfiles/1232/100123236716.shtml
- 打印基础知识(1)
- 打印基础知识(2)
- 打印基础知识(3)
- 打印基础知识(4)
- IO打印流基础知识
- 基础知识 打印图形及常见问题
- 【基础知识】:链表反序打印
- (java 基础知识) Java打印---javax.print
- 基础知识1
- 基础知识1
- 基础知识1
- 基础知识1
- 基础知识1
- 1 基础知识
- 基础知识1
- Theano2.1.5-基础知识之打印出theano的图
- 【Java基础知识】IO流--标准输入输出流、打印流PrintStream
- Java基础知识_day06_(螺旋矩阵,控制台打印图案)
- 将普通jar文件打包成osgi bundle的方法总结
- 非常漂亮的jQuery桌面插件
- FreeBSD7.0+opengate+ipfw(网页网关认证)Captive Portal(1)
- FreeBSD7.0+opengate+ipfw(网页网关认证)Captive Portal(1)
- 浅谈Java多线程的同步问题【转载】
- 打印基础知识(1)
- Share Precompiled Header with multiple projects
- FreeBSD7.0+opengate+ipfw(网页网关认证)Captive Portal(2)
- 不能编译gdbm程序?(解决)
- 检验密码强度的JS类
- Silverlight中Setter作用及用法
- 打印基础知识(2)
- C++ 对 线性数组的 删除 和 插入操作
- cent os 下安装 svn