一种基于ARM架构的云打印方法与流程

文档序号:37932233发布日期:2024-05-11 00:11阅读:7来源:国知局
本发明涉及虚拟化,特别涉及一种基于arm架构的云打印方法。
背景技术
::1、随着移动互联网的发展,基于arm架构的平板电脑和笔记本电脑因其功耗低、mobility高的优点而得到广泛应用。微软也推出了面向arm处理器的windows操作系统,以便用户可以在这些设备上获得桌面操作系统的高效办公体验。2、但是,由于arm架构与x86架构之间存在差异,目前大多数面向x86架构的windows应用程序和驱动在arm上的兼容性较差。尤其是打印机驱动方面,绝大多数打印机厂商尚未推出面向arm架构windows系统的打印机驱动。导致消费者购买的打印机无法在arm系统上使用,带来了很大的不便。3、在相关技术中,比如中国专利文献cn116048431a中提供了一种云打印方法,系统,该方法包括:当在客户端的应用程序中点击文件执行打印时,向云服务器发送打印请求;所述云服务器依据所述打印请求生成打印作业和所述打印作业的url;启动打印微服务,向mqtt微服务发布打印任务;打印机连接到所述云服务器后,向所述云服务器发起打印订阅需求;所述mqtt微服务向所述打印机发送打印任务,并带上所述打印作业的url;所述打印机根据所述打印作业的url,向所述云服务器下载所述打印作业,并进行打印。但是本技术中,应用程序将打印任务发送到云服务器,云服务器生成打印任务的url,并通过mqtt发送给订阅的打印机。打印机利用这个url从云服务器下载打印任务(这里应该已经被转换为pdl)后进行打印。所以本技术仍然需要在打印机端安装针对该型号打印机的打印机驱动,才能完成从打印任务到pdl的转换,以及解析pdl来控制打印的过程。没有驱动的话,打印机将无法完成打印任务的解析和打印。技术实现思路1、1.要解决的技术问题2、针对现有技术中存在的基于arm架构的windows电脑必须安装驱动才能进行打印的问题,本发明提供了一种基于arm架构的云打印方法,通过在云服务器端安装虚拟打印机并进行打印任务的转换等技术,实现了arm架构windows电脑的无驱动打印。3、2.技术方案4、本发明的目的通过以下技术方案实现。5、本说明书实施例的一个方面提供一种基于arm架构的云打印方法,包括:通过usb枚举器监听usb插拔事件,获取usb打印机信息,根据usb打印机信息匹配云服务器已安装的虚拟打印机;此方案利用usb枚举器监听usb插拔事件,来检测windows客户端是否接入了usb打印机。当检测到新插入的usb打印机时,usb枚举器会获取该打印机的相关信息,包括vid、pid、名称、制造商等。这些打印机信息会被发送到云服务器。云服务器中已经安装有各种品牌和型号的虚拟打印机。云服务器会根据接收到的usb打印机信息,匹配自己已有的虚拟打印机驱动,选择一个相应的虚拟打印机。此后windows客户端生成的打印任务就会被重定向到云服务器中对应的虚拟打印机进行处理。云服务器中的虚拟打印机负责将打印任务转换为打印机可以理解的页面描述语言数据,并发送回windows客户端。windows客户端最终通过usb连接将打印数据传输到物理打印机进行实际打印。通过这种方式,即使windows系统没有安装打印机驱动,也可以通过云端的虚拟打印机完成打印任务,实现无驱动打印。这样可以很好地解决arm架构windows无法安装打印机驱动的问题,实现usb打印机的即插即用。6、通过wsdiscovery和mdns协议,获取网络打印机信息,根据网络打印机信息匹配云服务器已安装的虚拟打印机;本技术利用wsdiscovery和mdns等网络服务发现协议,来发现局域网内的网络打印机。通过这些协议可以获取网络打印机的ip地址、名称、制造商信息等,不需要手动配置。将获取到的网络打印机信息发送到云服务器,与云服务器中已安装的各种虚拟打印机信息进行匹配。匹配到对应的虚拟打印机后,将windows客户端的网络打印工作流重定向到该虚拟打印机。云服务器上的虚拟打印机接收打印任务,进行文档转换和打印数据生成。最终通过网络将打印数据发送到对应的物理网络打印机进行实际打印。通过这种方式,windows客户端可以自动发现和使用局域网内的网络打印机,而无需安装任何打印机驱动。完全解决了arm架构windows无法安装打印机驱动的问题,实现网络打印机的即插即用。这样,在保持windows客户端的打印工作流不变的情况下,通过云服务器端的技术实现了对网络打印机的无驱动使用。7、接收打印任务,解析打印任务中的打印设置;根据解析出的打印设置,通过云服务器转换接收的打印任务;云服务器上的虚拟打印机接收来自windows客户端的打印任务。虚拟打印机会解析打印任务中的打印设置,例如页面大小、打印方向、颜色模式、份数等参数。这些打印设置决定了打印输出的样式和方式。不同的打印机对打印设置的支持也不一样。为适应实际物理打印机的能力,虚拟打印机需要根据解析出的打印设置进行转换。例如将任务转换为打印机支持的页面尺寸;或者将彩色打印任务转换为黑白打印等。这样,实际打印机不支持特定的打印设置,通过云端虚拟打印机的转换也可以进行打印。转换后的打印任务包含了实际物理打印机可以直接解析和打印的页面描述语言数据。最后将转换后的打印数据传递给物理打印机,实现正确的打印输出。本技术实现了打印设置的适配转换,扩大了arm系统打印的适用范围,而不受实际打印机设置的限制。8、将转换后的打印任务发送到云服务器匹配到的虚拟打印机对应的usb打印机或网络打印机。云服务器端的虚拟打印机完成打印任务的转换后,需要将转换后的打印数据传输到实际的物理打印机去打印。此前云服务器已经根据windows客户端发现的打印机信息,匹配到对应的虚拟打印机。比如如果是通过usb发现的打印机,就匹配到一个针对该型号打印机的虚拟打印机。转换后的打印数据将发送到这个匹配的虚拟打印机所对应的物理打印机。对于usb连接的打印机,打印数据可以通过windows客户端与打印机的usb连接进行传输。对于网络打印机,打印数据将直接通过网络发送到打印机的ip地址。最终实际的物理打印机获取到打印数据并进行打印。该技术实现了云服务器与客户端实际打印机之间转换后打印任务的传输,完整地连接起云打印的工作流程,以完成无驱动打印。9、进一步地,获取usb打印机信息包括如下步骤:利用setup di get class devs函数枚举监听到的usb打印机;当usb枚举器检测到新的usb打印机接入时,需要进一步获取该打印机的设备信息。在windows系统中,可以调用setup api库中的setup di get classdevs函数来枚举当前系统中的打印设备。该函数会填充一个设备信息集(device infoset),包含所有已连接打印机的设备接口信息。然后遍历这个设备信息集,使用setup dienum device inter faces函数可以获取每个打印机的详细信息。包括打印机的名称、描述、制造商信息、驱动列表等。这些信息可以唯一识别一个usb打印机。将获取到的usb打印机信息发送到云服务器,用于匹配虚拟打印机。通过调用windows本身提供的设备枚举api,可以轻松获取usb打印机的标识信息,自动完成发现和识别。避免人工配置打印机信息,实现usb打印机的真正即插即用。10、遍历枚举结果,对每个usb打印机,分别利用device io control函数,输入ioctl_usb_get_descriptor_from_node_connection控制码,获取usb打印机的vid、pid和序列号信息;setup di get class devs函数枚举得到的打印机设备中,包含了每个usb打印机的设备节点信息(device node)。对枚举结果中的每个打印机,可以通过调用device iocontrol函数,向该设备节点发送控制指令。具体来说,输入控制码ioctl_usb_get_descriptor_from_node_connection。该控制码可以获取usb设备的描述符信息,包括厂商id(vid)、产品id(pid)以及序列号等。vid和pid唯一标识一个usb设备,序列号区分同模型的不同产品。获取这些usb描述符信息后,就可以非常准确地标识出当前接入的usb打印机的设备信息。并将这些vid、pid、序列号信息发送到云服务器,用于精确匹配printing机型号。通过调用windows内核级api获取usb描述符,实现对usb打印机详细信息的获取,有助于提高匹配虚拟打印机的精确度。使得本方案可以适用于各种不同厂家和型号的usb打印机。11、进一步地,获取usb打印机信息还包括如下步骤:利用device io control函数,输入ioctl_usbprint_get_1284_id控制码,获取usb打印机的名称和制造商信息。对于usb打印机,还可以通过ioctl_usbprint_get_1284_id控制码获取打印机的额外信息。1284_id是usb打印机用来实现即插即用的相关标识信息。调用device io control传入该控制码,可以获取打印机的1284deviceid。1284deviceid中包含了usb打印机的制造商名称字符串,以及打印机产品名称字符串。通过解析这些字符串信息,可以直接获取当前usb打印机的品牌名称和型号名称。这更进一步辅助了对打印机的标识,使得匹配到云服务器端正确的虚拟打印机变得更为准确。不需要人工记录打印机的名称信息,可以直接从硬件接口获取。获取这些打印机名称信息后,也要传输到云服务器,以便完成品牌和型号信息的精确匹配。本技术充分利用usb打印机接口提供的标识信息,自动获取打印机关键信息,实现真正的即插即用体验。12、进一步地,网络打印机信息包括:网络打印机ip地址、名称、制造商信息和信号信息。对于网络打印机,主要的标识信息包括ip地址、打印机名称、制造商、以及状态信号。利用wsdiscovery、mdns等协议可以获取打印机的ip地址和名称。利用snmp协议可以获取打印机的制造商信息,在printer mib数据库中的prt general printer info对象中可以获取。还可以通过snmp获取打印机的状态信号,如打印机状态、墨粉信息等,在printer mib中的各对象中可获取。将获取到的网络打印机ip地址、名称、制造商、状态信号等信息发送到云服务器。云服务器根据这些信息中的关键标识内容,匹配到对应品牌和型号的虚拟打印机。如果获取到打印机已开机并准备就绪的状态信号,则说明打印机可用,可以立即投入使用。通过利用标准网络打印机管理协议获取打印机在网中的标识和状态信息,实现对网络打印机的自动发现和识别,无需人工干预。使得基于arm架构的windows也可以无驱动自动使用网络打印服务。13、进一步地,通过云服务器转换接收的打印任务包括转换文档格式和生成打印数据。虚拟打印机接收windows客户端发送来的打印任务。打印任务包含了文档的原始文件数据,需要进行转换。第一步是文档格式转换,比如将office文档转换为pdf文档。这样可以消除不同软件和版本对文档渲染的差异,输出标准化的打印文件。第二步是生成打印机可以直接打印的页面描述语言(pdl)数据。根据之前解析的打印设置,以及匹配的目标打印机信息,生成该打印机对应的pdl。常见的pdl包括post script,pcl,xps等。生成的pdl数据包含字体渲染、图像处理、页面排版等直接printable的指令。转换后的打印任务中已经包含可打印的pdl数据,可以直接发送给物理打印机使用。云服务器承担转换计算工作,跳过windows客户端软硬件兼容性问题,实现了arm系统的无驱动打印。14、进一步地,转换文档格式为将打印任务中的pdf文档转换为打印机识别的页面描述语言。云打印服务器接收到的打印任务中,包含了pdf格式的文档数据。pdf文档包含了精确的字体、图形、页面布局等信息。但是不同型号的打印机对pdf解释和打印支持并不统一。所以云服务器需要将pdf文档进一步转换为打印机能够理解的页面描述语言(pdl)。常见的pdl有post script,pcl,xps等。云服务器根据之前匹配到的物理打印机信息,选择生成该打印机对应pdl数据。例如,对于惠普激光打印机,生成pcl数据;对于epson墨打,生成postscript数据。将pdf文档中的文本、图形、页面布局等翻译到对应的pdl语言中。最后生成只含有打印机指令和打印数据的pdl文件。通过pdf到pdl的转换,打印机无需理解pdf格式,就可以直接打印。本技术实现了文档格式的标准化转换,屏蔽了不同打印机的文档格式兼容性问题。15、进一步地,生成打印数据为将页码描述语言转换为打印机识别的比特流打印数据。云打印服务器上生成的是页面描述语言(pdl)数据。不同打印机对pdl的支持和解释可能还有差异。为进一步屏蔽打印机差异,需要将pdl数据转换为打印机可识别的比特流打印数据。即将pdl中的文本、图形、布局指令翻译成打印机的比特控制指令。例如pcl转换为hppjl数据;post script转换为eps数据。打印机的控制器只需要按比特流顺序执行打印部件的机械控制。比特流中会包含精确的步进电机控制、打印头噴墨控制等二进制指令。最后形成打印机可以直接解析执行的比特流打印数据。通过完整地转换至设备可识别的比特流打印数据,进一步屏蔽了打印机解释语言的差异。实现了任意打印机都可以可靠打印的兼容性,不受打印机设备限制。16、进一步地,虚拟打印机安装在运行windows操作系统的云服务器中。本方案的核心是云服务器端的虚拟打印机来实现文档转换和打印数据生成。虚拟打印机是模拟实际打印设备的软件程序。为了正确模拟出不同打印机的功能,虚拟打印机需要安装在运行windows操作系统的云服务器中。windows环境可以提供完整的打印机驱动模型支撑虚拟打印机运行。在云服务器上安装不同厂商不同型号打印机的驱动,注册到windows打印子系统。对每种打印机都生成一个对应的虚拟打印机实例。然后虚拟打印机可以像真实打印机一样接收和处理打印任务。并可以通过驱动模型直接生成目标打印机对应的页面描述语言数据。最终在windows云服务器上实现对各种品牌打印机的虚拟化和模拟。为基于arm的windows系统提供必要的打印支持,而无需自行安装驱动。17、进一步地,云服务器安装虚拟打印机包括如下步骤:根据usb打印机信息或网络打印机信息,匹配云服务器中已有的打印机驱动;根据匹配的打印机驱动,在云服务中安装对应的虚拟打印机。windows客户端发现usb或网络打印机后,会将打印机信息发送到云服务器。云服务器接收到打印机信息,根据打印机的品牌、型号等信息匹配已安装的打印机驱动。云服务器上已经预先安装了各主流打印机品牌的打印机驱动。比如根据打印机的vid/pid等信息,匹配到某款hp激光打印机的驱动。匹配到打印机驱动后,云服务器会在系统中安装一个该驱动的虚拟打印机实例。在windows打印管理界面中注册这个虚拟打印机,并分配一个网络端口。这个虚拟打印机就具有和真实打印机完全一致的软件功能和打印接口。当用户打印时,任务会提交到这个虚拟打印机进行处理。根据不同物理打印机动态安装对应的虚拟打印机,实现打印机无驱动使用。云服务器承担虚拟打印机管理和文档处理工作,简化了windows客户端。18、本说明书实施例的另一个方面还提供一种基于arm架构的云打印系统,用于执行本技术的一种基于arm架构的云打印方法,包括:windows客户端,检测打印机并获取打印机信息,并将打印任务发送到虚拟打印机;云服务器,根据打印机信息安装虚拟打印机,并对打印任务进行文档转换和打印数据生成;usb枚举器,监听usb插拔事件并获取usb打印机信息;网络打印机模块,通过wsdiscovery和mdns协议获取网络打印机信息;虚拟打印机模块,在云服务器中根据打印机信息安装虚拟打印机;usb打印机,连接到windows客户端,进行打印;网络打印机,连接到局域网,进行打印;windows客户端和云服务器通过网络通信连接。windows客户端部署在基于arm架构的计算机上,用于检测打印机并获取打印机信息。支持检测usb打印机和网络打印机。通过api获取打印机vid、pid、ip等信息。打印任务由windows应用生成,提交给客户端的打印服务。打印服务将任务发送到云服务器。云服务器上设有虚拟打印机模块,可以根据打印机信息安装对应品牌型号的虚拟打印机。虚拟打印机接收打印任务并进行文档格式转换、打印数据生成。生成的打印数据经过windows客户端发送给真实的物理打印机进行打印。windows客户端与云服务器之间通过网络通信连接,传输打印机信息和打印任务数据包。该系统分离了打印处理到云服务器,避免了windows客户端打印环境的限制。windows客户端只需支持简单的打印任务提交,不再需要本地安装打印机驱动。云端虚拟打印机使得arm系统可以采用打印即服务的形式来实现无驱动打印。通过服务器端的打印虚拟化技术,使arm客户机免除打印驱动环境,实现跨平台零配置打印。19、3.有益效果20、相比于现有技术,本发明的优点在于:21、(1)本技术可以实现在arm架构的windows操作系统上,通过云打印技术支持各类打印机的使用,解决了arm架构windows系统由于缺少printing device inter face(pdi)端口等限制导致打印机驱动不可用的问题,实现了arm架构windows电脑对不同厂商及型号打印机的无驱动使用;22、(2)通过在云服务器上安装虚拟打印机的方式实现对各打印机的支持,完全免除了arm架构windows电脑本身需要安装打印机驱动的限制,即使是尚未获得打印机厂商驱动支持的打印机,也可以通过虚拟打印机实现无驱动使用,大大增强了arm架构windows电脑的通用性和适用范围;23、(3)通过云计算技术为arm架构windows电脑提供打印支持,既解决了驱动不可用的问题,又利用了云计算的优势,如集中管理、升级维护等,使arm架构windows电脑具有了类似传统windows电脑的打印功能,提高了arm架构windows电脑的实用性。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1