CN106557288B - 一种获取打印数据的方法及装置 - Google Patents
一种获取打印数据的方法及装置 Download PDFInfo
- Publication number
- CN106557288B CN106557288B CN201611021378.5A CN201611021378A CN106557288B CN 106557288 B CN106557288 B CN 106557288B CN 201611021378 A CN201611021378 A CN 201611021378A CN 106557288 B CN106557288 B CN 106557288B
- Authority
- CN
- China
- Prior art keywords
- printer
- printing
- spool
- target
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000007639 printing Methods 0.000 title claims abstract description 238
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000004044 response Effects 0.000 claims description 29
- 238000004891 communication Methods 0.000 claims description 7
- NUHSROFQTUXZQQ-UHFFFAOYSA-N isopentenyl diphosphate Chemical compound CC(=C)CCO[P@](O)(=O)OP(O)(O)=O NUHSROFQTUXZQQ-UHFFFAOYSA-N 0.000 abstract 1
- 230000000875 corresponding effect Effects 0.000 description 15
- 238000013461 design Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000009286 beneficial effect Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1268—Job submission, e.g. submitting print job order or request not the print data itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
- G06F3/1287—Remote printer device, e.g. being remote from client or server via internet
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
本发明公开了一种获取打印数据的方法及装置,涉及打印机技术领域,用以在不修改打印***的代码的情况下获取打印数据。该方法包括:打印***采用IPP向假脱机打印模块发送目标打印数据;假脱机打印模块接收目标打印数据,并采用远程桌面协议将目标打印数据向打印机服务端发送。该方法可以用于远程计算机中的打印机服务端获取打印数据。
Description
技术领域
本发明涉及打印机技术领域,尤其涉及一种获取打印数据的方法及装置。
背景技术
随着云计算技术的兴起,传统办公方式(即采用本地计算机进行办公的方式)逐渐在被远程办公方式(即采用远程计算机进行办公的方式)所替代。如果远程计算机(也称为远程桌面或服务端)需要使用本地计算机(也称为本地桌面或用户端)的外设,一般需要远程桌面协议提供支持。以外设为打印机为例,如图1所示,本地计算机和远程计算机之间通过远程桌面协议连接,本地计算机连接有打印机。在桌面云场景中,本地计算机中可以包括打印机客户端,远程计算机中可以包括打印机服务端,在远程计算机中的应用程序将打印数据下发给打印***,打印***再将打印数据下发给打印机服务端之后,打印机服务端通过远程桌面协议内置的打印机虚拟通道将打印数据发送给打印机客户端,打印机客户端再将打印数据下发至打印机,从而使得远程计算机可以使用本地计算机上连接的打印机打印数据,实现打印机重定向。
当远程计算机的操作***为Windows操作***时,打印***为Splooer服务***,可以通过修改打印***的代码使得打印机服务端从打印***中获取打印数据。但是当远程计算机的操作***为Linux操作***时,打印***为通用打印***(Common UNIX PrintingSystem,简称CUPS)。CUPS是一个开源的第三方组件,打印机服务端要从CUPS中的Backend获取打印数据,必须修改Backend代码,但是Backend的license(许可证)是通用公共许可证(General Public License,简称GPL),修改后代码需要开源。而且对于不同Linux版本的操作***,CUPS的版本也不一致,导致修改后的Backend代码无法实现各个版本的CUPS之间的兼容。
发明内容
本发明的实施例提供了一种获取打印数据的方法及装置,用以在不修改打印***的代码的情况下获取打印数据。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种获取打印数据的方法,应用于远程计算机,远程计算机包括打印***、假脱机打印模块和打印机服务端,该方法包括:打印***采用IPP向假脱机打印模块发送目标打印数据;假脱机打印模块接收目标打印数据,并采用远程桌面协议将目标打印数据向打印机服务端发送。
现有技术中打印***和打印机服务端之间在不修改打印***的代码的情况下,无法传递打印数据,第一方面提供的方法,在远程计算机中增加了假脱机打印模块,假脱机打印模块可以采用IPP与打印***实现信息交互,同时可以采用远程桌面协议与打印机服务端实现数据交互。因此,假脱机打印模块可以从打印***中获取打印数据,并将打印数据向打印机服务端发送。在不修改打印***的代码的情况下,即可从打印***中获取到打印数据,可以实现各个版本的打印***之间的兼容。
在一种可能的设计中,打印***采用IPP向假脱机打印模块发送目标打印数据,包括:打印***采用IPP将目标打印数据发送至远程计算机上的目标网络端口;假脱机打印模块接收目标打印数据,包括:当假脱机打印模块监听到目标网络端口上接收到数据时,假脱机打印模块采用IPP在目标网络端口上读取目标打印数据。
在一种可能的设计中,在打印***采用IPP向假脱机打印模块发送目标打印数据之前,该方法还包括:假脱机打印模块向打印***发送第一请求消息,第一请求消息包括用于确定目标打印数据的信息,目标打印数据为在目标虚拟打印机上打印的数据,目标虚拟打印机位于远程计算机中;打印***根据第一请求消息确定目标打印数据。
在一种可能的设计中,该方法还包括:假脱机打印模块获取打印机信息列表,打印机信息列表包含至少一个本地打印机的属性信息,本地打印机为与本地计算机连接的打印机;假脱机打印模块根据打印机信息列表调用打印***提供的API创建至少一个虚拟打印机,一个虚拟打印机对应一个本地打印机,至少一个虚拟打印机包括目标虚拟打印机。
在一种可能的设计中,在假脱机打印模块向打印***发送第一请求消息之前,该方法还包括:假脱机打印模块向打印***发送第二请求消息,第二请求消息用于请求目标虚拟打印机的打印机任务列表;打印***向假脱机打印模块返回响应消息,响应消息中包括目标虚拟打印机的打印机任务列表;假脱机打印模块根据打印机任务列表确定第一请求消息中包括的用于确定目标打印数据的信息。
在一种可能的设计中,在假脱机打印模块向打印***发送第二请求消息之前,该方法还包括:假脱机打印模块向打印***发送查询请求消息,查询请求消息用于查询需要打印数据的虚拟打印机的属性信息;打印***向假脱机打印模块返回查询响应消息,查询响应消息中包括需要打印数据的虚拟打印机的属性信息;假脱机打印模块根据需要打印数据的虚拟打印机的属性信息确定目标虚拟打印机。
在一种可能的设计中,打印机信息列表中可以包括用于指示虚拟打印机的网络端口的信息。
在一种可能的设计中,在假脱机打印模块向打印***发送第二请求消息之前,该方法还包括:假脱机打印模块获取目标虚拟打印机的状态,状态包括忙碌或空闲;假脱机打印模块向打印***发送第二请求消息,包括:当目标虚拟打印机的状态为空闲时,假脱机打印模块向打印***发送第二请求消息。
第二方面,提供了一种获取打印数据的装置,该装置具有实现第一方面提供的任意一种方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,提供了一种获取打印数据的装置,包括:处理器、存储器、总线和通信接口;存储器用于存储计算机执行指令,处理器与存储器通过总线连接,处理器通过执行存储器存储的计算机执行指令,以使该装置执行第一方面提供的任意一种获取打印数据的方法。
另外,第二方面或第三方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为现有技术中的一种实现打印机重定向的架构示意图;
图2为本发明实施例提供的方法应用的一种***的组成示意图;
图3为本发明实施例提供的方法应用的又一种***的组成示意图;
图4为本发明实施例提供的用于实现本发明提供的方法的架构示意图;
图5为本发明实施例提供的一种获取打印数据的方法的交互流程图;
图6为本发明实施例提供的又一种获取打印数据的方法的交互流程图;
图7为本发明实施例提供的一种获取打印数据的装置的组成示意图;
图8为本发明实施例提供的又一种获取打印数据的装置的组成示意图。
具体实施方式
本发明实施例提供的方法可以应用于如图2或图3所示的远程虚拟桌面***。如图2所示,远程虚拟桌面***包括远程数据中心和本地计算机。远程数据中心中包括远程计算机,远程计算机通过远程桌面协议与本地计算机连接。远程数据中心集中了服务器资源和存储资源,当远程计算机包括远程虚拟计算机时,这些服务器资源和存储资源通过虚拟机监视器可以虚拟出多个远程虚拟计算机。在远程计算机上安装操作***,远程计算机可以通过远程桌面协议将远程计算机的桌面的界面投递到本地计算机上显示出来,同时可以将本地计算机上的输入输出设备映射到远程计算机上。
另一种远程虚拟桌面***的架构图可以如图3所示,该远程虚拟桌面***包括至少一个本地计算机、桌面管理***和资源池,资源池包括至少一个远程计算机。
桌面管理***用于管理远程计算机和本地计算机。远程计算机中可以包括至少一个应用程序。本地计算机包括各种输入输出设备,输入输出设备具体可以包括摄像头、显示器、耳麦、键鼠和通用串行总线(Universal Serial Bus,简称USB)/串并口外设(例如,串口打印机)等。
远程计算机和本地计算机中包括不同的服务模块。例如,USB/串并口模块、显示模块、音频模块、多媒体模块和键鼠模块等,位于远程计算机中的模块为相应服务的服务器端,位于本地计算机中的模块为相应服务的客户端,远程计算机可以通过远程桌面协议虚拟通道服务利用本地计算机中的输入输出设备实现相应服务的功能。
如图4所示,图4示出了用于实现本发明实施例提供的方法的架构图,包括远程计算机和本地计算机。远程计算机中包括应用程序、可以与应用程序交互的打印***、可以与打印***交互的假脱机打印模块以及可以与假脱机打印模块交互的打印机服务端。本地计算机中包括可以与打印机服务端交互的打印机客户端以及可以和打印机客户端交互的本地打印机。在本发明实施例中,认为本地打印机为本地计算机中的一部分。
本发明实施例提供了一种获取打印数据的方法,应用于远程计算机,参见图4,远程计算机包括打印***、假脱机打印模块和打印机服务端。远程计算机可以为远程物理计算机,也可以为远程虚拟计算机。当远程计算机的操作***为Linux操作***时,本发明实施例中的打印***可以为CUPS;当远程计算机的操作***为Windows操作***,打印***可以为Splooer服务***。打印***还可以为其他类型的***,此处不再举例说明。
如图5所示,本发明实施例提供的获取打印数据的方法包括:
501、打印***采用互联网打印协议(Internet Printing Protocol,简称IPP)向假脱机打印模块发送目标打印数据。
其中,目标打印数据为在目标虚拟打印机上打印的数据,目标虚拟打印机位于远程计算机中。远程计算机中包括至少一个虚拟打印机,至少一个虚拟打印机为根据与本地计算机连接的至少一个本地打印机的属性信息虚拟得到的打印机,一个虚拟打印机对应一个本地打印机。
需要说明的是,对于远程计算机来说,远程计算机只可以识别虚拟打印机,因此,本发明的描述中称目标打印数据为在目标虚拟打印机上打印的数据,实际上目标打印数据是在本地打印机上进行打印的。
在本发明实施例中,打印***和假脱机打印模块采用IPP进行交互,假脱机打印模块和打印机服务端采用远程桌面协议进行交互。
502、假脱机打印模块接收目标打印数据,并采用远程桌面协议将目标打印数据向打印机服务端发送。
示例性的,远程桌面协议具体可以为:华为桌面协议(Huawei Desktop Protocol,简称HDP)、独立计算架构(Independent Computing Architecture,简称ICA)协议等。
可选的,步骤501在具体实现时可以为:打印***采用IPP将目标打印数据发送至远程计算机上的目标网络端口;该情况下,假脱机打印模块接收目标打印数据,包括:当假脱机打印模块监听到目标网络端口上接收到数据时,假脱机打印模块采用IPP在目标网络端口上读取目标打印数据。
需要说明的是,假脱机打印模块可以实时的监听目标网络端口。
目标网络端口可以为远程计算机上的目标虚拟打印机的网络端口。一个虚拟打印机的网络端口可以为预设的网络端口。在打印机服务端接收到打印数据之后,可以通过远程桌面协议将目标打印数据向本地计算机中的打印机客户端发送,打印机客户端再将目标打印数据发往与目标虚拟打印机对应的本地打印机上进行打印。
其中,假脱机打印模块与打印机服务端可以为独立的模块,假脱机打印模块也可以内置于打印机服务端中。
现有技术中打印***和打印机服务端之间在不修改打印***的代码的情况下,无法传递打印数据,本发明实施例提供的方法,在远程计算机中增加了假脱机打印模块,假脱机打印模块可以采用IPP与打印***实现信息交互,同时可以采用远程桌面协议与打印机服务端实现数据交互。因此,假脱机打印模块可以从打印***中获取打印数据,并将打印数据向打印机服务端发送。在不修改打印***的代码的情况下,即可从打印***中获取到打印数据,可以实现各个版本的打印***之间的兼容。
可选的,在步骤501之前,上述方法还包括:假脱机打印模块向打印***发送第一请求消息;打印***根据第一请求消息确定目标打印数据。
其中,第一请求消息包括用于确定目标打印数据的信息,目标打印数据为在目标虚拟打印机上打印的数据,目标虚拟打印机位于远程计算机中。
示例性的,第一请求消息中可以包括目标虚拟打印机的名称、数据的偏移地址和数据量等信息。
需要说明的是,远程计算机中可以包括多个虚拟打印机。示例性的,打印***可以根据第一请求消息中包括的目标虚拟打印机的名称确定目标打印数据为哪个虚拟打印机上的数据,再根据数据的偏移地址和数据量确定目标打印数据。
可选的,该方法还可以包括:假脱机打印模块获取打印机信息列表,假脱机打印模块根据打印机信息列表调用打印***提供的应用程序编程接口(ApplicationProgramming Interface,简称API)创建至少一个虚拟打印机。
打印机信息列表包含至少一个本地打印机的属性信息,本地打印机为与本地计算机连接的打印机;一个虚拟打印机对应一个本地打印机,至少一个虚拟打印机包括目标虚拟打印机。
其中,一个打印机的属性信息至少包括打印机名称、打印机的统一资源定位符(Uniform Resource Locator,简称URL)和打印机的驱动型号等信息中的一种信息。
在执行该可选的方法之后,用户在使用远程计算机时即可在需要打印数据时选取打印数据的虚拟打印机。
可选的,打印机信息列表中可以包括用于指示虚拟打印机的网络端口的信息。
示例性的,用于指示网络端口的信息可以包含在本地打印机的URL中。例如,一个本地打印机的URL为Ipp14://localhost:28515/printers/PrinterName时,该本地打印机对应的虚拟打印机的网络端口可以为28515端口。
该情况下,在创建虚拟打印机之后,远程计算机即可确定虚拟打印机的网络端口。
可选的,在假脱机打印模块向打印***发送第一请求消息之前,该方法还包括:假脱机打印模块向打印***发送第二请求消息,第二请求消息用于请求目标虚拟打印机的打印机任务列表;打印***向假脱机打印模块返回响应消息,响应消息中包括目标虚拟打印机的打印机任务列表;假脱机打印模块根据打印机任务列表确定第一请求消息中包括的用于确定目标打印数据的信息。
具体的,打印机任务列表中可以包括需要打印的文件名称以及每个文件的大小等信息。假脱机打印模块根据打印机任务列表可以确定总的需要打印的数据量,根据总的需要打印的数据量确定打印***需要发送打印数据的次数以及打印***每次需要发送的数据量,从而确定每个第一请求消息中包括的打印数据的偏移地址和数据量等信息。
需要说明的是,打印***可以对虚拟打印机进行管理,当一个应用程序向一个虚拟打印机下发打印任务时,该打印任务会被存储在该虚拟打印机的打印队列中,打印***可以从该虚拟打印机的打印队列中获取打印任务,并生成打印任务列表。
可选的,在假脱机打印模块向打印***发送第二请求消息之前,方法还包括:假脱机打印模块向打印***发送查询请求消息,查询请求消息用于查询需要打印数据的虚拟打印机的属性信息;打印***向假脱机打印模块返回查询响应消息,查询响应消息中包括需要打印数据的虚拟打印机的属性信息;假脱机打印模块根据需要打印数据的虚拟打印机的属性信息确定目标虚拟打印机。
具体的,在应用程序向打印***下发打印任务之后,打印***可以与假脱机打印模块建立IPP连接。假脱机打印模块可以通过发送查询请求消息确定哪个虚拟打印机需要打印数据。具体的,假脱机打印模块可以根据查询响应消息中的需要打印数据的虚拟打印机的属性信息确定目标虚拟打印机。示例性的,若远程计算机中包括名称为A、B、C和D的虚拟打印机,若查询响应消息中的需要打印数据的虚拟打印机的属性信息中包括的虚拟打印机的名称为A,则假脱机打印模块确定目标虚拟打印机为名称为A的虚拟打印机。
可选的,在假脱机打印模块向打印***发送第二请求消息之前,方法还包括:假脱机打印模块获取目标虚拟打印机的状态,状态包括忙碌或空闲;该情况下,假脱机打印模块向打印***发送第二请求消息,包括:当目标虚拟打印机的状态为空闲时,假脱机打印模块向打印***发送第二请求消息。
需要说明的是,当目标虚拟打印机的状态为空闲时,打印***才可以获取到打印数据,因此,当目标虚拟打印机的状态为空闲时,假脱机打印模块才向打印***发送第二请求消息。
具体的,假脱机打印模块也可以通过向打印***发送查询请求消息,从而获取到目标虚拟打印机的状态。用于查询需要打印数据的虚拟打印机的属性信息和状态的查询请求消息可以为不同的消息,也可以为相同的消息。
以下以本发明实施例提供的方法应用在安装有Linux操作***的远程计算机中为例对本发明实施例提供的方法进行示例性说明,该情况下,打印***为CUPS。如图6所示,该方法包括:
601、本地打印机向本地计算机中的打印机客户端上报本地打印机的属性信息。
本地打印机的属性信息包括本地打印机名称、本地打印机的URL和本地打印机的驱动型号等信息。
602、本地计算机中的打印机客户端获取本地打印机的属性信息,并向远程计算机中的打印机服务端上报打印机信息列表。
打印机信息列表包含至少一个本地打印机的属性信息。
603、打印机服务端获取打印机信息列表,并向假脱机打印模块上报。
604、假脱机打印模块获取打印机信息列表,根据打印机信息列表调用CUPS提供的API创建虚拟打印机。
具体的,一个本地打印机对应一个虚拟打印机
在步骤604之后,使用远程计算机的用户在需要打印数据时即可选取打印数据的虚拟打印机。
605、CUPS接收应用程序下发的打印任务。
606、CUPS与假脱机打印模块建立IPP连接。
建立IPP连接的过程可参见现有技术。
需要说明的是,在每次打印任务结束后,CUPS与假脱机打印模块可以断开IPP连接,在每次CUPS接收到应用程序下发的打印任务时可以重新与假脱机打印模块建立IPP连接。因此,当假脱机打印模块接收到CUPS发送的建立IPP的请求后,说明此时有打印任务,假脱机打印模块执行步骤607。
607、假脱机打印模块向CUPS发送查询请求消息。
需要说明的是,由于假脱机打印模块并不知道用户选择的是哪台虚拟打印机。因此,假脱机打印模块首先需要通过查询请求消息确定打印数据的虚拟打印机为哪台虚拟打印机。
608、CUPS接收查询请求消息,并查询需要打印数据的虚拟打印机的属性信息和状态。
虚拟打印机的状态包括忙碌或空闲。
609、CUPS向假脱机打印模块返回查询响应消息。
查询响应消息中包括需要打印数据的虚拟打印机的属性信息和状态,需要打印数据的虚拟打印机的属性信息可以包括虚拟打印机的名称、URL或驱动型号中的一种或多种。
610、假脱机打印模块接收查询响应消息,并根据需要打印数据的虚拟打印机的属性信息确定目标虚拟打印机。
611、当目标虚拟打印机的状态为空闲时,假脱机打印模块向CUPS发送第二请求消息。
第二请求消息用于请求目标虚拟打印机的打印机任务列表。
612、CUPS接收第二请求消息,并根据第二请求消息确定目标虚拟打印机的打印机任务列表。
具体的,打印机任务列表中可以包括需要打印的文件名称以及每个文件的大小等信息。
613、CUPS向假脱机打印模块返回响应消息。
响应消息包括目标虚拟打印机的打印机任务列表。
614、假脱机打印模块接收响应消息,并根据响应消息确定目标虚拟打印机的打印机任务列表。
615、假脱机打印模块根据目标虚拟打印机的打印机任务列表确定用于确定目标打印数据的信息。
目标打印数据为在目标虚拟打印机上打印的数据中的部分或全部数据。
616、假脱机打印模块向CUPS发送第一请求消息。
第一请求消息中包括用于确定目标打印数据的信息。
617、CUPS接收第一请求消息,并根据第一请求消息确定目标打印数据。
618、CUPS采用IPP将目标打印数据向假脱机打印模块发送。
619、假脱机打印模块接收CUPS发送的目标打印数据,并采用远程桌面协议将目标打印数据向打印机服务端发送。
620、打印机服务端接收目标打印数据,并采用远程桌面协议将目标打印数据向打印机客户端发送。
621、打印机客户端将目标打印数据向与目标虚拟打印机对应的本地打印机发送。
需要说明的是,一个虚拟打印机对应一个本地打印机,由于虚拟打印机是根据本地打印机虚拟得到的,存在对应关系的虚拟打印机和本地打印机的驱动型号是一样的。因此,一个虚拟打印机上需要打印的数据是符合其对应的本地打印机上数据打印格式的,因此,需要将目标打印数据向与目标虚拟打印机对应的本地打印机发送。
在步骤621之后,CUPS还可以通过假脱机打印模块、打印机服务端和打印机客户端向本地打印机发送停止打印的信息。CUPS在确定打印任务完成时,可以断开与假脱机打印模块之间的IPP连接。
其中,打印机客户端和本地打印机可以位于本地计算机中,打印机服务端、应用程序、假脱机打印模块和CUPS可以位于远程计算机中。
该示例性的实施例的有益效果可以参见基于图5所述的方法的有益效果,在此不再赘述。
上述主要从各个模块之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,用于实现上述方法的装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
示例性的,图7示出了用于实现上述获取打印数据的方法的装置的一种可能的结构示意图,该获取打印数据的装置70包括:打印***701、假脱机打印模块702和打印机服务端703;
所述打印***701,用于采用互联网打印协议IPP向所述假脱机打印模块702发送目标打印数据;
所述假脱机打印模块702,用于接收所述目标打印数据,并采用远程桌面协议将所述目标打印数据向所述打印机服务端703发送。
可选的,所述假脱机打印模块702,还用于向所述打印***701发送第一请求消息,所述第一请求消息包括用于确定所述目标打印数据的信息,所述目标打印数据为在目标虚拟打印机上打印的数据,所述目标虚拟打印机位于所述远程计算机中;
所述打印***701,还用于根据所述第一请求消息确定所述目标打印数据。
可选的,所述假脱机打印模块702,还用于获取打印机信息列表,所述打印机信息列表包含至少一个本地打印机的属性信息,所述本地打印机为与本地计算机连接的打印机;
所述假脱机打印模块702,还用于根据所述打印机信息列表调用所述打印***701提供的应用程序编程接口API创建至少一个虚拟打印机,一个虚拟打印机对应一个本地打印机,所述至少一个虚拟打印机包括所述目标虚拟打印机。
可选的,所述假脱机打印模块702,还用于向所述打印***701发送第二请求消息,所述第二请求消息用于请求所述目标虚拟打印机的打印机任务列表;
所述打印***701,还用于向所述假脱机打印模块702返回响应消息,所述响应消息中包括所述目标虚拟打印机的打印机任务列表;
所述假脱机打印模块702,还用于根据所述打印机任务列表确定所述第一请求消息中包括的用于确定所述目标打印数据的信息。
可选的,所述假脱机打印模块702,还用于向所述打印***701发送查询请求消息,所述查询请求消息用于查询需要打印数据的虚拟打印机的属性信息;
所述打印***701,还用于向所述假脱机打印模块702返回查询响应消息,所述查询响应消息中包括需要打印数据的虚拟打印机的属性信息;
所述假脱机打印模块702,还用于根据需要打印数据的虚拟打印机的属性信息确定所述目标虚拟打印机。
可选的,所述假脱机打印模块702,还用于获取所述目标虚拟打印机的状态,所述状态包括忙碌或空闲;
所述假脱机打印模块702,具体用于当所述目标虚拟打印机的状态为空闲时,所述假脱机打印模块702向所述打印***701发送第二请求消息。
其中,打印***701可以为图4中的打印***,假脱机打印模块702可以为图4中的假脱机打印模块,打印机服务端703可以为图4中的打印机服务端。
该装置70中的各个模块用于执行上述方法,因此,该装置70的有益效果可以参见上述方法的有益效果,在此不再赘述。
如图8所示,为本发明实施例提供的一种获取打印数据的装置80的硬件结构示意图。其中,该装置80包括处理器801、存储器802、总线803和通信接口804。
处理器801、存储器802和通信接口804通过总线803连接。总线803可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。该总线803可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器802用于存储计算机执行指令,处理器801可以通过执行存储器802存储的计算机执行指令执行上述打印***、假脱机打印模块和打印机服务端的相应的动作,以实现上述方法。通信接口804可以用于将获取到的打印数据发送出去,还可以用于获取打印机信息列表。
该装置80中的各个器件用于执行上述方法,因此,装置80的有益效果可以参见上述方法的有益效果,在此不再赘述。
本发明实施例还提供了一种计算机存储介质,用于储存上述获取打印数据的装置所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。获取打印数据的装置通过执行存储的程序,可以获取打印数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (13)
1.一种获取打印数据的方法,其特征在于,应用于远程计算机所述计算机操作***为Linux,所述远程计算机包括通用Unix打印***CUPS、假脱机打印模块和打印机服务端,所述方法包括:
所述打印***采用互联网打印协议IPP向所述假脱机打印模块发送目标打印数据;
所述假脱机打印模块接收所述目标打印数据,并采用远程桌面协议将所述目标打印数据向所述打印机服务端发送。
2.根据权利要求1所述的方法,其特征在于,在所述打印***采用IPP向所述假脱机打印模块发送目标打印数据之前,所述方法还包括:
所述假脱机打印模块向所述打印***发送第一请求消息,所述第一请求消息包括用于确定所述目标打印数据的信息,所述目标打印数据为在目标虚拟打印机上打印的数据,所述目标虚拟打印机位于所述远程计算机中;
所述打印***根据所述第一请求消息确定所述目标打印数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述假脱机打印模块获取打印机信息列表,所述打印机信息列表包含至少一个本地打印机的属性信息,所述本地打印机为与本地计算机连接的打印机;
所述假脱机打印模块根据所述打印机信息列表调用所述打印***提供的应用程序编程接口API创建至少一个虚拟打印机,一个虚拟打印机对应一个本地打印机,所述至少一个虚拟打印机包括所述目标虚拟打印机。
4.根据权利要求2或3所述的方法,其特征在于,在所述假脱机打印模块向所述打印***发送第一请求消息之前,所述方法还包括:
所述假脱机打印模块向所述打印***发送第二请求消息,所述第二请求消息用于请求所述目标虚拟打印机的打印机任务列表;
所述打印***向所述假脱机打印模块返回响应消息,所述响应消息中包括所述目标虚拟打印机的打印机任务列表;
所述假脱机打印模块根据所述打印机任务列表确定所述第一请求消息中包括的用于确定所述目标打印数据的信息。
5.根据权利要求4所述的方法,其特征在于,在所述假脱机打印模块向所述打印***发送第二请求消息之前,所述方法还包括:
所述假脱机打印模块向所述打印***发送查询请求消息,所述查询请求消息用于查询需要打印数据的虚拟打印机的属性信息;
所述打印***向所述假脱机打印模块返回查询响应消息,所述查询响应消息中包括需要打印数据的虚拟打印机的属性信息;
所述假脱机打印模块根据需要打印数据的虚拟打印机的属性信息确定所述目标虚拟打印机。
6.根据权利要求5所述的方法,其特征在于,在所述假脱机打印模块向所述打印***发送第二请求消息之前,所述方法还包括:
所述假脱机打印模块获取所述目标虚拟打印机的状态,所述状态包括忙碌或空闲;
所述假脱机打印模块向所述打印***发送第二请求消息,包括:当所述目标虚拟打印机的状态为空闲时,所述假脱机打印模块向所述打印***发送第二请求消息。
7.一种获取打印数据的装置,其特征在于,应用于远程计算机,所述计算机操作***为Linux,包括:通用Unix打印***CUPS、假脱机打印模块和打印机服务端;
所述打印***,用于采用互联网打印协议IPP向所述假脱机打印模块发送目标打印数据;
所述假脱机打印模块,用于接收所述目标打印数据,并采用远程桌面协议将所述目标打印数据向所述打印机服务端发送。
8.根据权利要求7所述的装置,其特征在于,
所述假脱机打印模块,还用于向所述打印***发送第一请求消息,所述第一请求消息包括用于确定所述目标打印数据的信息,所述目标打印数据为在目标虚拟打印机上打印的数据,所述目标虚拟打印机位于所述远程计算机中;
所述打印***,还用于根据所述第一请求消息确定所述目标打印数据。
9.根据权利要求8所述的装置,其特征在于,
所述假脱机打印模块,还用于获取打印机信息列表,所述打印机信息列表包含至少一个本地打印机的属性信息,所述本地打印机为与本地计算机连接的打印机;
所述假脱机打印模块,还用于根据所述打印机信息列表调用所述打印***提供的应用程序编程接口API创建至少一个虚拟打印机,一个虚拟打印机对应一个本地打印机,所述至少一个虚拟打印机包括所述目标虚拟打印机。
10.根据权利要求8或9所述的装置,其特征在于,
所述假脱机打印模块,还用于向所述打印***发送第二请求消息,所述第二请求消息用于请求所述目标虚拟打印机的打印机任务列表;
所述打印***,还用于向所述假脱机打印模块返回响应消息,所述响应消息中包括所述目标虚拟打印机的打印机任务列表;
所述假脱机打印模块,还用于根据所述打印机任务列表确定所述第一请求消息中包括的用于确定所述目标打印数据的信息。
11.根据权利要求10所述的装置,其特征在于,
所述假脱机打印模块,还用于向所述打印***发送查询请求消息,所述查询请求消息用于查询需要打印数据的虚拟打印机的属性信息;
所述打印***,还用于向所述假脱机打印模块返回查询响应消息,所述查询响应消息中包括需要打印数据的虚拟打印机的属性信息;
所述假脱机打印模块,还用于根据需要打印数据的虚拟打印机的属性信息确定所述目标虚拟打印机。
12.根据权利要求11所述的装置,其特征在于,
所述假脱机打印模块,还用于获取所述目标虚拟打印机的状态,所述状态包括忙碌或空闲;
所述假脱机打印模块,具体用于当所述目标虚拟打印机的状态为空闲时,所述假脱机打印模块向所述打印***发送第二请求消息。
13.一种获取打印数据的装置,其特征在于,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,所述处理器通过执行所述存储器存储的所述计算机执行指令,以使所述装置执行如权利要求1-6中任意一项所述的获取打印数据的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611021378.5A CN106557288B (zh) | 2016-11-15 | 2016-11-15 | 一种获取打印数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611021378.5A CN106557288B (zh) | 2016-11-15 | 2016-11-15 | 一种获取打印数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106557288A CN106557288A (zh) | 2017-04-05 |
CN106557288B true CN106557288B (zh) | 2020-04-14 |
Family
ID=58444374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611021378.5A Active CN106557288B (zh) | 2016-11-15 | 2016-11-15 | 一种获取打印数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106557288B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783036A (zh) * | 2017-11-14 | 2019-05-21 | 中国电信股份有限公司 | 打印方法、***、装置和计算机可读存储介质 |
EP3958108A4 (en) | 2019-05-30 | 2022-05-18 | Huawei Technologies Co., Ltd. | METHOD, APPARATUS AND SYSTEM FOR PRINTING A DOCUMENT IN A VIRTUAL MACHINE USING A TERMINAL DEVICE |
CN110865776B (zh) * | 2019-09-30 | 2023-07-04 | 浙江口碑网络技术有限公司 | 票据打印方法及其装置 |
CN112988084A (zh) * | 2019-12-02 | 2021-06-18 | 中兴通讯股份有限公司 | 打印机使用方法、计算机设备、打印***及存储介质 |
CN111240610A (zh) * | 2020-01-08 | 2020-06-05 | 中孚安全技术有限公司 | 一种打印流程管控方法、***、终端及存储介质 |
CN113900603B (zh) * | 2021-12-10 | 2022-04-01 | 统信软件技术有限公司 | 一种模拟打印方法、计算设备及存储介质 |
CN114579065A (zh) * | 2022-01-21 | 2022-06-03 | 福建升腾资讯有限公司 | 一种云桌面的打印机重定向方法及*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1575460A (zh) * | 2001-08-22 | 2005-02-02 | 皮尔雷斯***公司 | 通过无线设备能够进行打印的输出管理***和方法 |
CN102436361A (zh) * | 2010-11-19 | 2012-05-02 | 微软公司 | 分支办公室直接打印 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8314960B2 (en) * | 2005-01-31 | 2012-11-20 | Cortado Ag | Method and system for printing via application servers and corresponding computer program and corresponding computer-readable storage medium |
US7949741B2 (en) * | 2007-02-20 | 2011-05-24 | Microsoft Corporation | Printer user interface redirection over a terminal services session |
-
2016
- 2016-11-15 CN CN201611021378.5A patent/CN106557288B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1575460A (zh) * | 2001-08-22 | 2005-02-02 | 皮尔雷斯***公司 | 通过无线设备能够进行打印的输出管理***和方法 |
CN102436361A (zh) * | 2010-11-19 | 2012-05-02 | 微软公司 | 分支办公室直接打印 |
Non-Patent Citations (2)
Title |
---|
孔智鹏.虚拟云桌面云接入关键***的设计与实现.《中国优秀硕士学位论文全文数据库 信息科技辑》.2014,(第04期), * |
虚拟云桌面云接入关键***的设计与实现;孔智鹏;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140415(第04期);第2.4、4.2、5.3、5.4、6.1、6.2.2节,图6-4、6-5 * |
Also Published As
Publication number | Publication date |
---|---|
CN106557288A (zh) | 2017-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106557288B (zh) | 一种获取打印数据的方法及装置 | |
US9069503B2 (en) | Apparatus, system, and method of output distribution, and recording medium storing output distribution control program | |
US9244817B2 (en) | Remote debugging in a cloud computing environment | |
CN108681777B (zh) | 一种基于分布式***的机器学习程序运行的方法和装置 | |
CN109729040B (zh) | 协议的选择的方法、设备以及计算机可读介质 | |
CN109218356B (zh) | 管理服务器上有状态应用的方法和设备 | |
US10530881B2 (en) | Redirecting scanners and printers over a WAN | |
JP6961623B2 (ja) | プリンタドライバとプリンタプロファイルのソフトウェアアズアサービス配備 | |
CN107104999B (zh) | 服务接口调用请求的处理方法和装置 | |
RU2580079C2 (ru) | Инфраструктура активации приложений | |
JP2016130970A (ja) | 情報処理装置とその制御方法およびプログラム | |
CN105024913B (zh) | 进行即时通讯会话的方法、装置及*** | |
CN115080479B (zh) | 传输方法、服务器、设备、裸金属实例及基板管理控制器 | |
TW201428603A (zh) | 分配雲端資料並由群組列印端主動列印該雲端資料之方法 | |
CN114296953A (zh) | 一种多云异构***及任务处理方法 | |
CN107277163B (zh) | 一种设备远程映射方法及装置 | |
US8593676B2 (en) | Method and system for managing print device information using a cloud administration system | |
CN105302502A (zh) | 实现打印共享的方法、客户端、打印机、平台和*** | |
WO2019119280A1 (zh) | 业务处理方法、云服务器和终端设备 | |
CN112202605A (zh) | 服务配置方法、装置、设备及存储介质 | |
JP2009157786A (ja) | メッセージ送信制御方法、メッセージ送信制御装置、及びメッセージ送信制御プログラム | |
US20150120805A1 (en) | Bi-directional Channel-based Progress Indicator | |
CN114726657A (zh) | 中断管理和数据收发管理的方法、装置及智能网卡 | |
JP2020052874A (ja) | 携帯端末、システム、アクセス方法、およびプログラム | |
JP6115253B2 (ja) | プリントシステム、スプールサーバ、スプール方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220216 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |