WO2020244379A1 - 一种打印实现方法、装置及系统、存储介质 - Google Patents

一种打印实现方法、装置及系统、存储介质 Download PDF

Info

Publication number
WO2020244379A1
WO2020244379A1 PCT/CN2020/091032 CN2020091032W WO2020244379A1 WO 2020244379 A1 WO2020244379 A1 WO 2020244379A1 CN 2020091032 W CN2020091032 W CN 2020091032W WO 2020244379 A1 WO2020244379 A1 WO 2020244379A1
Authority
WO
WIPO (PCT)
Prior art keywords
printing
printer
print
virtual
client
Prior art date
Application number
PCT/CN2020/091032
Other languages
English (en)
French (fr)
Inventor
徐江川
曹颖
王�义
Original Assignee
中兴通讯股份有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2020244379A1 publication Critical patent/WO2020244379A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1292Mobile client, e.g. wireless printing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Definitions

  • the embodiments of the present invention relate to, but are not limited to, a printing implementation method, device, and system, and a computer-readable storage medium.
  • Virtual desktop As the earliest project in the cloud computing industry, virtual desktop has a huge market. In recent years, virtual desktops have developed vigorously in China. Banks, armed police forces, and government agencies have successively adopted virtual desktop technology to replace traditional PCs (Personal Computers). Virtual desktop is a revolution in enterprise IT architecture. While bringing mobile computing experience, it meets the needs of many specific industries.
  • printers are peripherals that are used particularly frequently when handling business.
  • there are two ways to use printers in the cloud desktop One is to share the printer on the terminal and add a network printer to the cloud desktop. This method is only applicable to Windows terminals, and the cloud desktop must be able to access the terminal Network, but in reality, many times the terminal is behind NAT (Network Address Translation), this condition cannot be met.
  • the second method is to use port redirection (such as USB (Universal Serial Bus), serial port, and parallel port) to redirect the printer port to the virtual machine, which is slower.
  • port redirection such as USB (Universal Serial Bus), serial port, and parallel port
  • At least one embodiment of the present invention provides a printing implementation method, including:
  • the print port monitor sends the print data and virtual print port information of the target printer to the client.
  • At least one embodiment of the present invention provides a printing implementation method, including:
  • the target printer is determined according to the virtual print port information, and the print data is written to the target printer for printing.
  • At least one embodiment of the present invention provides a printing implementation device, including a memory and a processor, the memory stores a program, and when the program is read and executed by the processor, the printing implementation described in any of the embodiments is implemented method.
  • At least one embodiment of the present invention provides a computer-readable storage medium, the computer-readable storage medium stores one or more programs, and the one or more programs can be executed by one or more processors to implement any The printing implementation method described in an embodiment.
  • At least one embodiment of the present invention provides a printing implementation system, including: a client and a virtual machine, wherein:
  • the virtual machine is configured to, after receiving an instruction to print a target document using a target printer, convert the target document into print data, transmit the print data to the print port monitor in the virtual machine, and then The print port monitor sends the print data and virtual print port information of the target printer to the client;
  • the client is configured to receive print data and virtual print port information from the virtual machine, determine a target printer according to the virtual print port information, and write the print data to the target printer for printing.
  • Figure 1 is a schematic diagram of a virtual desktop using a printer in related technologies
  • Figure 2 is a frame diagram of Windows printing
  • Figure 3 is a static view of a virtual machine printer redirection module provided by an embodiment of the present invention.
  • Figure 4 is a flowchart of a printing implementation method provided by an embodiment of the present invention (on the virtual machine side);
  • Figure 5 is a flowchart of a printing implementation method provided by an embodiment of the present invention (client side);
  • FIG. 6 is a flowchart of a virtual machine printer redirection provided by an embodiment of the present invention.
  • Figure 7 is a block diagram of a printing implementation device provided by an embodiment of the present invention.
  • FIG. 8 is a block diagram of a computer-readable storage medium according to an embodiment of the present invention.
  • Fig. 9 is a block diagram of a printing implementation system provided by an embodiment of the present invention.
  • the printer port is redirected to the virtual machine via USB.
  • the terminal includes: Quick-cut driver (UsbHubHook driver): Hot-plug target Device and modify the PID (Product Identify, product identification), VID (Vendor Identify, vendor identification) of the device; LibUsbK driver: loaded as the functional driver of the target device; UsbIp client user mode program: through socket (socket) Receive the USB request of the virtual machine to the LibUsbK driver for processing, and reply the response to the virtual machine; the virtual machine side includes: virtual USB bus driver: simulate a USB bus and install virtual devices; UsbIp server program: pass the USB request to the terminal And send the reply packet to VHCI (Virtual Host Controller Interface, virtual host controller interface) bus.
  • VHCI Virtual Host Controller Interface, virtual host controller interface
  • This scheme intercepts the print data from the port driver layer (kernel mode) in the virtual machine.
  • This scheme has the following disadvantages:
  • the cloud desktop operating system After the redirection is successful, the cloud desktop operating system also needs to load the driver for the printer, which is also slow;
  • the virtual machine When printing, the virtual machine intercepts URB (USB Request Block, Universal Serial Bus Request Block) request packets. Not only is the number very large, but also requires serial processing. After passing through the network, the delays continue to accumulate, resulting in slow response;
  • URB USB Request Block, Universal Serial Bus Request Block
  • the object to be processed is the URB request packet, which is the data form of the kernel layer.
  • the virtual machine and the terminal need to develop two drivers respectively, plus the service module for network communication, the module to be developed Too much and too complicated.
  • Figure 2 shows the Windows printing framework.
  • the Windows printing framework includes: custom interface and configuration plug-ins, configuration modules, rendering plug-ins, rendering modules, Windows configuration files, print processors, language monitors, print port monitors, third-party data files and languages Resources, etc., bus driver, of which the configuration module, rendering module and bus driver are provided by the Windows operating system, customized interface and configuration plug-ins, rendering plug-ins, Windows configuration files, print processors, language monitors, third-party data files and languages Resources, etc. are provided by the equipment manufacturer.
  • the print port monitor of the virtual desktop is modified, and the print port monitor provided by this application is used to replace the default port monitor in the Windows printing framework to create a virtual
  • the print port is used by the printer in the virtual machine.
  • the print data processed by the printer processor and printer driver will be transmitted to the print port monitor of the virtual machine, and the print port monitor of the virtual machine will pass the print data through
  • the network transmits to the client, and the printer in the client prints.
  • the print data can be transmitted after lossless compression, of course, it can also be transmitted directly without compression.
  • the printer management service adds the client's printer, and sets the printer's port or driver attributes as a virtual printing port.
  • the printer management service of the virtual machine can monitor the connection request of the client, receive printer list information from the client, and automatically add printers according to the printer list information.
  • the client receives the print data from the print port monitor of the virtual machine and writes it to the printer of the client for printing.
  • all printers on the client are enumerated and sent to the virtual machine when the client is connected; it should be noted that the virtual machine can add printers on the client in other ways, such as manually by the user Configuration. At this time, the client may not report the local printer to the virtual machine.
  • FIG. 3 is a schematic diagram of a virtual machine printer redirection provided by an embodiment of the present invention.
  • the target document is processed by the printer driver to generate print data and sent to the print port monitor.
  • the print port monitor receives the print data, it sends the print data to the client, and the client prints Data is written to the target printer to realize printing.
  • the virtual printing port corresponds to the printer 1
  • the virtual printing port 2 corresponds to the printer 2
  • the virtual printing port 3 corresponds to the printer 3.
  • an embodiment of the present invention provides a printing implementation method, including:
  • Step 401 Add a client printer to a virtual machine, where the port of the printer is set as a virtual printing port;
  • Step 402 After receiving the instruction to print the target document using the target printer, convert the target document into print data, and transmit the print data to the print port monitor;
  • Step 403 The print port monitor sends the print data and virtual print port information of the target printer to the client.
  • the solution provided in this embodiment intercepts the print data from the print port monitor layer (user mode) in the virtual machine, and it is non-kernel mode and does not involve kernel mode drivers, which is more efficient and stable without affecting the entire system of the virtual machine. , Does not affect other functions of the operating system.
  • the data transmitted from the virtual machine to the client has been processed by the virtual machine print driver, and the terminal no longer needs to install the printer driver provided by the manufacturer.
  • the solution provided in this embodiment can stably and efficiently meet the customer's requirements for using printers in virtual machines, and is an extremely practical function, which plays a positive role in the promotion of virtual desktops.
  • step 401 before adding the printer of the client to the virtual machine, the method further includes receiving printer list information sent by the client;
  • the printer list information includes all local printers and their attribute information on the client.
  • the attribute information includes: printer name, driver version number, resolution paper attributes (size, single-sided, etc.), page attributes (color or black and white, Number of copies, etc.), port and other printing attributes.
  • the attribute information is stored in the Devmode structure and can be viewed through printer properties and printer preferences.
  • the adding the printer of the client to the virtual machine includes: adding the printer of the client to the virtual machine according to the printer list information. Specifically, the virtual machine checks whether there is a printer with the same name, if it does not exist, it automatically adds the printer, and if it exists, skips it.
  • setting the port of the printer as a virtual printing port includes: modifying the attributes of the printer (such as a driver or port) to a virtual printing port.
  • the print data is in RAW format. Because the RAW format is supported by various printers, no matter what operating system the terminal is, it can directly send print data to the printer without additional processing, thereby shielding the difference in the operating system where the client is located. Including, but not limited to, no difference handling of client operating systems such as Linux series, Windows series, android and iOS series. It should be noted that the present invention is not limited to this, and may also be print data in other formats.
  • the sending of the print data and virtual print port information of the target printer to the client by the print port monitor includes: after the print port monitor compresses the print data, The print data and virtual print port information of the target printer are sent to the client. Among them, compressing and transmitting the print data can save bandwidth. Among them, after using lossless compression, bandwidth can be saved by 30% to 50%.
  • This embodiment does not involve kernel mode driving, which is more stable and does not affect the entire system of the virtual machine.
  • any changes to document attributes or printer attributes only need to be modified in the virtual desktop, which conforms to the user's thinking habit of using the virtual desktop, and does not change the user's usage habit, thereby rapidly improving customer experience.
  • the solution provided in this embodiment is applicable to printers with any interface, including but not limited to USB, serial port, parallel port, and network port.
  • This embodiment also shields the difference of the operating system where the virtual desktop client is located.
  • the client operating systems may be linux, wes, android, and iOS respectively, which can be matched in different ways to form multiple embodiments.
  • Fig. 5 is a schematic diagram (client side) of a printing implementation method provided by an embodiment of the present invention. As shown in FIG. 5, an embodiment of the present invention provides a printing implementation method, including:
  • Step 501 Receive print data and virtual print port information from the virtual machine; wherein the virtual print port information has a corresponding relationship with the printer of the client;
  • the print data refers to the data processed by the print driver, etc., which can be directly written into the printer for printing without the need for the print driver to process the data.
  • Step 502 Determine a target printer according to the virtual print port information, and write the print data to the target printer for printing.
  • the print data is print data in RAW format. Due to the received RAW format data, no matter what operating system the terminal is, it can be directly sent to the printer without additional processing. Among them, the print data in the RAW format may be uncompressed or compressed.
  • the method further includes sending local printer information to the virtual machine.
  • local printer information can be all local printers or some printers.
  • the solution provided in this embodiment is applicable to printers with any interface, including but not limited to USB, serial port, parallel port, and network port.
  • This embodiment also shields the difference of the operating system where the client is located. There is no difference in handling the client operating systems of Linux series, Windows series, android and iOS series.
  • the client operating systems may be linux, wes, android, and iOS respectively, which can be matched in different ways to form multiple embodiments.
  • This embodiment provides a printing implementation method.
  • the client enumerates all printers locally and reports the information to the virtual machine.
  • the print port monitor will receive the print data and send the print data to the client through the network connection.
  • the client opens the corresponding printer and writes the print data directly
  • the process of automatically adding a printer in the virtual machine is as follows:
  • the client After the user logs in to the virtual desktop, the client enumerates all local printers and attribute information of the terminal, generates printer list information, and transmits the printer list information to the printer management service of the virtual machine through the network.
  • the printer management service in the virtual machine calls the API provided by the print port monitor to add a virtual print port according to the number of printers, and then determines whether the printer in the printer list already exists. If it does not exist, it is automatically added according to the received attribute information.
  • the index can determine the target printer.
  • each module in the Windows printing framework processes the target document, it converts it into print data and transmits it to the print port monitor, as well as the virtual print port information of the target printer;
  • the print data is, for example, print data in RAW format.
  • the print port monitor receives the print data and the virtual print port information of the target printer, and sends the print data and the virtual print port information of the target printer to the client;
  • the client determines the target printer according to the virtual print port information, and sends the print data to the target printer for printing.
  • an index can be determined according to the virtual print port information, and the target printer can be determined according to the index.
  • Fig. 6 is a flow chart of a virtual machine using a printer service provided by an embodiment of the present invention. Among them, a print port monitor and a printer driver are installed in the virtual machine. As shown in Figure 6, the method includes:
  • Step 601 the client starts, logs in to the virtual machine, and requests an ip address from the virtual machine agent;
  • Step 602 the virtual machine proxy returns the ip address of the virtual machine to the client;
  • Step 603 the client establishes a socket link with the printer management service
  • Step 604 After the user logs in to the virtual machine, the client enumerates all local printers and attribute information of the terminal, generates printer list information, and transmits the printer list information to the printer management service of the virtual machine via the network.
  • Step 605 The printer management service in the virtual machine calls the API provided by the print port monitor to add a print port according to the number of printers;
  • Step 606 The printer management service judges whether the printer in the list already exists, if it does not exist, automatically add the same printer according to the received attribute information; if it exists, skip it;
  • step 607 the printer management service changes the port of the printer to a virtual printing port with the same index according to the index of the printer in the list.
  • step 608 the virtual machine receives the printing instruction, instructing to use the target printer to print the target document.
  • Step 609 After the target document is processed by the print driver, print data in RAW format is generated and passed to the print port monitor;
  • Step 610 the StartDoc function provided by the print port monitor is called to notify the virtual machine agent
  • Step 611 The virtual machine agent notifies the client to connect through the main channel
  • Step 612 The client establishes a socket link with the print port monitor of the virtual machine according to the known virtual machine ip address and fixed port number;
  • Step 613 The print port monitor obtains the print data in RAW format and the virtual print port information (such as the specific name of the print), and sends the print data and virtual print port information to the client through the socket link.
  • the virtual print port information such as the specific name of the print
  • Step 614 The client determines the target printer according to the virtual print port information, and sends the print data to the target printer for printing.
  • the client determines an index according to the virtual print port information, and the index is the index information of the target printer.
  • step 615 the document printing is completed, the EndDoc function provided by the print port monitor in the virtual machine is called, and the print port monitor disconnects from the client.
  • the printer of the terminal can be redirected to the virtual machine for use from the application level, which is more concise and efficient, and effectively saves bandwidth occupation.
  • the user experience can be quickly improved, which is of practical significance to the promotion of virtual machines.
  • an embodiment of the present invention provides a printing implementation device 70, which includes a memory 710 and a processor 720.
  • the memory 710 stores a program.
  • the program is read and executed by the processor 720, Implement the printing implementation method described in any one of the embodiments.
  • an embodiment of the present invention provides a computer-readable storage medium 80.
  • the computer-readable storage medium stores one or more programs 81, and the one or more programs 81 can be stored by one or more programs. Are executed by each processor to implement the printing implementation method described in any embodiment.
  • an embodiment of the present invention provides a printing implementation system, including: a client 91 and a virtual machine 92, where:
  • the client 91 is configured to receive print data and virtual print port information from a virtual machine, determine a target printer according to the virtual print port information, and write the print data to the target printer for printing;
  • the virtual machine 92 is configured to, after receiving an instruction to print a target document using a target printer, convert the target document into print data, and transmit the print data to a print port monitor in the virtual machine, and then The print port monitor sends the print data and virtual print port information of the target printer to the client.
  • At least one embodiment of the present invention provides a printing realization method, device and system, and computer-readable storage medium to improve cloud desktop printing speed.
  • an embodiment of the present invention includes adding a client printer to a virtual machine, wherein the port of the printer is set to a virtual printing port; after receiving an instruction to print the target document using the target printer, the target The document is converted into print data, and the print data is transmitted to a print port monitor; the print port monitor sends the print data and virtual print port information of the target printer to the client.
  • the solution provided by this embodiment intercepts data in the user mode, does not involve kernel mode driving, achieves more efficient and stable, and does not affect the entire system of the virtual machine, and does not affect other functions of the operating system.
  • Such software may be distributed on a computer-readable medium
  • the computer-readable medium may include a computer storage medium (or non-transitory medium) and a communication medium (or transitory medium).
  • the term computer storage medium includes volatile and non-volatile memory implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules, or other data).
  • Computer storage media include but are not limited to RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, magnetic cassette, tape, magnetic disk storage or other magnetic storage device, or Any other medium used to store desired information and that can be accessed by a computer.
  • communication media usually contain computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as carrier waves or other transmission mechanisms, and may include any information delivery media .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

一种打印实现方法、装置及系统,所述打印实现方法包括:在虚拟机添加客户端的打印机,其中,所述打印机的端口设置为虚拟打印端口(401);接收到使用目标打印机打印目标文档的指令后,将所述目标文档转换为打印数据,将所述打印数据传输到打印端口监视器(402);打印端口监视器将所述打印数据和所述目标打印机的虚拟打印端口信息发送给所述客户端(403)。

Description

一种打印实现方法、装置及系统、存储介质
相关申请的交叉引用
本申请基于申请号为201910479974.5、申请日为2019年06月04日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此引入本申请作为参考。
技术领域
本发明实施例涉及但不限于一种打印实现方法、装置及系统,计算机可读存储介质。
背景技术
虚拟桌面作为云计算产业中落地最早的项目,市场规模巨大。近年来,虚拟桌面在国内蓬勃发展,包括银行、武警部队、政府机关等均陆续采用虚拟桌面技术替代传统PC(Personal Computer,个人计算机)。虚拟桌面是企业IT架构的一次革命,带来移动计算体验的同时,满足了很多特定行业的需要。
在政府、银行等客户中,办理业务时打印机是使用频率特别高的外设。通常情况下,在云桌面里使用打印机一般有两种方式,其一是将终端上的打印机共享,在云桌面里添加网络打印机,这种方式只适用于Windows终端,并且云桌面必须可以访问终端网络,而实际很多时候终端是在NAT(Network Address Translation,网络地址转换)后面,此条件便无法满足。第二种方式是使用端口重定向(如USB(Universal Serial Bus,通用串行总线)、串口、并口)将打印机端口重定向到虚拟机里,该方式处理速度比较慢。
发明内容
有鉴于此,本发明至少一实施例提供一种打印实现方法,包括:
在虚拟机添加客户端的打印机,其中,所述打印机的端口设置为虚拟打印端口;
接收到使用目标打印机打印目标文档的指令后,将所述目标文档转换为打印数据,将所述打印数据传输到打印端口监视器;
所述打印端口监视器将所述打印数据和所述目标打印机的虚拟打印端口信息发送给所述客户端。
本发明至少一实施例提供一种打印实现方法,包括:
接收来自虚拟机的打印数据和虚拟打印端口信息,其中,所述虚拟打印端口信息与客户端的打印机存在对应关系;
根据所述虚拟打印端口信息确定目标打印机,将所述打印数据写入所述目标打印机进 行打印。
本发明至少一实施例提供一种打印实现装置,包括存储器和处理器,所述存储器存储有程序,所述程序在被所述处理器读取执行时,实现任一实施例所述的打印实现方法。
本发明至少一实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现任一实施例所述的打印实现方法。
本发明至少一实施例提供一种打印实现系统,包括:客户端和虚拟机,其中:
所述虚拟机用于,接收到使用目标打印机打印目标文档的指令后,将所述目标文档转换为打印数据,将所述打印数据传输到所述虚拟机中的打印端口监视器,由所述打印端口监视器将所述打印数据和所述目标打印机的虚拟打印端口信息发送给所述客户端;
所述客户端用于,接收来自所述虚拟机的打印数据和虚拟打印端口信息,根据所述虚拟打印端口信息确定目标打印机,将所述打印数据写入所述目标打印机进行打印。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1是相关技术中虚拟桌面使用打印机的示意图;
图2是Windows打印框架图;
图3是本发明一实施例提供的虚拟机打印机重定向模块静态视图;
图4是本发明一实施例提供的打印实现方法流程图(虚拟机侧);
图5是本发明一实施例提供的打印实现方法流程图(客户端侧);
图6是本发明一实施例提供的虚拟机打印机重定向流程图;
图7是本发明一实施例提供的打印实现装置框图;
图8是本发明一实施例提供的计算机可读存储介质框图;
图9是本发明一实施例提供的打印实现系统框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
如图1所示,为相关技术中虚拟桌面使用打印机实现方法,该方案中,通过USB将打印机端口重定向到虚拟机里,其中,终端包括:快切驱动(UsbHubHook驱动):热插拔目标设备并修改设备的PID(Product Identify,产品标识)、VID(Vendor Identify,供应商标识);LibUsbK驱动:作为目标设备的功能驱动被加载;UsbIp客户端用户态程序:通过socket(套接字)接收虚拟机的USB请求给LibUsbK驱动处理,并将响应回复给虚拟机;虚拟机侧包括:虚拟USB总线驱动:模拟一条USB总线,并安装虚拟设备;UsbIp服务端程序:将USB请求传给终端并将回复包传给VHCI(Virtual Host Controller Interface,虚拟主控制器接口)总线。
该方案在虚拟机里是从端口驱动层(内核态)来截获打印数据的,该方案有如下缺点:
重定向的时候需要在终端上切换设备驱动,该过程较慢;
重定向成功后,云桌面操作系统还需要为打印机加载驱动,该过程也较慢;
打印的时候,虚拟机截获到的是URB(USB Request Block,通用串行总线请求块)请求包,不但数量非常多,而且需要串行处理,经过网络之后,延迟不断累加导致响应慢;
处理的对象是URB请求包,是内核层的数据形式,为了截获和处理这种数据,虚拟机和终端分别都需要开发2个驱动,再加上用于网络通信的服务模块,需要开发的模块太多太复杂。
基于上述分析,本申请中,通过深入研究Windows系统打印框架,提出了一种在云桌面里使用打印机的打印实现方法和系统。该方法是通过在虚拟机里替换Windows打印框架中的模块,实现打印数据的截获,从而发送给终端上的物理打印机进行打印。
图2为Windows打印框架图。如图2所示,Windows打印框架包括:定制界面和配置插件、配置模块、渲染插件、渲染模块、Windows配置文件、打印处理器、语言监视器、打印端口监视器、第三方的数据文件和语言资源等、总线驱动,其中,配置模块、渲染模块和总线驱动由Windows操作系统提供,定制界面和配置插件、渲染插件、Windows配置文件、打印处理器、语言监视器、第三方的数据文件和语言资源等由设备厂家提供,本申请一实施例中对虚拟桌面(虚拟机)的打印端口监视器进行改造,使用本申请提供的打印端口监视器替换Windows打印框架中的默认端口监视器,创建虚拟打印端口给虚拟机中的打印机使用,当用户打印文档时,通过打印机处理器和打印机驱动处理后的打印数据会传输到虚拟机的打印端口监视器,虚拟机的打印端口监视器将打印数据通过网络传给客户端, 由客户端中的打印机进行打印。其中,可以对打印数据进行无损压缩后进行传送,当然,也可以不压缩直接传送。
另外,改造运行于虚拟机的打印机管理服务。打印机管理服务添加客户端的打印机,将打印机的端口或者驱动等属性设置为虚拟打印端口。其中,虚拟机的打印机管理服务可以监听客户端的连接请求,接收来自客户端的打印机列表信息,根据打印机列表信息自动添加打印机。当然,也可以根据其他方式添加打印机,比如,通过管理员的设置添加客户端的打印机。
另外,改造客户端。用户打印文档时,客户端接收来自虚拟机的打印端口监视器的打印数据并写入客户端的打印机进行打印。
在一实施例中,还在客户端连接的时候枚举客户端上的所有打印机并发送给虚拟机;需要说明的是,虚拟机可以通过其他方式添加客户端上的打印机,比如由用户手动进行配置,此时,客户端也可以不上报本地的打印机给虚拟机。
图3所示为本发明一实施例提供的虚拟机打印机重定向示意图。如图3所示,在虚拟机中,目标文档经打印机驱动等处理后生成打印数据发送给打印端口监视器,打印端口监视器接收到打印数据后,将打印数据发送客户端,客户端将打印数据写入目标打印机实现打印。其中,虚拟打印端口和打印机存在对应关系,比如,虚拟打印端口1对应打印机1,虚拟打印端口2对应打印机2,虚拟打印端口3对应打印机3。
如图4所示,本发明一实施例提供一种打印实现方法,包括:
步骤401,在虚拟机添加客户端的打印机,其中,所述打印机的端口设置为虚拟打印端口;
步骤402,接收到使用目标打印机打印目标文档的指令后,将所述目标文档转换为打印数据,将所述打印数据传输到打印端口监视器;
步骤403,打印端口监视器将所述打印数据和所述目标打印机的虚拟打印端口信息发送给所述客户端。
本实施例提供的方案,在虚拟机里是从打印端口监视器层(用户态)截获打印数据的,非内核态,不涉及内核态驱动,实现更加高效稳定,且不会影响虚拟机整个系统,不影响操作系统的其他功能。虚拟机传给客户端的数据已经经过了虚拟机打印驱动处理,终端不再需要安装厂家提供的打印机驱动。另外,部署便捷,非常有实际使用价值。本实施例提供的方案,可以稳定、高效地满足客户在虚拟机使用打印机的要求,是一项极为实用的功能,对虚拟桌面的推广起到积极作用。
其中,步骤401中,在虚拟机添加客户端的打印机前,还包括,接收所述客户端发送 的打印机列表信息;
其中,打印机列表信息包括客户端本地所有的打印机及其属性信息,所述属性信息包括:打印机名称、驱动版本号、分辨率纸张属性(大小,是否单面等),页属性(彩色还是黑白,份数等),端口等打印属性。属性信息保存在Devmode结构中,可通过打印机属性和打印机首选项等查看。
所述在虚拟机添加客户端的打印机包括:根据所述打印机列表信息在虚拟机添加客户端的打印机。具体的,虚拟机查看是否存在同名的打印机,如果不存在,则自动添加打印机,如果存在,则跳过。
其中,所述打印机的端口设置为虚拟打印端口包括:将打印机的属性(如驱动或者端口)修改为虚拟打印端口。
在一实施例中,所述打印数据为RAW格式。由于RAW格式被各种打印机支持,终端无论是什么操作系统都可以直接将打印数据发送给打印机而无需额外处理,从而屏蔽了客户端所在操作系统的差异。包括但不限于对Linux系列、Windows系列、android以及iOS系列等的客户端操作系统无差异处理。需要说明的是,本发明不限于此,也可以是其他格式的打印数据。
在一实施例中,所述打印端口监视器将所述打印数据和目标打印机的虚拟打印端口信息发送给所述客户端包括:所述打印端口监视器将所述打印数据压缩后,将压缩后的打印数据和目标打印机的虚拟打印端口信息发送给所述客户端。其中,将打印数据压缩后传输可以节省带宽。其中,使用无损压缩后,带宽可以节省30%~50%。
本实施例不涉及内核态驱动,实现更加稳定,不会影响虚拟机整个系统。
本实施例中,针对文档属性或者打印机属性的任何更改都只需要在虚拟桌面里修改,符合用户使用虚拟桌面的思维习惯,不改变用户使用习惯从而可以迅速提升客户体验。
本实施例提供的方案适用于任何接口的打印机,包括但不限于USB、串口、并口、网口。
本实施例同样屏蔽了虚拟桌面客户端所在操作系统的差异。对Linux系列、Windows系列、android以及iOS系列的客户端操作系统无差异处理。针对本发明一实施例,客户端操作系统可以分别是linux、wes、android、iOS,进行不同方式的搭配,组成多种实施例。
图5为本发明一实施例提供的打印实现方法示意图(客户端侧)。如图5所示,本发明一实施例提供一种打印实现方法,包括:
步骤501,接收来自虚拟机的打印数据和虚拟打印端口信息;其中,所述虚拟打印端口信息与客户端的打印机存在对应关系;
其中,打印数据是指经过打印驱动等处理后的数据,可直接写入打印机进行打印,无需经过打印驱动处理的数据。
步骤502,根据所述虚拟打印端口信息确定目标打印机,将所述打印数据写入所述目标打印机进行打印。
在一实施例中,所述打印数据为RAW格式的打印数据。由于接收到的RAW格式数据,终端无论是什么操作系统都可以直接发送给打印机而无需额外处理。其中,该RAW格式的打印数据可以是未压缩的,也可以是已压缩的。
在一实施例中,所述方法还包括,将本地打印机信息发送给所述虚拟机。其中,可以是本地的全部打印机,也可以是部分打印机。
本实施例提供的方案适用于任何接口的打印机,包括但不限于USB、串口、并口、网口。
本实施例同样屏蔽了客户端所在操作系统的差异。对Linux系列、Windows系列、android以及iOS系列的客户端操作系统无差异处理。针对本发明一实施例,客户端操作系统可以分别是linux、wes、android、iOS,进行不同方式的搭配,组成多种实施例。
本实施例提供一种打印实现方法,首先在虚拟机里面安装并替换Windows打印框架的打印端口监视器模块,当用户登陆虚拟桌面时,客户端从本地枚举所有的打印机并将信息上报给虚拟机,当用户在虚拟机里打印文档的时候,打印端口监视器就会收到打印数据,将所述打印数据通过网络连接发送给客户端,客户端打开对应的打印机,直接将打印数据写入打印机完成打印。具体的,包括根据终端上的打印机自动在虚拟机中添加打印机和在虚拟桌面里截获打印数据。其中,在虚拟机里自动添加打印机的流程如下:
创建好虚拟机后,在虚拟机里安装打印端口监视器,虚拟机里还需要安装厂家提供的打印机驱动;
用户登录虚拟桌面后,客户端枚举终端本地所有的打印机及属性信息,生成打印机列表信息,将打印机列表信息通过网络传输给虚拟机的打印机管理服务。
虚拟机里的打印机管理服务根据打印机的数量调用打印端口监视器提供的API添加虚拟打印端口,然后判断所述打印机列表中的打印机是否已经存在,如果不存在,根据接收到的属性信息自动添加同样的打印机;然后根据打印机在列表中的索引将打印机的端口修改为虚拟打印端口,且该虚拟打印端口与所述打印机在列表中的索引存在对应关系,即根据虚拟打印端口可以确定一索引,根据该索引可以确定目标打印机。
在虚拟机里截获打印数据流程如下:
接收用户的打印指令,该打印指令指示使用目标打印机打印目标文档;
Windows打印框架中的各个模块对目标文档进行处理后,转换成打印数据并传递给打印端口监视器,以及传递目标打印机的虚拟打印端口信息;
其中,所述打印数据比如为RAW格式的打印数据。
打印端口监视器接收所述打印数据,以及目标打印机的虚拟打印端口信息,将打印数据和目标打印机的虚拟打印端口信息发送给客户端;
客户端根据所述虚拟打印端口信息确定目标打印机,将打印数据发送给目标打印机进行打印。
具体的,虚拟打印端口信息与打印机的索引之间存在对应关系,因此,可以根据虚拟打印端口信息确定一索引,根据该索引确定目标打印机。
图6为本发明一实施例提供的虚拟机使用打印机业务流程图。其中,虚拟机里安装了打印端口监视器,以及,打印机驱动。如图6所示,该方法包括:
步骤601,客户端启动,登陆虚拟机,向虚拟机代理请求ip地址;
步骤602,虚拟机代理返回虚拟机的ip地址给客户端;
步骤603,客户端和打印机管理服务建立socket链接;
步骤604,在用户登录虚拟机后,客户端枚举终端本地所有的打印机及属性信息,生成打印机列表信息,将所述打印机列表信息通过网络传输给虚拟机的打印机管理服务。
步骤605,虚拟机里的打印机管理服务根据打印机的数量调用打印端口监视器提供的API添加打印端口;
步骤606,打印机管理服务判断列表中的打印机是否已经存在,如果不存在,根据接收到的属性信息自动添加同样的打印机;如果存在,跳过;
步骤607,打印机管理服务根据打印机在列表中的索引将打印机的端口改为同样索引的虚拟打印端口。
步骤608,虚拟机接收到打印指令,指示使用目标打印机打印目标文档。
步骤609,目标文档被打印驱动处理后生成RAW格式的打印数据,传递给打印端口监视器;
步骤610,打印端口监视器提供的StartDoc函数被调用,通知虚拟机代理;
步骤611,虚拟机代理通过主通道通知客户端连接;
步骤612,客户端根据已知的虚拟机ip地址和固定的端口号,与虚拟机的打印端口监视器建立socket链接;
步骤613,打印端口监视器获得RAW格式的打印数据,以及虚拟打印端口信息(比如打印的具体名称),将打印数据和虚拟打印端口信息通过socket链路发送给客户端。
步骤614,客户端根据虚拟打印端口信息确定目标打印机,将打印数据发送给目标打印机进行打印。
具体的,客户端根据虚拟打印端口信息确定一索引,该索引即为目标打印机的索引信息。
步骤615,文档打印完成,虚拟机里的打印端口监视器提供的EndDoc函数被调用,打印端口监视器断开与客户端的连接。
根据本实施例提供的方案,可以从应用程序层面将终端的打印机重定向到虚拟机里使用,实现更加简洁高效,有效的节省了带宽的占用。另外,可以快速提升用户体验,对虚拟机的推广具有实际意义。
如图7所示,本发明一实施例提供一种打印实现装置70,包括存储器710和处理器720,所述存储器710存储有程序,所述程序在被所述处理器720读取执行时,实现任一实施例所述的打印实现方法。
如图8所示,本发明一实施例提供一种计算机可读存储介质80,所述计算机可读存储介质存储有一个或者多个程序81,所述一个或者多个程序81可被一个或者多个处理器执行,以实现任一实施例所述的打印实现方法。
如图9所示,本发明一实施例提供一种打印实现系统,包括:客户端91和虚拟机92,其中:
所述客户端91用于,接收来自虚拟机的打印数据和虚拟打印端口信息,根据所述虚拟打印端口信息确定目标打印机,将所述打印数据写入所述目标打印机进行打印;
所述虚拟机92用于,接收到使用目标打印机打印目标文档的指令后,将所述目标文档转换为打印数据,将所述打印数据传输到所述虚拟机中的打印端口监视器,由所述打印端口监视器将所述打印数据和所述目标打印机的虚拟打印端口信息发送给所述客户端。
其中,虚拟机92和客户端91的其他功能参考前述实施例,此处不再赘述。
本发明至少一实施例提供了一种打印实现方法、装置及系统、计算机可读存储介质,提高云桌面打印速度。
与相关技术相比,本发明一实施例中,包括在虚拟机添加客户端的打印机,其中,所述打印机的端口设置虚拟打印端口;接收到使用目标打印机打印目标文档的指令后,将所述目标文档转换为打印数据,将所述打印数据传输到打印端口监视器;打印端口监视器将所述打印数据和所述目标打印机的虚拟打印端口信息发送给所述客户端。本实施例提供的方案,在用户态截获数据,不涉及内核态驱动,实现更加高效稳定,且不会影响虚拟机整个系统,不影响操作系统的其他功能。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

Claims (10)

  1. 一种打印实现方法,包括:
    在虚拟机添加客户端的打印机,其中,所述打印机的端口设置为虚拟打印端口;
    接收到使用目标打印机打印目标文档的指令后,将所述目标文档转换为打印数据,将所述打印数据传输到打印端口监视器;
    所述打印端口监视器将所述打印数据和所述目标打印机的虚拟打印端口信息发送给所述客户端。
  2. 根据权利要求1所述的打印实现方法,在虚拟机添加客户端的打印机前,还包括,接收所述客户端发送的打印机列表信息;其中,
    所述在虚拟机添加客户端的打印机包括:根据所述打印机列表信息在虚拟机添加所述客户端的打印机。
  3. 根据权利要求1所述的打印实现方法,其中,所述打印数据为RAW格式。
  4. 根据权利要求1至3任一所述的打印实现方法,其中,所述打印端口监视器将所述打印数据和目标打印机的虚拟打印端口信息发送给所述客户端包括:所述打印端口监视器将所述打印数据压缩后,将压缩后的打印数据和目标打印机的虚拟打印端口信息发送给所述客户端。
  5. 一种打印实现方法,包括:
    接收来自虚拟机的打印数据和虚拟打印端口信息,其中,所述虚拟打印端口信息与客户端的打印机存在对应关系;
    根据所述虚拟打印端口信息确定目标打印机,将所述打印数据写入所述目标打印机进行打印。
  6. 根据权利要求5所述的打印实现方法,还包括,将本地打印机信息发送给所述虚拟机。
  7. 根据权利要求5或6所述的打印实现方法,其中,所述打印数据为RAW格式的打印数据。
  8. 一种打印实现装置,包括存储器和处理器,所述存储器存储有程序,所述程序在被所述处理器读取执行时,实现如权利要求1至7任一所述的打印实现方法。
  9. 一种计算机可读存储介质,存储有一个或者多个程序,其中,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至7任一所述的打印实现方法。
  10. 一种打印实现系统,包括:客户端和虚拟机,其中:
    所述虚拟机用于,接收到使用目标打印机打印目标文档的指令后,将所述目标文档转 换为打印数据,将所述打印数据传输到所述虚拟机中的打印端口监视器,由所述打印端口监视器将所述打印数据和所述目标打印机的虚拟打印端口信息发送给所述客户端;
    所述客户端用于,接收来自所述虚拟机的打印数据和虚拟打印端口信息,根据所述虚拟打印端口信息确定目标打印机,将所述打印数据写入所述目标打印机进行打印。
PCT/CN2020/091032 2019-06-04 2020-05-19 一种打印实现方法、装置及系统、存储介质 WO2020244379A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910479974.5A CN112035074A (zh) 2019-06-04 2019-06-04 一种打印实现方法、装置及系统、存储介质
CN201910479974.5 2019-06-04

Publications (1)

Publication Number Publication Date
WO2020244379A1 true WO2020244379A1 (zh) 2020-12-10

Family

ID=73576542

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/091032 WO2020244379A1 (zh) 2019-06-04 2020-05-19 一种打印实现方法、装置及系统、存储介质

Country Status (2)

Country Link
CN (1) CN112035074A (zh)
WO (1) WO2020244379A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112612431A (zh) * 2020-12-28 2021-04-06 北京金万维科技有限公司 一种基于Windows应用虚拟化的打印方法
CN113434100B (zh) * 2021-08-27 2021-12-07 统信软件技术有限公司 一种云打印方法、计算设备和存储介质
CN113885816A (zh) * 2021-09-29 2022-01-04 广东天波信息技术股份有限公司 虚拟打印设备进行打印的方法、系统、设备和存储介质
CN114721606A (zh) * 2022-02-28 2022-07-08 阿里巴巴(中国)有限公司 云桌面打印处理方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279720A (zh) * 2013-05-30 2013-09-04 北京立思辰计算机技术有限公司 一种usb打印机安全打印监控及审计系统
CN104077085A (zh) * 2013-03-26 2014-10-01 西门子(中国)有限公司 用于自动化控制系统的虚拟打印系统
CN107256134A (zh) * 2017-04-25 2017-10-17 百富计算机技术(深圳)有限公司 将pos终端虚拟为计算机打印机的方法和装置、pos终端

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9990217B2 (en) * 2012-05-31 2018-06-05 Red Hat, Inc. Hypervisor printer emulation for virtual machines
JP6145116B2 (ja) * 2015-01-14 2017-06-07 キヤノン株式会社 情報処理装置とその制御方法およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077085A (zh) * 2013-03-26 2014-10-01 西门子(中国)有限公司 用于自动化控制系统的虚拟打印系统
CN103279720A (zh) * 2013-05-30 2013-09-04 北京立思辰计算机技术有限公司 一种usb打印机安全打印监控及审计系统
CN107256134A (zh) * 2017-04-25 2017-10-17 百富计算机技术(深圳)有限公司 将pos终端虚拟为计算机打印机的方法和装置、pos终端

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WANG; CHUNHAI: "Non-official translation: Use Host Printer in VM7 Virtual Machine", 1 September 2010 (2010-09-01), pages 1 - 8, XP009524940, Retrieved from the Internet <URL:https://blog.51cto.com/wangchunhai/386010> *

Also Published As

Publication number Publication date
CN112035074A (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
WO2020244379A1 (zh) 一种打印实现方法、装置及系统、存储介质
WO2018120986A1 (zh) 转发报文的方法和物理主机
US8937730B2 (en) System, image forming apparatus, server, and control method thereof
US8977828B2 (en) Data recovery using conversion of backup to virtual disk
US10120705B2 (en) Method for implementing GPU virtualization and related apparatus, and system
US7996484B2 (en) Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines&#39; memory
AU2007248886B2 (en) Converting machines to virtual machines
US9389896B1 (en) Sharing webcam between guest and host OS
US10997003B2 (en) Electronic apparatus, method for adding function, and non-transitory recording medium
US8813071B2 (en) Storage reclamation systems and methods
US9658786B2 (en) Setting optimal space allocation policy for creating dependent snapshots to enhance application write performance and reduce resource usage
WO2022143714A1 (zh) 服务器系统、虚拟机创建方法及装置
WO2023093418A1 (zh) 数据迁移方法、装置及电子设备
CN111711801A (zh) 视频数据传输方法、装置、服务器和计算机可读存储介质
US10846033B2 (en) Print server, control method, and storage medium
US8838913B1 (en) System and method for locating a memory page in a guest virtual machine
US9691010B2 (en) Information processing apparatus, distributed printing system, and method of controlling printing
US20230342086A1 (en) Data processing apparatus and method, and related device
WO2023216621A1 (zh) 云桌面的图像处理方法、装置、服务器和存储介质
US20190187937A1 (en) Printing computing device for operating a multi-function printing device
IL310713A (en) A secure visual and computational boundary for a subset of computer resources
US9697064B2 (en) System, system control method, and storage medium
US20160210085A1 (en) Printing apparatus and control method
US9870180B2 (en) Print interface technology agnostic data loss prevention through print operations
US10599588B1 (en) Interconnection of peripheral devices on different electronic devices

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20819098

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20819098

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 20819098

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 17.05.2022)

122 Ep: pct application non-entry in european phase

Ref document number: 20819098

Country of ref document: EP

Kind code of ref document: A1