打印程序

2024-08-02

打印程序(共6篇)

打印程序 篇1

Visual Basic (VB) 给用户提供了可视化编程环境, 因其简单易学、功能强大而得到了广泛的应用, 尤其是在ERP软件开发中利用率较高。VB提供了多种实现打印的方法, 下面逐一进行说明。

一、Print Form方法

它只需要一行代码, 即可打印当前窗口的可视区域。首先将要打印的内容在屏幕上显示出来, 然后执行窗体的Print Form, 窗体则自动将要打印的内容发送到Printer对象上, 其语法格式如下:[窗体.]Print Form。如果窗体中包括图形, 那么打印前应先置窗体的Auto Redraw属性为真。此方法优点是简单、易用并且功能强大, 但也存在内存消耗大、打印粗糙、速度慢等缺陷。

二、Printer对象

VB中Printer对象是一个独立于打印机设备的封装, 它可以代表不同的打印机, 初始时, Printer对象为系统缺省的打印机, 也可以使用下列语句:Set Printer=Printers (2) (其中2代表Printers集中的第二个打印机) 对打印机进行指定。

Printer对象具备例如:Color Mode、Copies、Duplex、Printquality等控制打印机特征的属性, 提供了Newpage、End Doc、Kill Doc等控制打印过程的方法, 以及大多数由窗体和图片框控件提供的图形属性和方法, 它还拥有Font的所有属性, 通过控制Printer对象的上述属性和方法即可完成打印操作。

利用Printer对象开发的打印程序主要靠其提供的New Page (打印新的一页, Current X、Current Y置为新页的左上角, 可完成多页功能。) 、End Doc (将打印任务加入打印机队列) 、Kill Doc (取消打印任务) 控制打印过程的。一般情况下, 打印程序完成多页打印时会多次执行New Page, 结束时执行一次End Doc将打印任务加入打印机队列。如果希望显示空白页, 则可在新的一页上只使用Printer.Print""打印空字符即可。如:

为了通过Printer对象实现文本和图形的打印, 获得最好的打印质量, 还需要对VB控制打印机的多种属性有更深入的理解, 例如打印机的坐标体系向屏幕坐标体系的转换、打印机字体尺寸的确定等。

VB为用户提供了Windows公用标准对话框Common Dialog控件:【打开】、【文件另存为】、【颜色】、【字体】、【打印】。利用公用标准对话框【打印】开发VB的打印程序, 将大大缩短程序的开发周期。应用程序中要使用公用对话框, 必须首先在工具箱中添加公用对话框控件。该动作通过激活【部件】对话框, 选中Microsoft Common Dialog Control6.0, 单击【确定】即可。然后再将公用控件添加到窗体上并设置相应属性, 该控件具有的属性有Color、Font、Print、Help等。这样就可利用Common Dialog控件来控制Printer的各种属性。如:

三、并口热敏打印机在商场款台中应用较广。通过以下语句可以控制并口热敏打印机进行打印

四、VB自带的报表功能

通过在工程中添加Data Report来生成并设置报表文件, 此方法适用于对数据库的报表。报表中分为五部分:报表标头 (Section4) 、页标头 (Section2) 、细节 (Section1) 、页注脚 (Section3) 、报表注脚 (Section5) 。可以其中分别添加报表控件, 然后通过属性指定内容, 或通过语句控制打印内容。

五、利用EXCEL进行打印

打印前需要把要打印的数据输出到EXCEL表格中, 然后通过VBA语法来进行打印操作。

六、利用WORD进行打印

打印前需要把要打印的数据输出到WORD文档中, 然后通过VBA语法来进行打印操作。

当然还有很多其他打印方式, 如第三方控件进行打印条形码、照片打印等, 本文仅介绍了VB中常用的打印方式, 读者可以编程时根据实际进行综合利用。

参考文献

[1]超维度工作室:Visual Basic.NET Win32API[M].北京:中国铁道出版社, 2003

[2] (美) 荷兹纳 (Steven Holzner) :Visual Basic6技术内幕[M].北京:机械工业出版社, 1999

[3]林永张乐强:Visual Basic6.0用户编程手册[M].北京:人民邮电出版社, 2002

[4]崔彦锋许小荣:VB网络与远程控制编程实例教程[M].北京:北京希望电子出版社, 2002

[5]王川阮兴平于平剑何建波:中文版Office2000VBA一册通[M].北京:人民邮电出版社, 2000

打印程序 篇2

解决方案:

出现这个问题时,首先请依据如下步骤手动启用该服务:

1、在桌面选中我的电脑,鼠标右键选择管理;

2、在管理窗口中,选取服务和应用程序扩展项目下的服务选项(如图),在右侧出现系统服务列表中找到Print Spooler服务,双击进入Print Spooler服务设置;

3、在Print Spooler服务设置窗口中,将启动类型设置为自动,点击启动按钮;此时系统会尝试启动该服务;当服务启动成功后,服务状态会显示为已启动,重新进行添加或是使用打印机的其它操作。

另外,如果按上述步骤执行后仍无法启动该打印后台程序服务,或执行打印机操作时报错依旧,多是与操作系统重要的文件存在问题相关,尝试对电脑查毒后再试;仍有问题,建议备份重要文件后,重新安装操作系统。

大家知道,利用后台打印功能可以确保Windows系统快速将操作控制权限交还给打印操作者,从而确保打印用户始终高效地操作计算机。不过,要是对后台打印功能管理不当的话,有时不但不会提高系统的运行效率,反而会影响打印机的输出速度。为了有效提高打印效率,我们必须对系统的后台打印功能进行合适管理;这不,本文下面就以Windows 2003操作系统为例,来向各位详细介绍几则后台打印的管理技巧!

巧移位置,高效应对大批量作业

后台打印功能在默认状态下,会自动将接受到的打印作业,按照打印作业执行时间的先后顺序,依次缓存到Windows 2003系统中的%systemroot%system32spoolprinters目录中,之后后台打印功能会自动对当前打印机的工作状态进行监视,以决定到底何时执行某个特定的打印作业。但由于%systemroot%system32spoolprinters目录同时包含了Windows 2003的其他系统文件,而在进行大批量打印操作时,系统会频繁地访问这些系统文件,这将导致打印速度以及其他系统性能的严重下降。另外,在进行大批量打印操作时,可能会有不少大容量的打印作业保存在硬盘的%systemroot%system32spoolprinters目录中,如此一来就容易耗用掉宝贵的硬盘资源,从而影响整个计算机的运行性能。有鉴于此,我们必须将后台打印的缓存位置巧妙转移到与操作系统无关的磁盘分区中,以尽可能地降低后台打印功能对系统整体性能的影响,确保打印机能够高效、快速地应对大批量作业。在转移后台打印功能的缓存位置时,可以按下面的方法来操作:

首先单击开始菜单中的设置选项,从弹出的下级菜单中单击打印机和传真机选项,打开打印机的列表窗口,用鼠标选中该窗口中的目标打印机;

接着单击该窗口菜单栏中的文件选项,并执行下拉菜单中的服务器属性命令,打开打印机服务器属性界面,单击该界面中的高级选项卡,进入到如图1所示的高级选项设置界面;

在该界面的后台打印文件夹文本框中,你将看到系统默认的后台打印文件夹保存路径为%systemroot%system32spoolprinters,要想更换它的保存路径时,只要在该文本框中直接输入新的路径就可以了;例如,要想把后台打印的缓存位置转移到F:qqq文件夹中时,只要输入F:qqq并重新将计算机系统启动一下就可以了,

不过上面的方法会改变所有打印机后台打印缓存位置,要是在当前计算机系统中安装了多台打印机时,我们有没有办法仅仅只转移指定打印机的后台打印缓存位置呢?答案是肯定的,不过这需要通过修改系统的注册表才能实现,这对不熟悉注册表操作的菜鸟朋友来说有点难度。但是菜鸟朋友们只要依次按照如下步骤,还是可以轻松完成后台打印缓存位置的转移任务的:

依次单击开始/运行命令,在弹出的打开文本框中直接输入字符串命令regedit,单击回车键后打开系统的注册表编辑界面;

在该界面的左侧窗格中,用鼠标逐一展开HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPrintPrintersHP LaserJet 4VC注册表子键(其中HP LaserJet 4VC为安装在笔者计算机中的指定打印机名称,用户自己的打印机名称可以在打印机列表窗口中清楚地查看到),如图2所示;

在指定打印机名称的右侧窗格区域中,检查一下是否存在一个名为SpoolDirectory的字符串值,要是找不到的话,可以依次单击注册表编辑窗口中的编辑/新建/字符串值命令,并将新创建的字符串值名称设置为SpoolDirectory;之后再用鼠标双击该字符串值,在随后出现的数值数据设置框中,可以直接输入指定打印机的新缓存路径,最后单击确定按钮并刷新一下系统注册表就可以使上述设置生效了。

设置服务,巧妙解决后台打印故障

有时在计算机系统中添加新的打印机时,我们常会发现系统提示无法运行打印机后台程序的错误,很显然这种打印故障与后台打印功能有关。那么打印机为什么会出现这种故障,我们又该如何解决该故障呢?

后台打印程序无法运行,通常有两种可能,一种可能是打印机的驱动程序由于受到病毒的攻击或者频繁卸载软件的干扰而导致某些驱动文件丢失,另外一种可能就是打印机的后台打印服务由于种种因素导致意外停止,因此要解决这种后台打印故障就需要从两个方面着手:

首先找来最新版本的杀毒软件,将其安装在出现后台打印故障的计算机中,然后通过网络将杀毒程序升级到最新版本,之后再对计算机系统进行彻底查杀,看看计算机中是否有病毒存在;

倘若上面的方法不能解决该后台打印故障的话,那多半是系统的后台打印服务因系统优化或设置不当被意外停止了,此时我们可以按下面的操作来将它重新启动起来:

依次单击开始/控制面板命令,打开系统的控制面板窗口,双击该窗口中的管理工具图标,再在其后弹出的界面中双击服务图标,在之后出现的服务列表窗口中,找到print spooler服务项目;

打印程序 篇3

1 程序的主要功能

根据道路与桥梁工程设计过程中的实际情况,我们开发了Auto CAD批量打印程序,如图1所示,主要具有以下功能:

1)批量打印多个文件,每个文件中可以包含多个图形;

2)自动识别图框,图框类型可以为多段线、块或外部参照;

3)自动设置打印比例。

2 利用VB基于Auto CAD二次开发

2.1 开发原理

Active X Automation是微软公司基于组件对象模型体系结构开发的一项技术,Auoto CAD自R14版本起加入了Active XAutomation编程接口,通过Active X Automation,Auto CAD提供了由对象模型表述的可编程对象,这些对象可由其他程序来创建、操纵和编辑。

Visual Basic(以下简称VB)是微软公司推出的面向对象可视化编程工具,VB作为我们常用的支持Active X技术的编程开发工具,使Auto CAD与其他运用程序的数据共享变得更加方便。

2.2 Auto CAD对象模型

Auto CAD对象是采用分层方式来操作的,每一个对象就代表Auto CAD的一个元素。顶层对象为应用程序对象Applica-tion,下面是文档Document对象、参数选择Preferences对象、主菜单栏Menu Bar对象及菜单工具Menu Groups对象。文档Docu-ment对象就是Auto CAD图形,包含Model Space、Paper Space、Blocks、Layers、Plot与Utility等对象,它提供访问所有图形对象(线、圆、弧等)及大部分非图形对象(打印、图层、线型、字型等)。在参数选择(Preferences)对象下边为对象集,每个对象集均对应选项对话框的一个选项卡,它们共同提供访问所有的注册设置。Auto CAD对象模型如图2所示。

2.3 VB与Auto CAD的连接

VB与Auto CAD连接的源代码如下所示:

2.4 VB对Auto CAD的操作

通过VB面向对象的编程环境,可以对使用属性、方法等对Auto CAD的各种对象进行操作。下面是利用VB6开发的用户程序实例,其功能是在模型空间中绘制多段线,然后获取并显示多段线坐标,并对多段线的端点坐标、颜色进行修改。

3批量打印程序的实现

3.1多个文件选择

为实现在图纸打印过程中,能依次选择多个文件进行打印,达到无人值守的目的,程序采用List Box控件对文件存放路径及名称进行存取。使用Add Item或者Remove Item方法可以添加或者删除项目,使用List、List Count和List Index属性可以访问项目。

3.2获取打印机、样式表及图纸尺寸

Layout对象包含模型空间、图纸空间的打印设置。用Layout.Get Plot Device Names获取所有可用的打印设备名称,LayoutGet Canonical Media Names获取指定打印设备的所有图纸尺寸Layout.Get Plot Style Table Names取得全部可用的打印样式表名称,添加到相应的Combo Box控件中用于选择。调用上述方法前必须先调用Refresh Plot Device Info方法,更新打印机、图纸尺寸和打印样式表信息,以反映当前系统状态。Layout

3.3设置打印机、样式表及图纸尺寸

Active X中的布局表现形式与Auto CAD用户界面中的表现形式略有不同。在Active X中,标准Auto CAD布局可以分成两个独立的对象:Layout和Block。对象Layout为Auto CAD用户界面上的打印和布局显示配置。Block对象包含布局的几何图形。在Active X中,除了图纸空间布局外,模型空间也被看作是一个布局。使用Active Layout属性获取文档的活动布局,Config Name属性设置打印机配置名,Canonical Media Name属性设置图纸尺寸,Style Sheet设置打印样式表。

3.4获取图框并设置打印区域

为设置打印区域,需从图形中过滤出符合特征的图框 ,程序采用Select方法选择对象,Fiher Type和Filter Data作为过滤参数,将选择的对象添加到选择集中。Filter Type为指定使用的过滤器类型的DXF组码,Filter Data为过滤器的值。遍历选择集中的每个对象,可采用Get Bounding Box方法获得每个图框的的左下角点和右上角点坐标 ,即为图纸的打印范围。通过Set Window To Plot方法设置打印区域。一个Auto CAD文件中如存在多个图形的情况,还需对获取的图框坐标进行排序,以适应给定的打印顺序进行打印,如“先下后上,先左后右”、“先上后下,先左后右”等。If Option1.Value = True Then

3.5打印比例的自动设置

用Layout.Set Custom Scale方法可设置打印的比例,参数分别为给定的标准图框打印长度、获取的实际图框长度。

3.6打印偏距、图纸方向、打印份数设置

如图形采用居中打印,可设置Center Plot属性为True,否则可使用Plot Origin属性设置X、Y方向的打印偏移值;对于图纸方向可使用Plot Rotation属性进行设置;对于打印份数可通过Number Of Copies属性给定。

3.7打印预览及输出

创建打印设置后,可先使用Display Plot Preview方法进行打印预览,预览没问题后,采用Plot To Device方法输出到打印机或pdf虚拟打印机。

3.8当前图形及局部打印

为适应更广泛的打印情况,可在程序中加入直接打印当前图形中的所有图纸或局部图纸代码。

4 结束语

作为经常使用Auto CAD的人员来说,掌握一些VB开发的基本知识,对工作将很有帮助,可以利用VB开发出许多很实用的程序,提高工作效率。由于篇幅所限,本文不能提供Auto CAD批量打印程序所有的代码,仅仅给出了解决问题的相关思路。

参考文献

[1]张国宝.AutoCAD Visual Basic开发技术[M].北京:科学出版社,2000.

打印程序 篇4

第一步:点击“开始”菜单——>选择“运行”——>在运行中输入“services.msc”(不含引号),点击确定打开本地服务;

第二步:在“服务(本地)”右边窗口中找到并双击打开“Print Spooler”服务;

第三步:将“启动类型”设置为“自动”——>再点击“服务状态”下方的“启动(S)”,将该服务服装调整为“已启动”——>点击“确定”退出;

补充说明:假如在启动“Print Spooler”服务时,系统提示“系统找不到指定路径”,请点击“开始”菜单——>选择“运行”——>输入“regedit”,点击确定打开注册表——>展开项目HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices——> 在Services项目中找到并单击“Spooler”子项目——>在右边窗口中查看是否存在“ImagePath”的键值——>如果有双击打开后,将其数值数据更改为“%SystemRoot%system32spoolsv.exe”——>如果没有请新建“字符串值”,将其命名为“ImagePath”,将其数据数值设置为“%SystemRoot%system32spoolsv.exe”——>重新及启动计算机即可;

总结:造成“打印后台程序服务没有运行”的问题很大部分原因都是因为在系统优化时禁用了后台打印服务造成的,按照上述方法启动Print Spooler”服务即可解决“打印后台程序服务没有运行”的问题,

如何解决打印后台程序服务没有运行的问题

打印程序 篇5

操作票是保证运行人员操作设备的正确性, 保证操作过程中人身安全及设备安全的有效措施。是准许运行人员正确操作的书面凭证, 是防止人为误操作 (如错拉、错合、带负荷拉隔离开关及带地线合闸等) 的有效措施。因此严格执行操作票制度, 保证操作票的合格率是相当重要的。自从我厂实施新的“两票”管理, 办理一份工作票需跟两份操作票, 为准确办理操作票, 需两人专职填写办理操作票, 办理操作票时间平均每天两人两个小时, 填写办理操作票的工作量相当大, 而且填写出现的的废票率很高, 浪费纸张。为解放运行人员劳动力和提高操作票的合格率, 通过电脑打印操作票尤为重要, 因此编写开发电脑系统应用程序打印操作票软件事在必行, 因此在强化管理, 强调信息的社会中, 利用现代科技提高工作效率, 就显得越来越重要。本人利用业余时间开发出“电气操作票自动生成打印程序”应用软件。

本系统开发的目的从提高办理操作票工作的效率出发, 摆脱过去由人用纸和笔进行的费时费力的繁重工作, 即利用成熟的计算机系统来实现办理操作票的自动化。本系统根据天龙热电的一些实际情况而编制的操作票打印系统。

首先对开发平台作下介绍:操作系统是在windows xp sp3上, 应用C#语言开发, 集成开发环境选择了Microsoft Visual Studio 2008, .NET Framework版本是3.5。

2 系统分析

2.1 标准操作票打印

标准操作票打印模块主要负责对工作中标准的操作票 (即常用的不需要变动的或很少变动的操作票) , 能实现自动套用操作票格式并预览打印。标准操作票主要包括1#、2#、3#、4#机组转热备用、升压并列、解列、转冷备用、联动试验、及备励试验操作票, 厂用电与备用电源互为切换等。

2.2 厂用开关柜操作票生成及打印

厂用开关柜操作票生成及打印模块负责根据选择开关柜所在的位置、开关的类型、及输入的开关的名称编号和操作任务选项来套用相应的格式, 自动生成相应操作票功能。此模块主要设计6KV高压设备热备转冷备、热备转检修、冷备转检修、检修转冷备、检修转热备、冷备专热备。开关柜所在位置为6KV高压I段、6KV高压II段、6KV高压III段和6KV高压IV段。开关的类型分为摇出式和拉出式。我厂的摇出式又分为两种, 根据其时间, 分成老摇出式和新摇出式。每种类别的操作任务的内容是相同的, 把同类型的操作票共同部分形成一个文件, 把不同部分用字母代替, 然后根据所在位置、开关的编号和操作任务组合来套用相应的文件, 形成新的文本, 再自动套用操作票格式并预览打印。

2.3 备用段电源选择切换操作票的生成及打印

根据选择的备用段电源切换操作任务套用相应的格式, 自动生成相应操作票。我厂备用段电源为35KV永坑2, 6KV I段6100开关、6KV II段6200开关、6KV III段6300开关和6KV IV段6400开关, 电源在它们之间进行切换, 这些票共同部分只要一个文本文件即可, 不同部分用字母代替, 再自动套用操作票格式并预览打印。

2.4 新操作票的生成及打印

对于那些毫无规律, 又不能靠选择项来生成的就要全部重写, 为此加快重写新操作票是这部分的任务。这部分是把工作票中常出现的名词、动词和短语, 按照一定的顺序排列, 在输入时, 只要用鼠标点击相应的文字, 即可输入。由于只要完成文本内容的输入 (操作序号不要输入) , 再自动套用操作票格式即可预览打印, 因此很快即可生成新的操作票。当新操作票完成时可根据操作性质, 选择相应的类型进行保存, 下次再用到时, 即可直接打印。

3 运行后效果如下图

3.1 标准操作票打印预览模块 (以试验操作票为例)

在操作任务下拉列表中选择一项操作任务后界面如下 (以1号发变组联运试验为例) 如图1。

点击直接打印按钮后可直接套用操作票格式打印输出, 点击修改按钮后可对文本进行修改, 点击删除按钮后可删除当前操作票, 点击打印设置按钮可对页面进行设置, 点击打印预览按钮后如下即可看套用操作票格式打印后的样子, 如图2。

3.2 高压开关柜操作票生成模块

选择好位置、类型、输入完设备名称和编号、最后再选择操作后点击生成操作票后如图3。

3.3 新操作票生成模块

点击新操作票生成菜单后其界面如图4。

4 应用效果

打印程序 篇6

为此, 在编写Windows下的打印及打印机控制程序时, 常常需要绕过打印机驱动程序, 直接通过应用程序将原始数据发送到打印机。要实现这个目的, 就要充分了解并利用Windows打印假脱机系统的一些特殊API函数。

1 Windows打印假脱机系统

Windows下打印作业发送到打印假脱机系统, 由打印假脱机调度、转换打印数据流、发送到打印机以减少向外设传送数据时占用主机处理器的时间。

Windows打印假脱机最基本组件如图1所示。

其中, Winspool.drv是一个到假脱机的客户端接口, 它由Microsoft提供, 它导出的函数构成了假脱机的Win32 API, 并对存取服务器提供RPC栈。应用程序可以利用Winspool.drv导出的函数来查询打印机、打印任务、查询/改变打印机设置、加载打印机驱动程序接口动态链接库来显示和设置打印机属性页等。这里, 可以利用它导出的OpenPrinter () 、StartDocPrinter () 、StartPagePrinte () 、WritePrinter () 、EndPagePrinter () 、EndDocPrinter () 、ClosePrinter () 函数把原始数据发送到打印假脱机, 从而绕过正常的GDI或打印机驱动程序绘制这一条常规路, 实现直接将原始数据 (含打印机控制命令) 发送到打印机的目的。

2 利用Win32 API将原始数据发送给打印机

使用Win32 API将原始打印数据发送打印机的完整步骤如下:

(1) 调用OpenPrinter () 打开打印机, 获取打印机句柄。

(2) 初始化DOCINFO打印机结构体。

(3) 调用StartDocPrinter () 表明应用程序准备发送文档数据给打印机。

(4) 调用StartPagePrinter () 表明程序准备发送一个新的打印页给打印机。

(5) 调用WritePrinter () 发送原始数据给打印机。

(6) 调用EndPagePrinter () 表明打印页发送完毕。

(7) 调用EndDocPrinter () 表明文档发送完毕。

(8) 调用ClosePrinter () 关闭打印机, 释放资源。

通过上述步骤, 即可实现将原始打印数据发送给打印机, 以下以Visual Basic程序为例, 给出一个发送原始字符串数据的简单例程, 使用VB调用Win32 API函数时, 要注意正确声明。

3 利用Win32 API实现打印机端口切换

实际在编写打印机的打印程序或控制程序时, 经常要针对打印机的不同端口进行切换, Win32 API也提供了对打印机端口进行修改和设置的办法, 在编程过程中可以加以利用。修改打印机端口的步骤为:

(1) 调用OpenPrinter () 打开打印机, 获取打印机句柄。

(2) 调用GetPrinter () 获取PRINTER_INFO_2结构。

(3) 修改PRINTER_INFO_2结构的pPortName为需要的端口号。

(4) 调用SetPrinter () 完成打印机设置。

(5) 调用ClosePrinter () 关闭打印机, 释放资源。

其中, PRINTER_INFO_2结构的获取是关键, PRINT-ER_INFO_2结构定义了打印机的一些详细信息, 具体可以参看Microsoft的MSDN Library。

pPortName即为打印机的端口号, 修改pPortName, 注意打印机的端口号形如:“LPT1:”, “COM1:”, “USB001”, 配合SetPrinter () 等Win 32函数, 即可实现打印机端口的切换。

4 打印机的控制命令集使用

在编写打印机应用程序和控制程序时, 为了充分发挥打印机的特性, 常常要使用打印机厂家提供的打印机命令手册, 以通用针式打印机为例, 市面常见的有EPSON的ESC/P-K命令集, OKI的命令集, STAR的命令集。微型打印机为例, 有EPSON的ESC/POS命令集, STAR的行模式命令集和页模式命令集等等, 不同厂家的命令体系不同, 但是形式基本类似, 就是利用特殊的代码, 指示打印机执行特殊的动作。

这里以实达微型打印机的一条控制命令为例, 结合上文论述, 介绍一下如何编程实现打印机命令集的使用。实达微型打印机有一条“一行倍宽”命令, 即表明该行内所有的字符以倍宽方式打印, 手册的描述如图2所示。

可以看到, 这条命令的十进制代码为14, 十六进制代码为0E, 即应用程序如果直接把一个十进制数14或者十六进制数0E, 以原始数据的方式发送给打印机, 打印机接收到以后, 就将执行一行倍宽的命令, 此后一行内的数据都将被以倍宽方式打印。

为了发送这个“一行倍宽”的命令, 可以编程如下, 依然以VB为例, 先定义命令数组:

然后再在上文第2部分的例程中, 将:

语句替换为:

即可实现将打印机控制命令“一行倍宽”, 以原始数据的方式发送给打印机。结合控制代码和打印数据, 充分利用打印机自身的命令体系的灵活性, 就可以发挥打印机自身处理的优势, 实现简洁高速的打印。

5 结语

综上可以看到虽然进入Windows时代, 基于打印机驱动的编程和所见所得的位图打印方式简化了程序员的工作量, 但是在需要实时控制打印机的一些领域、专用的打印程序编程领域, 充分了解打印机的命令体系, 进行针对性的编程工作也是不可或缺的技能。利用Windows的Win32 API实现打印机的原始数据输出和命令控制, 具有灵活和代码量小、兼容性好、移植简单、不受打印机端口限制等特点, 很合适程序员学习掌握。

参考文献

[1]田玉敏, 燕红锁.Windows 2000下打印机驱动程序的开发计算机工程.2002:216.

[2]何斌.Windows环境下打印机驱动程序的设计.电子计算机与外部设备, 2000.

[3]http://support.microsoft.com/kb/138594/EN-US.

[4]http://support.microsoft.com/kb/154078/EN-US.

【打印程序】推荐阅读:

添加打印07-14

打印原理05-30

打印报表06-17

微型打印07-24

数码打印08-14

文档打印08-18

移动打印08-26

热敏打印09-06

打印故障09-24

打印方法10-01

上一篇:三个教学案例下一篇:症状自评量表-90