首页 / 专利库 / 软件 / 后台任务 / 存储应用程序的存储介质和提供用户界面的方法

存储应用程序的存储介质和提供用户界面的方法

阅读:678发布:2020-05-14

专利汇可以提供存储应用程序的存储介质和提供用户界面的方法专利检索,专利查询,专利分析的服务。并且本 发明 提供存储应用程序的存储介质和提供 用户界面 的方法。当由 操作系统 (OS)启动 后台任务 的部件时,所述后台任务 请求 OS启动前台任务。所述前台任务显示表示处理进行中的用户界面(UI)。基于根据所获取的打印票据确定不显示用于接收用户操作的UI,所述前台任务向OS通知表示处理的完成的信息。,下面是存储应用程序的存储介质和提供用户界面的方法专利的具体信息内容。

1.一种存储程序的计算机可读存储介质,所述程序具有用于在接收到打印指令时提供图形用户界面的指令,所述程序至少包括用于执行后台任务的部件和用于执行前台任务的部件,在接收到打印指令而执行所述程序时,所述程序使计算机进行:
使所述计算机的操作系统启动后台任务部件,所述后台任务部件请求所述操作系统启动前台任务部件,并且
其中,当基于所述请求启动前台任务时,所述前台任务使计算机进行:
获取在接收到打印指令时生成的打印相关数据;
显示表示处理进行中的图形用户界面作为第一显示控制;
基于在获取步骤中获取的数据,确定是否显示用于接收用户操作的图形用户界面;以及
基于确定不显示用于接收用户操作的图形用户界面,向所述操作系统通知表示处理的完成的信息。
2.根据权利要求1所述的存储程序的计算机可读存储介质,
其中,基于确定来显示用于接收用户操作的图形用户界面,所述前台任务还使所述计算机进行用于显示用于接收用户操作的图形用户界面的第二显示控制,并且在经由用于接收用户操作的图形用户界面接收到用户操作时,向所述操作系统通知表示处理的完成的信息。
3.根据权利要求1所述的存储程序的计算机可读存储介质,
其中,所述后台任务还使所述计算机进行:
测量所述后台任务的执行时间;
获取所述打印相关数据作为第二获取;以及
基于在所述第二获取中获取的数据,确定是否请求所述操作系统启动所述前台任务,作为第二确定,并且
其中,当确定要启动所述前台任务时或者当基于所述执行时间确定经过了预定的时间时,请求所述操作系统启动所述前台任务。
4.根据权利要求1所述的存储程序的计算机可读存储介质,其中,所述后台任务还使所述计算机进行:
获取所述打印相关数据作为第二获取;
基于在所述第二获取中获取的数据,确定是否启动所述前台任务,作为第二确定,接收由所述操作系统发出的异常;以及
当所发出的异常是表示超时的异常时,对异常进行处理以请求所述操作系统启动所述前台任务。
5.根据权利要求1所述的存储程序的计算机可读存储介质,其中,所述打印相关数据是表示打印设置的打印票据。
6.根据权利要求1所述的存储程序的计算机可读存储介质,其中,在通知步骤中向所述操作系统通知信息之后,由打印机驱动程序和操作系统生成打印数据。
7.一种存储应用程序的计算机可读存储介质,所述应用程序具有用于在接收到打印指令时提供图形用户界面的指令,所述应用程序至少包括用于执行后台任务的部件和用于执行前台任务的部件,
其中,在由计算机的操作系统启动后台任务部件的情况下,后台任务使所述计算机进行请求所述操作系统启动前台任务部件,并且
其中,当基于所述请求启动前台任务时,所述前台任务进行与图形用户界面显示相关的处理。
8.根据权利要求1所述的存储程序的计算机可读存储介质,
其中,所述程序是当与程序相关的V4打印机驱动程序被安装时要安装在所述计算机中的通用Windows平台应用程序。
9.根据权利要求2所述的存储程序的计算机可读存储介质,
其中,所述打印相关数据是表示打印设置的打印票据,
其中,在所述确定步骤中,因为在获取步骤中获取的打印票据中设置了认证打印,所以确定要显示用于接收用户操作的图形用户界面,并且
其中,在所述第二显示控制中,显示用于接收要在所述认证打印中使用的认证信息的输入的图形用户界面。
10.一种存储计算机中的应用程序的计算机可读存储介质,其中,当所述计算机中的操作系统检测到用户指示了打印时,由所述操作系统启动所述计算机中的所述应用程序,其中,所述应用程序包括:
第一代码,用于基于由所述操作系统启动所述应用程序,在显示单元上显示第一画面;
第二代码,用于使所述操作系统对描述需要针对所述打印进行的处理的信息进行分析;以及
第三代码,用于当通过所述分析确定要在所述显示单元上显示第二画面时,使所述显示单元隐藏所述第一画面并且显示所述第二画面,并且当通过所述分析确定不在所述显示单元上显示所述第二画面时,使所述显示单元隐藏所述第一画面。
11.一种用于使处理器执行用于实现第一处理和第二处理的指令以提供与设备驱动程序相关的用户界面的方法,所述方法包括:
所述第一处理,当由信息处理装置的操作系统启动所述第一处理时,请求所述操作系统启动所述第二处理;以及
所述第二处理,当基于所述请求启动所述第二处理时进行以下步骤:
1)通过用户操作从所述第一处理获取在接收到打印指令时生成的打印相关数据;
2)显示表示处理进行中的用户界面;
3)基于在获取步骤中获取的数据,确定是否显示用于接收用户操作的用户界面;以及
4)基于确定不显示用于接收用户操作的用户界面,终止所显示的用户界面的显示并且向所述操作系统通知表示处理的完成的信息。

说明书全文

存储应用程序的存储介质和提供用户界面的方法

技术领域

[0001] 本公开总体涉及存储用于提供打印相关的图形用户界面(GUI)的应用程序的存储介质和提供用户界面的方法。

背景技术

[0002] 一般已知的构造通过使用打印机驱动程序将打印数据发送到打印装置。作为基本软件操作系统(OS)被安装在主计算机中。当从OS调用打印机驱动程序时,基于由OS定义的规格而构造的打印机驱动程序进行操作。通过提供符合OS的规格的打印机驱动程序,打印装置供应商能够通过使用OS提供指示打印机进行打印的手段。当使用Windows 8或更早版本的Windows(注册商标名称)作为操作系统时,通过被称为V3打印机驱动程序的架构来构造打印机驱动程序。V3打印机驱动程序能够提供当生成来自用户的打印请求时显示GUI并且提示用户进行特定操作的功能。例如,当生成打印请求时,调用作为V3打印机驱动程序的部件的配置模的预定事件。以这样的方式,配置模块能够在其事件处理期间显示用户界面。例如,日本特开2008-9901号公报讨论了一种打印控制方法,该打印控制方法用于在用户正在设置不可使用的项目的情况下向设备询问项目不可使用的原因,并且显示项目不可使用的原因作为消息。
[0003] 近年来,已经发布了一种用于Windows的被称为V4打印机驱动程序的新架构。由于在V4打印机驱动程序中强调安全性,因此与V3打印机驱动程序相比,V4打印机驱动程序提供较低的打印机驱动程序自身的可自定义性。例如,由OS提供上述的配置模块,并且供应商能够仅提供用于对配置模块的操作进行自定义的设置文件和脚本文件。为了补偿降低的可自定义性,打印装置供应商能够提供用于辅助打印机驱动程序的功能的专用应用。该应用被称为通用Windows平台设备应用(Universal Windows Platform Device App,UWP设备应用)。UWP设备应用能够配设有用于在发出预定的用户操作时进行打印相关处理的被称为工作流(Workflow,WF)的功能。
[0004] 在WF功能中,由OS启动被称为后台任务的没有用户界面(UI)的线程。后台任务获取经受打印设置或打印的文档,并且进行用于对打印进行自定义的处理。如果后台任务确定需要用户输入来进行用于对打印进行自定义的处理,则后台任务进行处理以显示UI。
[0005] 然而,存在对后台任务的执行的限制。如果后台任务在不显示UI的状态下未在由OS预定的时间段内完成处理,则处理被OS中止。提供对后台任务的执行的这种限制,以防止在没有用户认可的情况下持续执行消耗诸如计算机电池和网络的大量资源的繁重处理。因此,WF功能的后台任务需要在预定的时间段内确定是否启动UI。
[0006] 通过利用WF功能,OS可以在发出打印开始指令时指示后台任务进行处理。例如,在发出打印开始指令时,OS可以指示后台任务对经受打印设置或打印的文档进行分析、根据需要调用用于进行用户操作的UI以及提示用户进行确认处理。
[0007] 然而,在经受打印设置或打印的文档的大小大的情况下,或者在UWP设备应用在其上进行操作的计算机的规格低的情况下,WF功能通过后台任务的处理可能花费时间。另外,例如,在计算机处于高负荷状态的情况下,WF功能通过后台任务的处理可能花费时间。
[0008] 例如,当后台任务正在进行用于解释打印数据并确定是否启动UI的处理时,可能经过由OS预定的时间段。在这种情况下,出现在OS的任务控制下强制中止后台任务的执行并且打印作业被取消的情况。发明内容
[0009] 本说明书公开了一种用于防止在由操作系统(OS)预定的时间段内无法完成通过后台任务的处理的情况下打印处理被中止的机制。本说明书还公开了一种用于基于确定在预定的时间段内无法完成确定处理而启动用于显示用户界面(UI)的前台任务以及确定在前台任务中是否需要用户输入的构造。
[0010] 存储本说明书中公开的程序的存储介质是存储程序的计算机可读存储介质,所述程序具有用于在接收到打印指令时提供图形用户界面(GUI)的指令,所述程序至少包括用于执行后台任务的部件和用于执行前台任务的部件,所述程序在被执行时使计算机进行:使所述计算机的操作系统(OS)启动后台任务部件,所述后台任务部件请求所述OS启动前台任务部件。当基于所述请求启动前台任务时,所述前台任务使计算机进行:获取在接收到打印指令时生成的打印票据;显示表示处理进行中的GUI作为第一显示控制;基于通过获取步骤而获取的所述打印票据确定是否显示用于接收用户操作的GUI;以及基于确定不显示用于接收用户操作的GUI向OS通知表示处理的完成的信息。
[0011] 通过以下参照附图对示例性实施例的描述,本公开的其他特征将变得清楚。

附图说明

[0012] 图1例示了打印系统的示例。
[0013] 图2例示了客户端计算机的硬件构造的示例。
[0014] 图3例示了客户端计算机的软件构造的示例。
[0015] 图4A和图4B例示了元数据的示例。
[0016] 图5示意性地例示了驱动程序、扩展应用和打印机之间的关系。
[0017] 图6是例示客户端计算机的控制的示例的流程图
[0018] 图7是例示客户端计算机的控制的示例的流程图。
[0019] 图8A和图8B例示了在客户端计算机上显示的画面的示例。
[0020] 图9A和图9B例示了在客户端计算机上显示的画面的示例。
[0021] 图10例示了向打印数据提供的打印设置。
[0022] 图11例示了打印机的能信息。
[0023] 图12是例示客户端计算机的控制的示例的流程图。
[0024] 图13是例示客户端计算机的控制的示例的流程图。

具体实施方式

[0025] 下面将参照附图描述本公开的示例性实施例。以下示例性实施例不限制如由所附权利要求限定的本公开的范围。并非示例性实施例中描述的特征的所有组合都是对本公开的解决方案所必不可少的。
[0026] 下面将描述第一示例性实施例。图1中所示的打印系统包括作为信息处理装置的示例的客户端计算机101、用于向客户端计算机101分发数据的服务器104、以及用于接收按页面描述语言(PDL)格式的打印数据并进行打印的打印机102。各个装置能够经由包括广域网(WAN)的网络103彼此通信。
[0027] 例如,打印机102可以是仅具有打印功能的单功能打印机或具有打印功能、扫描功能和复印功能的多功能打印机。客户端计算机101的数量不限于针对网络103为一个。多个客户端计算机101可以连接到网络103。客户端计算机101能够将打印数据发送到打印机102。
[0028] 图2是例示图1中所示的客户端计算机101的硬件构造的框图。客户端计算机101包括中央处理单元(CPU)201、随机存取存储器(RAM)202、外部存储器209和只读存储器(ROM)203。
[0029] 包括CPU 201的控制单元控制整个客户端计算机101的操作。CPU 201将存储在ROM 203或外部存储器209中的程序加载到RAM 202中并且执行该程序以进行各种控制。更具体地,CPU 201控制用户界面(UI)画面,生成打印数据,并且发送打印数据。ROM 203存储可由CPU 201执行的控制程序和引导程序。作为CPU 201的主存储器的RAM 202被用作工作区域或用于加载各种程序的暂时存储区域。经由外部存储器接口(I/F)208连接到控制单元的外部存储器209存储操作系统(OS)210、应用212、应用执行环境213和打印机驱动程序211。
[0030] 虽然,在本示例性实施例中假设诸如硬盘器(HDD)的辅助存储单元作为外部存储器209,但是,也可应用诸如固态驱动器(SSD)的非易失性存储器来代替HDD。
[0031] 操作输入设备I/F 204是用于控制诸如键盘、指点设备(鼠标)和触摸输入设备的操作输入设备205的接口。操作输入设备205用作用于接收来自用户的操作的接收单元。显示器I/F 206控制显示器207上的画面显示。显示器207用作用于向用户显示信息的显示单元。
[0032] 控制单元经由网络I/F 214连接到网络103。网络I/F 214将打印数据发送到网络103上的打印机,并且从网络103上的服务器接收应用和打印机驱动程序。与网络103上的外部终端的数据通信例如是符合IEEE802.11系列的无线通信、诸如长期演进(Long Term Evolution,LTE)和第5代(5th Generation,5G)的移动通信、以及经由LAN线缆的有线通信。
[0033] 下面将参照图3描述客户端计算机101的软件构造的示例。客户端计算机101中的软件由OS 210、应用执行环境213和应用212这三个不同的层组成。
[0034] 下面将描述OS 210的各个部件。OS 210包括打印系统337、打印机驱动程序211、外部配置文件组352和线程池355。
[0035] 下面将描述外部配置文件组352。包括在外部配置文件组352中的元数据320是具有打印扩展应用300和打印队列308二者的标识符的定义信息,并且具有将这些标识符相关联的作用。下面将参照图4A和图4B描述元数据320。
[0036] 注册表353是描述OS 210的设置组的区域。表示使由打印时启动应用启动器(launcher)350对后台任务的启动有效还是无效的设置被登记在注册表353中。能够经由OS 210的设置画面来改变登记在注册表353中的设置。
[0037] 下面将描述打印系统337的部件。打印队列308是用于在通过使用网络103中存在的打印机进行打印时暂时存储打印作业的区域。根据本示例性实施例,生成可应用于打印机102的打印队列308。
[0038] 假脱机程序(spooler)325是用于暂时存储和管理作为从应用212中的任一应用打印的打印目标数据的、可扩展标记语言(Extensible Markup Language,XML)纸张规格(XPS)文件的模块。在存储在假脱机程序325中的XPS文件经由筛选器管线管理器335被转换成PDL文件之后,XPS文件经由假脱机程序325被发送到打印机102。
[0039] 筛选器管线管理器335是用于加载一个或更多个筛选器330并将XPS文件转换成PDL文件的模块。筛选器管线管理器335被构造为由OS 210提供的打印架构(也被称为打印系统)的一部分。OS 210基于筛选器配置336的定义读取作为打印机驱动程序211的部件之一的一个或更多个筛选器330,并且通过使用一个或更多个筛选器330生成PDL文件。可使用的PDL的示例包括打印机控制语言(Printer Control Language,PCL)和激光束打印机图像处理系统(Laser beam printer Image Processing System,LIPS)。
[0040] 配置模块331是用于生成和改变PrintTicket(也被称为打印票据)的模块。模块331具有用于防止进行不可组合的设置的禁止功能。配置模块对作为打印机的能力信息的PrintCapabilities文档进行管理。
[0041] 打印扩展应用300的详细打印设置UI单元304、打印时启动后台任务单元305和打印时启动UI单元303能够调用由配置模块331提供的应用程序接口(API)。通过调用API,各个单元能够获取按可扩展标记语言(XML)格式的PrintTicket以及PrintCapabilities文档。
[0042] 作为打印机驱动程序211,提供V4打印机驱动程序的打印机供应商向OS 211提供描述有禁止规则和设备功能的设备功能文本文件332和脚本文件333。基于文件332和333对配置模块331的操作进行自定义。
[0043] 打印时启动应用启动器350是用于控制由打印时启动后台任务单元305提供的后台任务的执行的模块。当OS 210检测到用户输入了打印开始指令并且OS 210进行打印时,打印时启动应用启动器350启动打印时启动后台任务单元305。当在注册表353中存储有用于使后台任务的启动无效的设置时,OS 210防止后台任务的执行。
[0044] 打印机驱动程序211包括筛选器330、筛选器配置336、脚本文件333和设备功能文本文件332。筛选器330是由筛选器管线管理器335调用的筛选器,具有将输入的XPS文件转换成PDL文件并输出PDL文件的功能。筛选器配置336是由筛选器管线管理器335参照的定义文件,描述调用一个或更多个筛选器330的顺序。由配置模块331调用的脚本文件333和设备功能文本文件332使得能够对配置模块331的操作进行自定义。
[0045] 线程池355是用于存储当执行OS 210中的各种应用212和模块组时要使用的线程的模块。
[0046] 应用执行环境213包括桌面应用执行环境323和触摸应用执行环境301。
[0047] 触摸应用执行环境301是用于执行作为(下面描述的)应用212的一种的在OS 210上进行操作的触摸应用321和打印扩展应用300的执行环境。触摸应用执行环境301是用于执行从服务器104分发的通用Windows平台(UWP)应用的执行环境,控制UWP应用的执行。
[0048] 桌面应用执行环境323是用于执行作为(下面描述的)应用212的一种的桌面应用322的执行环境。桌面应用执行环境323控制“Win32/64应用”和“.NET应用”的执行。
[0049] 应用212包括三个不同的应用:触摸应用321、打印扩展应用300和桌面应用322。触摸应用321在触摸应用执行环境301上进行操作。通过在互联网上公开的应用分发系统来下载触摸应用321,并且将触摸应用321安装在客户端计算机101中。在触摸应用321中,所需的模块组被打包并被签名以限制OS 210中的API调用。
[0050] 打印扩展应用300是一种触摸应用321,与触摸应用321同样在触摸应用执行环境301上进行操作。OS 210经由互联网从应用分发系统获取打印扩展应用300。根据本示例性实施例的打印扩展应用300具有在打印时显示唯一地自定义的UI的、被称为工作流(WF)的功能。
[0051] 打印扩展应用300包括图块(tile)应用单元302、详细打印设置UI单元304、打印时启动后台任务单元305和打印时启动UI单元303。
[0052] 图块应用单元302是在接收到用于启动打印扩展应用300的用户操作时执行的UI单元,提供诸如登记的打印机的状态显示的功能。
[0053] 详细打印设置UI单元304是在接收到由OS 210发出的详细打印设置事件时执行的UI单元。详细打印设置UI单元304基于通过API从配置模块331获取的PrintTicket和PrintCapabilities文档生成并显示打印设置UI。根据用户操作,详细打印设置UI单元304适当地改变PrintTicket的设置并且将设置返回给配置模块331。
[0054] 打印时启动后台任务单元305是与在发出打印事件时要执行的后台任务对应的部件。由打印时启动后台任务单元305提供的任务具有有限的生存时间,并且当预定的时间段已经过去时被OS 210强制终止。
[0055] 打印时启动后台任务单元305能够通过配置模块331的API来获取、读取和写入PrintTicket。当使用WF功能时,预先确定后台任务确定是否启动打印时启动UI单元303,并且在必要时,请求OS 210启动作为前台任务部件的打印时启动UI单元303。打印时启动后台任务单元305能够通过向应用商店334写入改变的值和从应用商店334读取改变的值,来向打印时启动UI单元303传递该值和从打印时启动UI单元303接收该值。当打印时启动后台任务单元305确定不启动打印时启动UI单元303时,打印时启动应用启动器350生成打印数据而不启动打印扩展应用300。
[0056] 另外,由后台任务启动的打印时启动UI单元303能够编辑作为打印目标数据的XPS和PrintTicket设置,并且将这些数据返回给OS 210。
[0057] 当后台任务请求OS 210启动打印时启动UI单元303时,OS 210启动打印时启动UI单元303。打印时启动UI单元303能够获取并改变PrintTicket和PrintCapabilities设置,并且还获取打印目标数据的XPS文件。当改变XPS文件时,需要打印时启动UI单元303通过应用商店334将编辑的XPS文件一次传递到打印时启动后台任务单元305,并且打印时启动后台任务单元305将编辑的XPS文件返回给OS 210。根据本示例性实施例,打印时启动UI单元303显示用于进行关于打印的确认的UI和用于提示用户输入或改变设置的UI。
[0058] 下面将参照图4A和图4B描述打印机与打印扩展应用300之间的关系。
[0059] 图4A例示了表示元数据320中的用于将打印机与打印扩展应用300相关联的可应用的设备信息的描述的示例。在元数据320中描述有表示使用元数据320的打印机的列表的HardwareIDList标签402。项目403表示具有硬件ID“MFP1_abcd”的打印机使用元数据320。同样,项目404表示具有硬件ID“MFP2_ijkl”的打印机使用元数据320。以这种方式,在一条元数据320中能够列举使用元数据320的多个打印机。虽然在根据本示例性实施例的示例情况下,在元数据320中指定了两个不同打印机的硬件ID,但是本示例性实施例不限于此。可以指定一个或更多个打印机。硬件ID是从打印机返回的用于唯一地识别打印机的识别信息。
[0060] 图4B例示了表示打印扩展应用300的DeviceCompanionApplications标签411。项目412表示用于识别打印机供应商的识别信息,并且表示能够为打印机供应商的打印机提供的、名称为“1234abcd.MFPUtility”的打印扩展应用300。
[0061] 当打印机102连接到客户端计算机101时,OS 210基于从打印机102获取的硬件ID向元数据服务器进行询问。元数据服务器搜索登记的元数据,并且返回对可应用的元数据的响应。OS 210基于响应存储元数据320。OS 210还从应用分发服务器获取在存储的元数据320中的DeviceCompanionApplications标签411中描述的打印扩展应用300。然后,OS 210将打印扩展应用300安装在外部存储器209中,并且将应用与打印机102相关联。因此,当经由打印机驱动程序211发生对打印机102的打印请求时,能够启动打印扩展应用300。打印机供应商预先向元数据服务器提供元数据320。当安装V4打印机驱动程序211时,客户端计算机101访问元数据服务器,并且自动安装最适于要安装的驱动程序的打印扩展应用300。
[0062] 图5例示了打印环境的示例。作为打印机的多功能外围设备(MFP)501具有硬件ID“MFP1_abcd”。当将MFP 501连接到客户端计算机101并且安装可应用于MFP 501的打印机驱动程序时,OS 210获取可应用于所连接的打印机的元数据320。基于元数据320,OS 210获取名称为“MFPUtility 506”的打印扩展应用300,并且将打印扩展应用300与MFP 501相关联。存在用于将打印数据发送到单个打印机(例如,MFP 501)的多个不同的打印机驱动程序。更具体地,可以安装多个打印机驱动程序作为可应用于作为一个设备的MFP 501的打印机驱动程序。型号特定打印机驱动程序508是专用于由打印机供应商提供的MFP 501的打印机驱动程序。由打印机供应商提供的共同打印机驱动程序509能够处理打印机供应商的多个不同的打印机102。标准打印机驱动程序510是能够共同地用于由多个供应商提供的打印装置的类驱动程序(class driver),由OS 210提供。标准打印机驱动程序510能够通过利用标准化的打印方法来处理广范围的打印机。
[0063] OS 210自动选择并安装可用的打印机驱动程序当中的具有最高功能的最新打印机驱动程序。打印机驱动程序包括被称为硬件ID和兼容ID的用于识别装置的信息。当打印机连接到客户端计算机101时,OS 210从打印机获取识别(ID)信息,并且搜索和安装具有可应用的ID的打印机驱动程序。
[0064] 通过提供上面参照图4A和图4B描述的元数据320,提供打印机的打印机供应商能够控制要向各个打印机提供哪个打印扩展应用300。例如,打印机供应商能够为多个打印机提供一个共同的打印扩展应用300,或者根据打印机的类型提供不同类型的打印扩展应用300。
[0065] 例如,根据本示例性实施例,将使用MFPUtility 506把MFP 502登记为附加的打印机。根据本示例性实施例,将支持MFPUtility 507作为当在MFP 503上进行打印时要使用的打印扩展应用300。
[0066] 下面将以MFP 501是与打印机102对应的打印机并且MFPUtility 506是与打印机102相关联的打印扩展应用300(UWP设备应用)的示例情况为中心来描述本示例性实施例。
将在型号特定打印机驱动程序508是要用于打印的V4打印机驱动程序的前提下来进行以下描述。
[0067] 根据本示例性实施例的打印机102具有认证打印功能(也被称为安全打印功能)。根据本示例性实施例,当使用诸如PIN打印功能的认证打印功能时,打印机驱动程序向打印机102发送施加有由用户在PrintTicket中设置的认证信息(PIN码、密码等)的打印作业。接收到包括认证信息的打印作业的打印机102被控制为,直到将认证信息输入到打印装置的操作单元为止,才进行打印。
[0068] 在打印机驱动程序211的设备功能文本文件332中描述由认证打印代表的打印机102中包括的功能。当打印扩展应用300接收到由配置模块331基于设备功能文本文件332生成的PrintCapabilities文档时,打印扩展应用300掌握打印机102中包括的功能。用户能够通过由打印机驱动程序508与OS 210协作显示的打印设置画面来输入认证信息。
[0069] 作为利用WF功能的功能,打印扩展应用300具有在输入打印开始指令时提示用户确认和输入认证信息的功能。
[0070] 如上所述,预先确定当启动WF功能时要启动后台任务。然而,对后台任务的执行存在限制。如果后台任务在不显示UI的状态下未在由OS 210预定的时间段内完成处理,则由OS 210中止处理。提供对后台任务的执行的这种限制,以防止在没有用户认可的情况下持续执行消耗诸如计算机电池和网络的大量资源的繁重处理。因此,WF功能的后台任务需要在预定的时间段内确定是否启动UI。
[0071] 然而,在经受打印设置或打印的文档的大小大的情况下,或者在UWP Device App(UWP设备应用)在其上进行操作的计算机的规格低的情况下,WF功能通过后台任务的处理可能花费时间。另外,例如,在计算机处于高负荷状态的情况下,WF功能通过后台任务的处理可能花费时间。例如,当后台任务正在进行用于解释打印数据并确定是否启动UI的处理时,可能经过由OS预定的时间段。在这种情况下,出现在OS 210的任务控制下强制中止后台任务的执行并且打印作业被取消的问题。
[0072] 下面将以鉴于上述问题而设计的机制(即,用于防止在通过后台任务的处理无法在由OS 210预定的时间段内完成的情况下打印处理被中止的机制)为中心来描述本示例性实施例。更具体地,以下描述用于当由OS 210调用作为用于执行后台任务的部件的打印时启动后台任务单元305时,控制用于调用作为恒定的前台任务的打印时启动UI单元303的UI显示的机制。
[0073] 下面将描述PrintCapabilities文档和PrintTicket。图11例示了基于由要用于打印的打印机驱动程序211存储的设备功能文本文件332而生成的PrintCapabilities文档的示例。
[0074] PrintCapabilities文档在一个Feature(特征)中具有多个Option(选项)。Feature表示可设置的功能。Feature中的Option表示选项。图11中所示的信息1101表示用于认证打印的Feature和Option的示例。信息1101定义了能够选择ns0000:SecurePrint和ns0000:None作为JobSecurePrint的Feature的选项。
[0075] 下面将参照图10描述设置认证打印的PrintTicket。PrintCapabilities文档中定义的设置值中的任一个被存储在PrintTicket中作为当前打印设置。
[0076] 信息1001表示设置了认证打印功能。该功能提示用户在打印时输入密码。由于JobSecurePrint的Feature中包括的Option标签是ns0000:SecurePrint,因此信息1001表示认证打印被设置为开(ON)。如果认证打印未被设置为开,则将ns0000:None设置为Option标签。
[0077] 信息1002中的psf:ParameterInit的要素表示文本输入的值。图10例示了经由打印设置画面针对认证打印设置密码“XXXXXX”的示例情况。如果未经由打印设置画面设置密码,则配置模块331生成不包括psf:ParameterInit的要素的PrintTicket。
[0078] 下面将参照图9A和图9B描述使用打印机102的打印。虽然在根据本示例性实施例的示例情况下,从作为UWP应用的触摸应用321进行打印,但是本示例性实施例不限于此。也能够从桌面应用322进行打印。
[0079] 图9A是由触摸应用321在显示器207上显示的示例画面。触摸应用321包括用于显示内容的区域。菜单键900是用于显示菜单的键。图9A例示了显示菜单的示例情况。菜单显示了使得用户能够从菜单中选择打印键901的多个选项。
[0080] 在检测到选择打印键901时,触摸应用321请求OS 210显示打印对话。
[0081] 图9B例示了由OS 210显示的打印对话的示例。打印对话进行由OS 210显示的简化的打印设置。打印对话包括用于打印设置的项目920和用于打印指令的项目930。用户能够通过选择项目920来进行简化的打印设置。
[0082] OS 210从配置模块331获取对与被设置为通常使用的打印机的打印机驱动程序对应的打印队列308而设置的PrintTicket,并且在打印对话上显示该PrintTicket设置。
[0083] 项目921显示当前选择的打印机驱动程序的名称。用户能够通过选择项目921来改变要使用的打印机驱动程序。项目922是打印设置的示例。
[0084] 项目931是用于调用由打印扩展应用300提供的详细打印设置UI单元304的显示项目。项目932是用于基于由触摸应用321提供的内容来开始打印的显示项目。
[0085] 在检测到按下打印对话中显示的项目932时,OS 210生成打印事件。在生成打印事件之后,触摸应用321与OS 210协作地基于打印目标内容(也被称为打印内容)生成XPS文件,然后前进到图6中所示的流程图中的打印处理。
[0086] 下面将参照图6和图7中所示的流程图来描述打印处理中的具体的控制方法。
[0087] 当CPU 201将存储在外部存储器209中的用于实现各个模块、部件和应用的程序读取到RAM 202中然后执行程序时,实现图6和图7中所示的流程图中所示的各个操作(步骤)。在由各个控制模块、部件和应用提供的控制的描述中,由CPU 201实现的各个单元将被描述为主体。通过CPU 201、I/F和连接到I/F的输入/输出设备的协作来实现显示、用户操作的接收、数据发送和接收以及一些其他处理。
[0088] 在生成打印事件时执行图6中所示的流程图。可以由触摸应用321或桌面应用322生成打印事件。
[0089] 在步骤S601中,OS 210将与生成打印事件的应用212协作地生成的XPS文件发送到假脱机程序325。在完成XPS文件发送时,处理前进到步骤S602。
[0090] 在步骤S602中,OS 210进行用于启动WF功能的处理。下面将参照图7详细描述该处理。在完成与用于启动WF功能的处理相关的一系列处理步骤之后,处理前进到步骤S603。
[0091] 在步骤S603中,OS  210的筛选器管线管理器335从假脱机程序325获取PrintTicket和XPS文件。
[0092] 在步骤S604中,基于筛选器配置336的定义,筛选器管线管理器335从外部存储器209读取可应用于要用于打印的打印机驱动程序的筛选器330,以将筛选器330加载到RAM 
202中。
[0093] 在步骤S605中,筛选器管线管理器335将XPS文件输入到加载的筛选器330中,以使筛选器330进行转换处理。可以通过使用多个筛选器来进行转换处理。筛选器管线管理器335将作为转换的结果而获得的PDL文件发送到假脱机程序325。
[0094] 在步骤S606中,假脱机程序325与网络I/F 214协作地将包括转换的PDL文件和PrintTicket的打印作业发送到打印机102。在接收到打印作业时,打印机102基于打印作业进行打印处理。
[0095] 下面将参照图7具体描述在步骤S602中进行的用于启动WF功能的处理。
[0096] 在步骤S701中,OS 210读取注册表353的设置。当在注册表353中未存储用于使后台任务的启动有效的设置时,即,当存储有用于使后台任务的启动无效的设置时(在步骤S702中为“否”),OS 210跳过用于启动WF功能的处理,并且处理前进到步骤S603和后续的步骤。另一方面,当在注册表353中存储有用于使后台任务的启动有效的设置时(在步骤S702中为“是”),处理前进到步骤S703。
[0097] 在步骤S703中,OS 210启动打印时启动应用启动器350。在步骤S704中,打印时启动应用启动器350请求OS 210启动作为打印扩展应用300的部件的打印时启动后台任务单元305。更具体地,打印时启动应用启动器350基于要用于打印的打印机驱动程序识别打印队列。然后,与触摸应用执行环境301协作地,打印时启动应用启动器350进行控制以启动用于执行与所识别的打印队列相关联的UWP设备应用的后台任务的部件。根据本示例性实施例,要启动打印扩展应用300的打印时启动后台任务单元305的部件。
[0098] 在步骤S705中,打印时启动后台任务单元305请求OS 210启动作为前台任务的打印时启动UI单元303的部件。在接收到请求时,OS 210分配由打印扩展应用300提供的打印时启动UI单元303作为线程池355中的线程,以使得打印时启动UI单元303能够在显示器207上显示画面。打印时启动UI单元303获取延迟对象,以继续与用户的通信。
[0099] 在步骤S706中,打印时启动UI单元303在显示器207上显示进度画面。图8A和图8B例示了由打印时启动UI单元303在显示器207上显示的画面的示例。图8A例示了用于显示进度环801的进度画面的示例。打印时启动UI单元303显示旋转进度环以向用户通知处理进行中。打印时启动UI单元303还显示诸如“打印中…”的字符串802以向用户通知处理进行中。
[0100] 返回参照图7中所示的流程图,在步骤S707中,打印时启动UI单元303请求OS 210启动要与UI线程异步执行的分析线程。OS 210在线程池355中分配分析线程。分析线程从配置模块331获取PrintTicket并且尝试性分析所获取的PrintTicket。虽然在根据本示例性实施例的示例情况下,分析处理和UI控制处理由不同的线程控制,但是本示例性实施例不限于此。
[0101] 在步骤S708中,打印时启动UI单元303基于步骤S707中对PrintTicket的尝试性分析处理的结果,确定是否在PrintTicket中设置了认证打印。当打印时启动UI单元303未确定作为分析处理的结果设置了认证打印时(在步骤S708中为“否”),处理前进到步骤S711。另一方面,当打印时启动UI单元303确定作为分析处理的结果设置了认证打印时(在步骤S708中为“是”),处理前进到步骤S709。
[0102] 在步骤S709中,打印时启动UI单元303的UI线程在显示器207上显示输入画面。图8B例示了输入画面的示例。区域810表示用于输入认证信息的文本框。用户在区域810中输入密码或PIN码。确定(OK)按钮811用于在接收到诸如点击的操作事件时应用在区域810中输入的认证信息。确定按钮811可以以灰色状态显示,直到在区域810中输入认证信息为止。
取消按钮812用于取消打印。当按下取消按钮812时,中止打印作业的执行。
[0103] 返回参照图7中所示的流程图,在步骤S710中,打印时启动UI单元303的UI线程接收用户操作并且基于用户操作改变PrintTicket的设置。更具体地,UI线程基于输入的认证信息更新图10中所示的信息1002。如果不存在等同于信息1002的属性,则UI线程将该属性添加到PrintTicket。
[0104] 打印时启动UI单元303还调用用于释放延迟对象的方法,以向OS 210通知与用户的通信完成。当释放延迟对象并且完成用于终止前台任务的处理时,处理的主体改变为后台任务。
[0105] 在步骤S711中,打印时启动后台任务单元305获取设置被打印时启动UI单元303改变的PrintTicket和XPS文件。
[0106] 在步骤S712中,打印时启动后台任务单元305将PrintTicket和XPS文件发送到筛选器管线管理器335,以完成与WF功能相关的处理。
[0107] 当OS 210未确定存储有用于使后台任务的启动有效的设置时(在步骤S702中为“否”),从模块331获取的PrintTicket和根据打印指令生成的XPS文件将被发送到筛选器管线管理器335。
[0108] 根据上述的示例性实施例,当由OS 210调用作为构成后台任务的部件的打印时启动后台任务单元305时,OS 210调用作为前台任务的打印时启动UI单元303,以使得能够显示UI。因此,在作为前台任务的打印时启动UI单元303获取延迟对象之后,能够由打印时启动UI单元303对PrintTicket进行分析。这使得能够防止在通过后台任务的处理无法及时完成的情况下打印处理被中止。在调用打印时启动UI单元303之后,显示诸如进度环的UI以表示处理进行中。这使得能够以可识别的方式向用户通知处理进行中。
[0109] 上面已经以用于通过将PrintTicket的分析提交给前台任务来防止打印作业由于WF功能的执行而被中止的机制为中心描述了第一示例性实施例。第二示例性实施例专注于打印时启动后台任务单元305能够确定是否启动UI的情况。将描述用于在打印时启动后台任务单元305能够确定是否启动UI的这样的情况下通过不启动UI来提高打印时的性能的机制。
[0110] 更具体地,根据第二示例性实施例,打印时启动后台任务单元305对PrintTicket进行分析以确定启动UI的必要性。将描述用于当打印时启动后台任务单元305测量执行时间并且确定无法完成处理时进行控制以启动前台任务的机制。
[0111] 第二示例性实施例的硬件构造和软件构造类似于第一示例性实施例的硬件构造和软件构造,并且将省略其冗余描述。
[0112] 下面将参照图12中所示的流程图来描述具体的控制方法。图12中所示的流程图描述了要代替根据第一示例性实施例的图7中所示的流程图的处理而进行的处理。图12中所示的该流程图与图7中所示的流程图的不同之处在于,在用于启动后台任务的处理之后添加了步骤S1220至步骤S1224中的处理。
[0113] 步骤S1201至步骤S1204中的处理分别类似于步骤S701至步骤S704中的处理,并且将省略其冗余描述。当在步骤S1204中启动后台任务时,处理前进到步骤S1220。
[0114] 在步骤S1220中,打印时启动后台任务单元305启动计时器以开始对经过时间进行计数。在步骤S1221中,打印时启动后台任务单元305从配置模块331获取PrintTicket并且对PrintTicket进行分析。步骤S1221中的分析处理将与时间计数异步地进行。
[0115] 在步骤S1222中,打印时启动后台任务单元305确定是否获得了在步骤S1221中进行的分析的结果。当获得了在步骤S1221中进行的分析的结果时(在步骤S1222中为“是”),处理前进到步骤S1223。另一方面,当未获得在步骤S1221中进行的分析的结果时(在步骤S1222中为“否”),处理前进到步骤S1224。在步骤S1223中,打印时启动后台任务单元305基于步骤S1221中的分析的结果确定是否在PrintTicket中设置了认证打印。当设置了认证打印时(在步骤S1223中为“是”),处理前进到步骤S1205。另一方面,当未设置认证打印时(在步骤S1223中为“否”),打印时启动后台任务单元305结束处理,并且处理前进到步骤S603和后续的步骤(数据转换和发送处理)。步骤S1205中的处理类似于根据第一示例性实施例的步骤S705中的处理,并且将省略其冗余描述。在完成步骤S1205中的处理后,处理前进到根据第一示例性实施例的步骤S706和后续的步骤(通过前台任务的处理)。
[0116] 在步骤S1224中,打印时启动后台任务单元305确定计时器的计数时间是否超过内部存储的预定阈值。当计时器的计数时间超过内部存储的预定阈值时(在步骤S1224中为“是”),处理前进到步骤S1205。另一方面,当计时器的计数时间未超过内部存储的预定阈值时(在步骤S1224中为“否”),处理返回到步骤S1222,并且打印时启动后台任务单元305等待分析的结果。将设置合适的预定阈值,使得在达到后台任务的执行上的限制之前能够启动前台任务。
[0117] 当在后台任务的时间限制内能够完成确定时,能够通过后台任务进行确定,从而提高打印的性能。
[0118] 下面将以由OS 210进行与根据第二示例性实施例的在后台任务内进行的计时器计数等同的功能的情况为中心来描述第三示例性实施例。本示例性实施例被构造为在OS 210强制终止后台任务之前发出超时异常。打印时启动后台任务单元305被构造为在检测到超时异常事件的抛出时启动打印时启动UI单元303作为异常处置。
[0119] 第三示例性实施例的硬件构造和软件构造类似于第一示例性实施例的硬件构造和软件构造,并且将省略其冗余描述。
[0120] 下面将描述由OS 210对异常的发出。如果发生打印事件,则OS 210生成打印扩展应用300的处理并且生成打印时启动后台任务单元305的线程。在生成线程之后,OS 210使得后台任务能够进行处理。OS 210管理所生成的线程的执行时间。当自生成线程起经过了预定的时间段时,OS 210向线程抛出超时异常。根据本示例性实施例,当打印时启动后台任务单元305检测到异常的抛出时,OS 210进行控制以启动前台任务。
[0121] 下面将参照图13中所示的流程图来描述具体的控制方法。图13中所示的流程图描述了要代替根据第一示例性实施例的图7中所示的流程图的处理而进行的处理。图13中所示的该流程图与图7中所示的流程图的不同之处在于,在用于启动后台任务的处理之后添加了步骤S1321至步骤S1324中的处理。
[0122] 步骤S1301至步骤S1304中的处理分别类似于根据第一示例性实施例的步骤S701至步骤S704中的处理,并且将省略其冗余描述。当在步骤S1304中启动后台任务时,处理前进到步骤S1321。
[0123] 在步骤S1321中,打印时启动后台任务单元305从配置模块331获取PrintTicket并且对PrintTicket进行分析。
[0124] 在步骤S1322中,打印时启动后台任务单元305确定是否获得了在步骤S1321中进行的分析的结果。当获得了在步骤S1321中进行的分析的结果时(在步骤S1322中为“是”),处理前进到步骤S1323。另一方面,当未获得在步骤S1321中进行的分析的结果时(在步骤S1322中为“否”),处理前进到步骤S1324。在步骤S1323中,打印时启动后台任务单元305基于步骤S1321中的分析的结果确定是否在PrintTicket中设置了认证打印。当设置了认证打印时(在步骤S1323中为“是”),处理前进到步骤S1305。另一方面,当未设置认证打印时(在步骤S1323中为“否”),打印时启动后台任务单元305结束处理,并且处理前进到步骤S603和后续的步骤(数据转换和发送处理)。步骤S1305中的处理类似于根据第一示例性实施例的步骤S705中的处理,并且将省略其冗余描述。在完成步骤S1305中的处理后,处理前进到根据第一示例性实施例的步骤S706和后续的步骤(通过前台任务的处理)。
[0125] 在步骤S1324中,打印时启动后台任务单元305确定是否从OS 210接收到了超时异常。当打印时启动后台任务单元305接收到超时异常时(在步骤S1324中为“是”),处理前进到步骤S1305。另一方面,当打印时启动后台任务单元305未接收到超时异常时(在步骤S1324中为“否”),处理返回到步骤S1321,并且打印时启动后台任务单元305继续通过后台任务的分析和确定处理。
[0126] 如上所述,根据本示例性实施例,OS 210在OS 210强制终止后台任务的线程之前向后台任务发出超时异常。在接收到超时异常时,后台任务启动前台任务并且获取延迟对象。该处理使得针对后台任务分配的线程能够仅使用计算资源来对PrintTicket进行分析并确定是否启动UI,从而提高计算性能。
[0127] <其他示例性实施例>
[0128] 虽然上面已经以作为由WF功能显示的UI的示例的、用于输入用于认证打印的认证信息的画面为中心描述了本示例性实施例,但是本示例性实施例不限于此。例如,可以显示打印预览作为在接收到打印指令之后要显示的UI。虽然在本示例性实施例中,使用V4打印机驱动程序作为打印机驱动程序,但是本示例性实施例还可应用于V4传真驱动程序。例如,当本示例性实施例应用于V4传真驱动程序时,可以通过使用WF功能显示用于输入和确认目的地地址的画面。
[0129] 其他实施例
[0130] 还可以通过读出并执行记录在存储介质(也可更完整地称为“非暂时性计算机可读存储介质”)上的计算机可执行指令(例如,一个或更多个程序)以执行上述实施例中的一个或更多个的功能、并且/或者包括用于执行上述实施例中的一个或更多个的功能的一个或更多个电路(例如,专用集成电路(ASIC))的系统或装置的计算机,来实现本发明的实施例,并且,可以利用通过由系统或装置的计算机例如读出并执行来自存储介质的计算机可执行指令以执行上述实施例中的一个或更多个的功能、并且/或者控制一个或更多个电路以执行上述实施例中的一个或更多个的功能的方法,来实现本发明的实施例。计算机可以包括一个或更多个处理器(例如,中央处理单元(CPU)、微处理单元(MPU)),并且可以包括分开的计算机或分开的处理器的网络,以读出并执行计算机可执行指令。计算机可执行指令可以例如从网络或存储介质被提供给计算机。存储介质可以包括例如硬盘、随机存取存储器(RAM)、只读存储器(ROM)、分布式计算系统的存储器、光盘(诸如压缩光盘(CD)、数字通用光盘(DVD)或蓝光光盘(BD)TM)、闪存装置以及存储卡等中的一个或更多个。
[0131] 虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明不限于所公开的示例性实施例。应当对所附权利要求的范围给予最宽的解释,以便涵盖所有这些变型例以及等同的结构和功能。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈