一种打印驱动开发方法技术

技术编号:19008938 阅读:22 留言:0更新日期:2018-09-22 08:51
本发明专利技术公开了一种打印驱动开发方法,通过应用程序调用GDI的应用程序编程接口,再调用GDI引擎,将应用程序数据转换成显示数据bitmap格式。将Bitmap的数据转换成TIFF格式。TIFF转置模块负责将Bitmap驱动模块生成的bitmap数据的每一页转换成TIFF的格式。最终将生成的TIFF格式的数据发送到打印机种,完成打印。本发明专利技术的有益效果可使得应用程序对不同品牌的打印机进行调用。

A printing driver development method

The invention discloses a print-driven development method, which calls the application program interface of GDI through an application program, and then calls the GDI engine to convert the application program data into the bitmap format of the display data. Convert Bitmap data into TIFF format. TIFF transpose module is responsible for converting each page of bitmap data generated by Bitmap driver module into TIFF format. Finally, the generated TIFF format data will be sent to the printer to finish printing. The beneficial effect of the invention enables the application program to call different brands of printers.

【技术实现步骤摘要】
一种打印驱动开发方法
本专利技术涉及一种打印驱动开发方法。
技术介绍
打印机(Printer)是计算机的输出设备之一,用于将计算机处理结果打印在相关介质上。衡量打印机好坏的指标有三项:打印分辨率,打印速度和噪声。现有的市面上的打印机品牌众多。不同品牌的打印机驱动不同,无法对打印机驱动进行定制和修改。
技术实现思路
针对以上不足,本专利技术的目的就是提供一种打印驱动开发方法,可使得应用程序对不同品牌的打印机进行调用。本专利技术的目的是通过这样的技术方案实现的,一种打印驱动开发方法,包括以下步骤:步骤一:打印应用程序调用GDI的CreateDC函数,为打印设备创建设备上下文环境;步骤二:GDI调用LoadLibrary函数将当前打印设备驱动程序载入内存;步骤三:调用打印机图形动态链接库初始化当前打印设备驱动程序;步骤四:GDI通过调用Enable模块对打印物理设备初始化和分配资源,并获得打印设备的信息和能力;步骤五:GDI调用plotform模块,用于设计打印坐标系统;步骤六:GDI调用pdevinfo模块,用于enable模块中初始化的打印物理设备中结构体有效;步骤七:GDI调用page模块,所述page模块的DrvStartDoc函数被调用,用于开始打印作业;步骤八:所述page模块的DrvStartPage函数被GDI调用来逐一初始化若干个打印页面,每个打印页面依次进行步骤九;步骤九:GDI引擎在当前的一个打印页面上进行绘图;步骤十:TIFF转置模块将当前一个打印页面的数据转换成TIFF的格式并保存在缓存中;步骤十一:GDI调用DrvSendPage函数把缓存中的打印页面数据发送给BitMap渲染模块,所述BitMap渲染模块的SendPageHeader函数被调用,所述SendPageHeader函数为当前打印页面向打印设备发送初始化的信息;步骤十二:GDI根据当前打印页面内容匹配出对应的处理模块进行处理;步骤十三:压缩模块将处理后的数据进行压缩后,所述BitMap渲染模块的输出接口将数据进行输出打印;步骤十四:所述BitMap渲染模块的FlushOutBuffer函数接口被调用来清除申请的打印缓冲区。进一步,所述步骤十二中的处理模块包括有textout模块的DrvTextOut接口、Output模块的绘图接口和Bitbld模块的位图处理接口。进一步,所述Bitbld模块的位图处理接口包括有位图变换接口、位图复制接口和像素输出接口。进一步,所述GDI引擎与图形设备通过DDI函数进行通信。进一步,GDI针对打印任务依次调用DrvDisSurface、DrvDisablePDEV和DrvDisableDriver函数接口,释放Enable模块分配的资源。进一步,所述打印应用程序安装在移动设备或PC上。由于采用上述技术方案,本专利技术具有如下的优点:通过应用程序调用GDI的应用程序编程接口,再调用GDI引擎,将应用程序数据转换成显示数据bitmap格式。将Bitmap的数据转换成TIFF格式。TIFF转置模块负责将Bitmap驱动模块生成的bitmap数据的每一页转换成TIFF的格式。最终将生成的TIFF格式的数据发送到打印机种,完成打印。可使得应用程序对不同品牌的打印机进行调用。本专利技术的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本专利技术的实践中得到教导。本专利技术的目标和其他优点可以通过下面的说明书和权利要求书来实现和获得。附图说明本专利技术的附图说明如下。图1为本专利技术处理流程图。图2为打印的流程图。具体实施方式下面结合附图和实施例对本专利技术作进一步说明。如附图1至图2所示,一种打印驱动开发方法,当进行一次打印任务时,打印应用程序首先调用GDI(图形设备接口)的CreateDC函数生成一个打印设备描述上下文,之后GDI便调用LoadLibrary函数将当前打印机驱动程序装入内存,然后调用驱动Dell(打印机图形动态链接库)的初始化程序。打印应用程序可安装在移动设备或PC上。GDI将调用Enable模块,向GDI提供一个接口函数DrvEnableDriver。该函数包含了驱动程序所支持的所有函数,GDI访问这些函数。然后再初始化PDEV,PDEV是物理设备的逻辑表现,每一个DPEV都包含了它所关联的打印物理设备的所有信息和数据。通过DrvEnablePDEV函数,驱动程序把信息提供给GDI,GDI通过此信息获得打印设备的信息和能力。Enable模块中包含了三个重要的结构,包括GDIINFO、DEVINFO和DEVMODEW。GDIINFO结构中包含打印机的所有能力和特点,DEVINFO结构体包含驱动程序以及驱动程序PDEV信息,DEVMODEW结构体重包含打印机设备的初始化以及当前打印环境和打印设置方面的信息。GDI调用plotform模块,该模块的主要功能是设计打印坐标系统。GDI调用pdevinfo模块,该模块的功能是使在enable模块中初始化的PDEV结构体有效。GDI调用page模块,该模块的DrvStartDoc函数被调用,用来开始一个打印作业。DrvStartPage函数被调用来初始化一个新的打印页面,在其他任何绘图函数调用打印页面之前,DrvStartPage函数是用于重置打印页面以保证所有的绘图操作都是在一个干净的空白页面上进行。DrvStartPage函数被GDI调用来逐一初始化若干个打印页面,GDI引擎依次在每个打印页面上进行绘图;TIFF转置模块将当前一个打印页面的数据转换成TIFF的格式并保存在缓存中;TIFF转置模块负责在下一页开始之前,把上一页写入到buffer(缓存)中,然后在存入TIFF中。当一个绘图操作在当前的打印页面上完成之后,DrvSendPage函数就被调用把这个已储存缓存中的页面发送给BitMap渲染模块,然后DrvEndDoc接口被调用。接着,GDI调用BitMap渲染模块。BitMap渲染模块中定义了打印图形动态库负责向假脱机和打印机输出数据的函数。SendPageHeader函数首先被调用,该函数为每个新绘制的页面向设备发送初始化的信息,帮助设备正确的调整自身系统和打印缩放比例。然后BitMap渲染模块做一些打印前的准备工作,如选择合适的画笔,申请内存空间以及设置边缘的像素等。在BitMap渲染模块中,GDI会根据不同的任务调用相应的处理模块,对于文本输出,主要调用textout模块的DrvTextOut接口;对于图形输出,主要调用BitMap渲染模块定义的画圆、矩形、多边形等绘图函数接口;对于图像输出,则根据应用程序的具体要求会调用DrvStretchBlt(位图变换)、BandingHTBlt(版色调处理)、DrvCopyBits(位图复制)、SetPixelPlacement(像素输出)等接口来完成相应的处理。在BitMap渲染模块中,要打印的图像数据在经过了各种变换以及版色调处理后,在发送到打印机设备之前,还要进行压缩处理,compress(图像压缩)模块被调用。compress模块定义来了很多压缩算法,这些方法对原始图像数据进行分析并决定采用哪种压缩算法最有效。本文档来自技高网...
一种打印驱动开发方法

【技术保护点】
1.一种打印驱动开发方法,其特征在于,包括以下步骤:步骤一:打印应用程序调用GDI的CreateDC函数,为打印设备创建设备上下文环境;步骤二:GDI调用LoadLibrary函数将当前打印设备驱动程序载入内存;步骤三:调用打印机图形动态链接库初始化当前打印设备驱动程序;步骤四:GDI通过调用Enable模块对打印物理设备初始化和分配资源,并获得打印设备的信息和能力;步骤五:GDI调用plotform模块,用于设计打印坐标系统;步骤六:GDI调用pdevinfo模块,用于enable模块中初始化的打印物理设备中结构体有效;步骤七:GDI调用page模块,所述page模块的DrvStartDoc函数被调用,用于开始打印作业;步骤八:所述page模块的DrvStartPage函数被GDI调用来逐一初始化若干个打印页面,每个打印页面依次进行步骤九;步骤九:GDI引擎在当前的一个打印页面上进行绘图;步骤十:TIFF转置模块将当前一个打印页面的数据转换成TIFF的格式并保存在缓存中;步骤十一:GDI调用DrvSendPage函数把缓存中的打印页面数据发送给BitMap渲染模块,所述BitMap渲染模块的SendPageHeader函数被调用,所述SendPageHeader函数为当前打印页面向打印设备发送初始化的信息;步骤十二:GDI根据当前打印页面内容匹配出对应的处理模块进行处理;步骤十三:压缩模块将处理后的数据进行压缩后,所述BitMap渲染模块的输出接口将数据进行输出打印;步骤十四:所述BitMap渲染模块的FlushOutBuffer函数接口被调用来清除申请的打印缓冲区。...

【技术特征摘要】
1.一种打印驱动开发方法,其特征在于,包括以下步骤:步骤一:打印应用程序调用GDI的CreateDC函数,为打印设备创建设备上下文环境;步骤二:GDI调用LoadLibrary函数将当前打印设备驱动程序载入内存;步骤三:调用打印机图形动态链接库初始化当前打印设备驱动程序;步骤四:GDI通过调用Enable模块对打印物理设备初始化和分配资源,并获得打印设备的信息和能力;步骤五:GDI调用plotform模块,用于设计打印坐标系统;步骤六:GDI调用pdevinfo模块,用于enable模块中初始化的打印物理设备中结构体有效;步骤七:GDI调用page模块,所述page模块的DrvStartDoc函数被调用,用于开始打印作业;步骤八:所述page模块的DrvStartPage函数被GDI调用来逐一初始化若干个打印页面,每个打印页面依次进行步骤九;步骤九:GDI引擎在当前的一个打印页面上进行绘图;步骤十:TIFF转置模块将当前一个打印页面的数据转换成TIFF的格式并保存在缓存中;步骤十一:GDI调用DrvSendPage函数把缓存中的打印页面数据发送给BitMap渲染模块,所述BitMap渲染模块的SendPageHeader函数被调用,所述SendP...

【专利技术属性】
技术研发人员:凌杰张依依雷珽张蕊王成刘华懿
申请(专利权)人:重庆玺兴科技有限公司
类型:发明
国别省市:重庆,50

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1