网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
Windows下实时行式打印系统设计
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
MAX_PRINTER_DRV_NUM];

//安装的所有打印机

HZDotArrayFont *m_pHzDAF;

//汉字字符的打印点阵信息提取器,可以提取多种打印字体的点阵信息,如24点阵楷体,48点阵宋体等

public:

//加载一个打印机驱动程序

void LoadPrinterDriver(GeneralPrinter *p);

//加载一个获取汉字打印点阵信息的驱动器

void LoadHzDAFDriver(HZDotArrayFont *p); //选择一个工作打印机

void SelectWorkPrinter(char *szPrinterName); //打印机控制

void SetColor(int id) {m_pPrinter->SetColor(id);};

//其他打印机控制函数

/*打印一个字符串,可以包括汉字字符,只要调用该函数就可以将信息打印出来*/

int PrintString(char *str,int len,char * ColorName=“黑色”);

};

最后是打印机驱动程序的设计,这里是设备无关性设计的关键所在。为满足系统设备无关性的要求,设计了一个包含各种基本打印动作的打印机基类,所有的打印机都从该基类派生出来。在打印机的基类中定义了打印机的各种控制代码、打印机的种种操作方法,在具体的打印机类中将它们实例化。代码如下:

class GeneralPrinter

{public :

/*PRINTCOLOR是事先定义好的打印机颜色结构,用来定义打印机每一种颜色的控制代码*/

PRINTCOLOR *m_pColor;

/*本打印机支持颜色的数量*/

int m_iPrtColorNum;

/*打印机是否支持汉字的直接打印,即该打印机本身是否带有汉字的打印字库,如果打印机不支持汉字的直接打印,汉字的打印点阵信息将由字库点阵信息提取器类负责获取。*/

BOOL m_bDirectPrintHz;

/*HPRINTHANDLE 是本系统事先定义好的打印机句柄结构,用来标识打印机的硬件端口,是数据输出到打印机的通道。*/

PRINTHANDLE m_hPrinter;

char m_szPrinterName[PRINTR_PORTNAME_MAX_LEN];

/*打印机名字,用来区别打印机的惟一标志*/

PRINTERCONTROLCODE ;

/*PRINTERCONTROLCODE 是本系统事先定义好的打印机控制代码结构,用来控制打印机行为,如打印机初始化控制代码,打印机设置页长控制代码等打印机支持的方法。*/

public:

/*szPort是打印机所接端口的端口名字,如‘com1’,‘/dev/bbp0’等*/

GeneralPrinter(char *szPort);

~GeneralPrinter();

virtual void ResetPrinter();

/*打印机初始化的方法*/

virtual void SetAutoCRLF(int iAuto); /*设置打印机是否自动换行的方法,iAuto为1表示自动换行,为0则不自动换行*/

/*如果是彩色打印机的话,下面两个函数用来设置字符的打印颜色,szColorName是颜色的名字,如“黑色”,“红色”等,但必须是打印机支持的颜色。iColorId 颜色的Id值一般为0~7之间的值。*/

virtual void SetColor(char *szColorName);

virtual void SetColor(int iColorId);

/*将打印机设置为图形模式下的操作,iMode 表示不同的图形模式,如180×180等*/

virtual void SetGraphMode(int iMode);

/*用来打印字符串(包括汉字字符)的方法,iStrLen 表示字符串长度*/

virtual int PrintString(char * szStr,int iStrLen);

/*用来打印图形的点阵信息,pData存放图形的点阵信息,比如汉字的打印点阵等*/

virtual int PrintGraphDotArray(char * pData,int iDataLen);

/*其他方法的声明*/

};

驱动程序的编写实例

要实现本系统的打印驱动,必须遵守本系统的规范,就是新的打印机驱动必须从基类GeneralPrinter派生出来,然后再将各种数据实例化,这样才能保证设备的无关性。下面以佳能的BJC5500彩色喷墨打印机为例说明驱动程序的编写方法。

class Printer_BJC5500 : public GeneralPrinter {

public:

PRINTCOLOR m_AllColor[BJC5500_PRT_

COLOR_NUM];

public:

Printer_BJC5500 (char *szPort);

~Printer_BJC5500 ();

virtual int PrintGraphDotArray(char * pData,int iDataL

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号