System and method for printing over networks via print server
Abstract
A system (Figure 1) and method that enable users who operate the following originating devices, such as PC (12, Figure 1), laptop computers, PDA (16, Figure 1), pocket PCs, cellular phones ( 18, Figure 1), etc., able to print documents, images and web pages via a "driverless" print server (DPS) system (38, Figure 1) without requiring any printing device drivers to be loaded to the originating end On the device. The server system uses a table-driven mechanism to process and manipulate various printer events generated by various software applications, which are suitable for the documents that the operator of the originating device wants to print. Then, through various networks, the print data corresponding to the document is directed to the selected target printer. The system not only provides two-way communication between the DPS server computer and the originating device, but also provides two-way communication between the DPS server computer and the target printer.

Term
Term ended
Projected expiry passed 19 March 2022, 4.5 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
60 claims: 6 independent, 54 dependent
- 1一种使始发端设备的用户能在目标打印机上打印源数据的方法,包括:向始发端设备提供数据,通过该始发端设备能够再现用户界面,从而使用户能选择源数据以进行打印并标识目标打印机;从始发端设备接收源数据或者标识该源数据的标记,并向打印服务器提供该源数据或标记;将源数据加载到在打印服务器上运行的浏览器或相应应用程序中;经由在打印服务器上运行的操作系统的打印子系统和相应应用程序或浏览器,来生成对应于源数据的打印机数据;和将打印机数据从打印服务器提交到目标打印机。
- 2如权利要求1所述的方法,其中所述始发端设备包括如下组中的一项,所述组包括:个人计算机(PC)、膝上型计算机、工作站、计算机服务器、个人数字助理设备、袖珍型PC、蜂窝式电话或因特网设备。
- 3如权利要求1所述的方法,其中所述始发端设备不要求在其上加载对应于目标打印机的打印机设备驱动程序。
- 4如权利要求1所述的方法,其中所述源数据对应于应用程序文件,并且所述始发端设备不要求在其上加载对应于应用程序文件的应用程序。
- 5如权利要求1所述的方法,其中为生成用户界面所提供的数据包括一组Web页面,这组Web页面由Web服务器提供,所述Web服务器可操作地通信链接于打印服务器。
- 6如权利要求1所述的方法,其中所述源数据包括应用程序文件。
- 7如权利要求1所述的方法,其中所述源数据包括图像文件。
- 8如权利要求7所述的方法,其中所述图像文件被再现于打印服务器上运行的浏览器上,并且一打印动作被调用,以使得浏览器向打印子系统提交属于该图像的图形数据。
- 9如权利要求1所述的方法,其中所述源数据包括Web页面。
- 10如权利要求9所述的方法,其中所述标识该源数据的标记包括对应于Web页面的URL(统一资源定位符)地址,并且浏览器利用该URL地址导航到Web页面。
- 11如权利要求1所述的方法,进一步包括在用户界面上提供打印状态信息,以使用户能监控用户所提交的源数据打印请求。
- 12如权利要求1所述的方法,进一步包括:定义文件类型到应用程序的映射信息,该映射信息把多个源数据文件类型中的每一个映射到一个或多个对应的应用程序,所述应用程序可以用来打印具有那种文件类型的源数据;和响应于在打印服务器接收源数据,判定源数据的文件类型;判定一个适当的应用程序,以便加载到打印服务器上来打印源数据;启动打印动作,以使得所述应用程序结合打印子系统来生成打印机数据;和向目标打印机发送打印数据以便打印。
- 13如权利要求12所述的方法,进一步包括提供用户界面,以使管理员能定义文件类型到应用程序的映射信息,并且定义应用程序加载信息,以使应用程序能被加载到打印服务器上。
- 14如权利要求13所述的方法,其中所述用户界面包括web页面,该web页面是从可操作地连接于打印服务器的web服务器提供的。
- 15如权利要求12所述的方法,其中应用程序可在应用程序打印过程期间显示消息框和/或对话,以通知用户错误或警告或者收集来自用户的打印参数信息,进一步包括自动提供计算机生成的输入,以操纵由应用程序运行的任何消息框和/或对话,从而生成打印机数据。
- 16如权利要求1所述的方法,进一步包括向始发端设备提供打印预览数据,该打印预览数据包括目标打印机的输出在始发端设备上再现时的模拟表示。
- 17如权利要求1所述的方法,进一步包括提供基于Web的用户界面,该用户界面使管理员能查看关于挂起的打印作业的信息。
- 18如权利要求1所述的方法,进一步包括提供基于Web的用户界面,该用户界面使管理员能查看关于已完毕的打印作业的信息。
- 19如权利要求18所述的方法,其中所述基于Web的用户界面使管理员能利用以如下组中的至少一项为基础的筛选器,来查看已完毕的打印请求,所述组包括日期范围、指定的所有者、账号和指定的打印机。
- 20如权利要求18所述的方法,其中所述基于Web的用户界面使管理员能够利用如下的筛选器来查看已完毕的打印请求,所述筛选器是响应于管理员查看基于Web的用户界面而输入的多个搜索条件而被生成的。
- 21如权利要求1所述的方法,其中所述源数据包括使用户能经由文件浏览操作进行选择的文件,所述文件包括存储在始发端设备上的或存储在可经由网络由始发端设备访问的设备上的文件。
- 22如权利要求1所述的方法,其中加载源数据和生成打印机数据的操作,是利用操作系统外壳扩展打印机制来执行的。
- 23一种在上面存储有多条机器指令的机器可读介质,当这些机器指令被计算机器执行时,使始发端设备的用户能通过执行以下操作在目标打印机上打印硬拷贝输出,该硬拷贝输出属于用户所选择的源数据,所述操作包括:从Web服务器向始发端设备提供基于Web的数据,以使得用户界面在始发端设备上再现,所述用户界面具有交互式控件,这些交互式控件使用户能选择源数据进行打印,并标识打印机列表中的可被选择来打印硬拷贝输出的目标打印机;在Web服务器上,接收来自始发端设备的源数据或者用于标识该源数据的标记;将源数据或用于标识该源数据的标记传递给打印服务器;将源数据加载到在打印服务器上运行的浏览器或相应应用程序中;启动打印动作,以使得对应于源数据的打印机数据由打印服务器上运行的操作系统的打印子系统和相应应用程序或浏览器生成;和将打印机数据从打印服务器提交到目标打印机。
- 24如权利要求23所述的机器可读介质,其中所述始发端设备包括如下组中的一项,所述组包括:个人计算机(PC)、膝上型计算机、工作站、计算机服务器、个人数字助理设备、袖珍型PC、蜂窝式电话或因特网设备。
- 25如权利要求23所述的机器可读介质,所述源数据包括应用程序文件。
- 26如权利要求25所述的机器可读介质,其中所述源数据包括应用程序文件,该应用程序文件使用户能通过被再现的用户界面上的相应控件所启动的文件浏览操作来进行选择,所述应用程序文件包括存储在始发端设备上的文件或存储在可经网络由始发端设备访问的设备上的文件。
- 27如权利要求23所述的机器可读介质,其中所述源数据包括图像文件,该图像文件被再现于打印服务器上运行的浏览器上,并且由浏览器执行打印动作,来向操作系统的打印子系统提交属于该图像的图形数据。
- 28如权利要求23所述的机器可读介质,其中所述标识该源数据的标记包括对应于Web页面的URL(统一资源定位符)地址,并且机器指令的执行进一步执行以下操作:加载Web浏览器;向Web浏览器传递URL地址,以使Web浏览器能导航到Web页面;激活Web浏览器所提供的打印操作,以使对应于Web页面的打印机数据由浏览器结合打印子系统生成。
- 29如权利要求23所述的机器可读介质,其中所述机器指令的执行进一步执行提供交互式Web页面的操作,该交互式Web页面提供打印状态信息,以使用户能监控用户所提交的源数据打印请求。
- 30如权利要求23所述的机器可读介质,其中机器指令的执行进一步执行以下操作:提供用户界面,以使管理员能定义文件类型到应用程序的映射信息,该映射信息把多个源数据文件类型中的每一个映射到一个或多个相应的应用程序,所述应用程序可以用来加载具有那种文件类型的源数据;和响应于在打印服务器上接收源数据,判定源数据的文件类型;判定一适当的应用程序,以便加载到打印服务器上来打印源数据;和启动打印动作,以使应用程序结合打印子系统来生成打印机数据。
- 31如权利要求23所述的机器可读介质,其中机器指令的执行进一步执行提供用户界面的操作,所述用户界面用于使管理员能定义文件类型到应用程序的映射信息,并定义应用程序加载信息,以使应用程序能被加载到打印服务器上。
- 32如权利要求31所述的机器可读介质,其中所述用户界面包括web服务器所提供的web页面。
- 33如权利要求30所述的机器可读介质,其中应用程序可在应用程序打印过程期间显示消息框和/或对话,以通知用户错误或警告或者收集来自用户的打印参数信息,并且其中机器指令的执行进一步执行自动提供计算机生成的输入的操作,以操纵由应用程序运行的任何消息框和/或对话,从而生成打印机数据。
- 34如权利要求23所述的机器可读介质,其中机器指令的执行进一步执行如下操作:生成对应于硬拷贝输出的打印预览的打印预览数据,以及向始发端设备发送打印预览数据,以便在始发端设备上加以再现。
- 35如权利要求34所述的机器可读介质,其中将所述数据作为可移植文档格式(PDF)的文档发送给始发端设备。
- 36如权利要求23所述的机器可读介质,其中所述机器指令的执行进一步执行如下操作:从Web服务器提供Web页面,以使管理员能查看关于挂起的打印作业的信息。
- 37如权利要求23所述的机器可读介质,其中所述机器指令的执行进一步执行如下操作:从Web服务器提供管理Web页面,以使管理员能查看关于已完毕的打印作业的信息。
- 38如权利要求37所述的机器可读介质,其中所述管理Web页面使管理员能利用以如下组中的至少一项为基础的筛选器,来查看已完毕的打印请求,所述组包括日期范围、指定的所有者、账号和指定的打印机。
- 39如权利要求37所述的机器可读介质,其中所述管理Web页面使管理员能利用如下筛选器来查看已完毕的打印请求,所述筛选器是响应于管理员所输入的多个搜索条件而被生成的。
- 40如权利要求23所述的机器可读介质,其中所述加载源数据并生成打印机数据的操作,是利用操作系统外壳扩展打印机制来执行的。
- 41一种使始发端设备的用户能在目标打印机上打印源数据的系统,包括:Web服务器装置,用于提供一个或多个交互式Web页面,以使用户能经由在用于再现交互式Web页面的始发端设备上运行的浏览器,来选择源数据进行打印并标识目标打印机,并且能接收包含源数据或用于标识该源数据的标记并标识目标打印机的打印请求;装置,用于从Web服务器装置向打印服务器计算机传递该源数据或传递用于标识该源数据的标记;装置,用于随同源数据一起加载如下应用程序或浏览器,通过该应用程序或浏览器能在打印服务器计算机上打印该源数据;装置,用于生成打印请求,从而使得应用程序或浏览器结合在打印服务器计算机上运行的操作系统的打印子系统,来生成关于源数据及目标打印机的打印机数据;和装置,用于将打印机数据从打印服务器计算机发送到目标打印机。
- 42如权利要求41所述的系统,其中所述始发端设备包括如下组中的一项,所述组包括个人计算机(PC)、膝上型计算机、工作站、计算机服务器、个人数字助理设备、袖珍型PC、蜂窝式电话或因特网设备。
- 43如权利要求41所述的系统,其中所述源数据包括应用程序文件、图像或Web页面中的一项。
- 44如权利要求41所述的系统,其中所述源数据包括应用程序文件,该应用程序文件使用户能经由在Web服务器装置所提供的交互式Web页面中的相应控件所启动的文件浏览操作来进行选择,所述应用程序文件包括存储在始发端设备上的文件或存储在可经网络由始发端设备访问的设备上的文件。
- 45如权利要求41所述的系统,其中所述源数据包括图像文件,该图像文件被再现于打印服务器计算机上运行的浏览器上,并且用于生成打印请求的装置调用浏览器打印命令,从而使得浏览器向打印子系统提交属于该图像的图形数据。
- 46如权利要求41所述的系统,其中所述标识该源数据的标记包括对应于Web页面的URL(统一资源定位符)地址,并且用于加载应用程序或浏览器的装置加载Web浏览器并向Web浏览器传递该URL地址,从而使Web浏览器能导航到Web页面,并且用于生成打印请求的装置激活Web浏览器打印命令,以使得Web浏览器向打印子系统发送对应于Web页面的数据,从而生成打印机数据。
- 47如权利要求41所述的系统,其中所述Web服务器装置进一步执行提供交互式Web页面的操作,该交互式Web页面提供打印状态信息,以使用户能监控用户所提交的源数据打印请求。
- 48如权利要求41所述的系统,其中所述Web服务器装置进一步执行以下操作:提供一个或多个Web页面,以使管理员能定义文件类型到应用程序的映射信息,该映射信息把多个源数据文件类型中的每一个映射到一个或多个相应的应用程序,所述应用程序可以用来加载具有那种文件类型的源数据;和响应于在打印服务器计算机接收源数据,用于加载应用程序或浏览器的装置执行以下操作:判定源数据的文件类型;判定一适当的应用程序,以便加载到打印服务器计算机上来打开源数据;以及用于生成打印请求的装置调用应用程序打印命令,以使得应用程序向打印子系统提交对应于源数据的数据,从而生成打印机数据。
- 49如权利要求48所述的系统,其中所述一个或多个Web页面进一步使管理员能定义文件类型到应用程序的映射信息,并定义应用程序加载信息,从而使应用程序能被加载到打印服务器计算机上。
- 50如权利要求48所述的系统,其中所述应用程序可在应用程序打印过程期间显示消息框和/或对话,以通知用户错误或警告或者收集来自用户的打印参数信息,进一步包括句柄窗口装置,用来自动提供计算机生成的输入,以操纵在生成打印机数据时被调用的任何消息框和/或对话。
- 51如权利要求41所述的系统,进一步包括打印预览装置,该装置生成如下数据,该数据可用来再现硬拷贝输出将呈现的样子的打印预览。
- 52如权利要求51所述的系统,其中所述用于再现打印预览的数据包括可移植文档格式(PDF)的文档。
- 53如权利要求41所述的系统,其中所述Web服务器装置进一步提供管理Web页面,以使管理员能查看关于挂起的打印作业的信息。
- 54如权利要求41所述的系统,其中所述Web服务器装置进一步提供管理Web页面,以使管理员能查看关于已完毕的打印作业的信息。
- 55如权利要求54所述的系统,其中所述管理Web页面使管理员能利用以如下组中的至少一项为基础的筛选器,来查看已完毕的打印请求,所述组包括日期范围、指定的所有者、账号和指定的打印机。
- 56如权利要求54所述的系统,其中所述管理Web页面使管理员能利用如下筛选器来查看已完毕的打印请求,所述筛选器是响应于管理员所输入的多个搜索条件而被生成的。
- 57一种使始发端设备的用户能在目标打印机上打印源数据的方法,包括:向始发端设备提供数据,通过该始发端设备能再现用户界面,从而使用户能选择源数据进行打印并标识目标打印机;接受来自始发端设备的源数据,并将该源数据提供给打印服务器;判定源数据是否包括打印机文件,并且如果包括了,则将源数据提交给打印假脱机程序;和将打印假脱机程序的输出发送给目标打印机。
- 58如权利要求57所述的方法,其中为生成用户界面所提供的数据包括由可操作地通信连接于打印服务器的Web服务器所提供的Web页面。
- 59一种在上面存储多条机器指令的机器可读介质,当这些指令被计算机器执行时,使始发端设备的用户能通过执行以下操作在目标打印机上打印硬拷贝输出,该硬拷贝输出属于用户所选择的源数据,所述操作包括:从Web服务器向始发端设备提供基于Web的数据,以使用户界面能被再现在该始发端设备上,所述用户界面具有交互式控件,这些交互式控件使用户能选择源数据进行打印,并标识打印机列表中的可被选择来打印硬拷贝输出的目标打印机;在Web服务器上接收来自始发端设备的源数据;将源数据传递给打印服务器;判定该源数据是否包括打印机文件,并且如果包括了,则将该源数据提交给打印假脱机程序;和将打印假脱机程序的输出发送给目标打印机。
- 60一种使始发端设备的用户能在目标打印机上打印源数据的系统,包括:Web服务器装置,用于提供一个或多个交互式Web页面,以使用户能经由在始发端设备上运行的浏览器来选择要打印的源数据并标识目标打印机,该始发端设备用于再现所述交互式Web页面,并且接收包含源数据并标识目标打印机的打印请求;用于将该源数据从Web服务器装置传递到打印服务器计算机的装置;用于判断该源数据是否包括打印机文件的装置,并且如果包括了,用于将该源数据提交给打印假脱机程序的装置;和用于将打印假脱机程序的输出发送给目标打印机的装置。
Independent claims60
97 paragraphs, as filed
System and method for printing through a network via a print server
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates generally to computer printing, and more particularly to a system and method as follows, which enables various originating devices to print to selected printers through various networks without requiring The originating device loads any printer device drivers.
2. Background information Typically, in order to print out a document, for the originating device such as a personal computer (PC), laptop computer, personal digital assistant (PDA), pocket PC, etc., it must be printed before it can be printed. The printer device driver is loaded. The printer driver provides an abstract interface between the operating system (OS) and the specific printer, so that the operating system (and applications running on the OS) can use a set of ordinary text, graphics and printing format commands to communicate with Any printers supported by the OS communicate with each other. This allows developers to develop applications without (usually) paying attention to the specific operations of various printers that may be used with the application. These specific operations are handled by the OS in conjunction with the printer device driver.
In todays mobile business environment, business people often encounter such a situation: they are in a place far away from their office, but they need to be able to print out what they want on the selected printer or neighboring printer closest to the business contract. One or more documents provided by the contract. Generally speaking, in order to be able to print to any of the above printers, two things need to happen. First, the following mobile computing device must be communicatively linked with a target printer, and the document file is stored on the mobile computing device (or the document file is accessible via the mobile computing device). This can typically be done by connecting to a network via which the printer can be accessed, or by directly connecting to the printer via a printer cable (such as a serial, parallel, or USB cable). In many cases, these two connection schemes may be impractical or unusable. For example, many business printers are designed to be connected to the network, and administrators do not want their network connection to be disturbed. This interference is caused by connecting the printer to the originating mobile computing device via the printer cable. . In addition, the network the printer is connected to may be a private network, and the administrator will not allow "foreign" computers to connect to it.
The second part of the above question is about the printer device driver. As described above, in order for a mobile computing device to print via a printer, an appropriate printer device driver must be loaded on the mobile computing device. Generally speaking, for each unique type of printer (even the only model in a similar series of printers), a specific device driver is required. These drivers take time to load, occupy storage space, and may cause software conflicts with other applications on the mobile computing device. In addition, business people may not have access to the required drivers. In some occasions, the corresponding printer driver can be obtained from the media on which the OS was originally installed. People usually do not carry these media when they are away from the company. Often times, printers include a model that becomes available after the OS is released. Therefore, the only way to load the appropriate driver is to have the specific device driver provided with the printer. If a specific driver cannot be downloaded via the Internet, there is no way to print via the target printer, so business people will be very unsatisfactory.
SUMMARY OF THE INVENTION The present invention provides a system and method to allow communication between various originating devices that operate across various networks to operate various operating systems, thereby enabling the originating device to pass through A "driverless" print server system prints documents without requiring any print device drivers to be loaded on the originating device. The server system uses a form-driven mechanism to process and manipulate various printer events. These printer events are generated by various software applications related to the documents to be printed by the originating device operator. Next, the output is directed to the selected target printer through various networks. The server system not only provides two-way communication between the server and the originating device, but also provides two-way communication between the server and the target printer.
In a typical implementation, users who operate originating devices such as PCs, laptops, PDAs, pocket PCs, cellular phones, etc., use Web browsers such as Internet Explorer and Netscape Navigator for operating Microsoft Windows operating systems. A browser, or a web browser dedicated to the OS used by the originating device, to access the driverless print server (DPS) system. By entering the appropriate URL (Uniform Resource Locator), the user can connect to a website that supports one or more DPS printers. Then, the user can select a document or image stored on the originating device, or a document or image accessible via the originating device (eg via a network connection to the storage device storing the document), and select the target printer , And request to print the document via the target printer. Alternatively, the user can select a Web URL to print. The print request may further include printing options, such as the number of copies, paper type, n-up color per page, color or monochrome, and so on.
Description of the drawings
When combined with the accompanying drawings, by referring to the following detailed description, it will be easier to understand the above aspects of the present invention and many of the accompanying advantages, and these contents will become better understood. In the accompanying drawings: Figure 1 is According to an exemplary basic structure diagram of an embodiment of the present invention, this embodiment enables users of various originating end devices to print documents on selected target printers via a "driverless" print server (DPS) system. It is required to load the printer device driver corresponding to the target printer on the originating device; Figure 2 is a block diagram illustrating various software components used to provide operations provided by the DPS system according to an embodiment of the present invention; Figure 3 is A representation of a web page, which is reproduced via a browser on the originating device, so that the user can choose to print a file; Figure 4 is a representation of a web page, which is reproduced via a browser on the originating device Reproduction, so that the user can choose to print a Web page; Figure 5 is a representation of the Web page, the web page is reproduced via the browser on the originating device, so that the user can view the previous print request submitted by the DPS system Status information; Figure 6 is a representation of the Web page, which is reproduced by the browser on the originating device so that the user can view various file types supported by the specified DPS site; Figure 7 is an example of various CGI scripts The DPS system uses the above-mentioned CGI script to allow interaction with consumers and administrator users; FIG. 8 is an example of each corresponding to the driverless print server software according to an embodiment of the present invention. A block diagram of a software component; Figure 9 is a representation of a Web page, which is reproduced via a browser on the DPS server or via a client device used by the administrator user, so that the administrator can view information about the specified DPS site Print queue information; Figure 10 is a representation of a web page that is rendered via a browser on the DPS server or via a client device used by the administrator user, so that the administrator can view the selected date range for the specified DPS site Of completed print jobs;
Figure 11 is a representation of a Web page that is rendered via the browser on the DPS server or via the client device used by the administrator user, so that the administrator can view the completed files for the selected owner of the specified DPS site Print job; Figure 12 is a representation of a Web page, which is reproduced via a browser on the DPS server or via a client device used by the administrator user, so that the administrator can view the selected printers of the specified DPS site The completed print job; Figure 13 is a representation of the Web page, which is reproduced via the browser on the DPS server or via the client device used by the administrator user, so that the administrator can view all completed DPS sites Figure 14 is a representation of the Web page, which is reproduced via the browser on the DPS server or via the client device used by the administrator user, so that the administrator can search for information based on the optional search information entered by the administrator , To view various completed print job information; Figure 15 is a representation of the Web page, which is reproduced via the browser on the DPS server or via the client device used by the administrator user, so that the administrator can view and Edit the file type information about the document file type supported by the specified DPS site; Figure 16 is a representation of the Web page, which is reproduced via the browser on the DPS server or via the client device used by the administrator user to enable management The operator can view the file extensions and corresponding application information about the document file types supported by the specified DPS site; Figure 17 is a schematic diagram illustrating a typical data flow process corresponding to a print request submitted to a print server without a driver; Figure 18 is a schematic diagram and flowchart illustrating the further operation and logic provided by the driverless print server software; Figure 19 is an example of the handle window component used to manipulate various dialogs that may be run during the processing of a print job The flowchart and schematic diagram of the operation and logic of the box and the message box; and FIG. 20 is a schematic diagram of an exemplary computer server that can be used to host the installation of a driverless print server.
Detailed description of specific embodiments Here is a detailed description of a system and method used to enable users to operate the originating device to print documents, images and Web pages via a "driverless" print server (DPS) system without requiring Any printing device driver is loaded on the originating device. Many specific details are disclosed in the following description to provide a comprehensive understanding of the embodiments of the present invention. However, those skilled in the relevant art will recognize that the present invention can be implemented without one or more specific details, or can be implemented with other methods, components, and so on. In other examples, in order to avoid confusing aspects of various embodiments of the present invention, well-known structures or operations are not shown or described in detail.
References to "one embodiment" or "an embodiment" throughout the specification mean that specific features, structures, or characteristics described in conjunction with the embodiments are all included in at least one implementation of the present invention. Therefore, the phrases "in one embodiment" or "in an embodiment" appearing in different places throughout the specification do not necessarily all refer to the same embodiment. In addition, specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments.
Terminology The following discussion discloses an embodiment for implementing a driverless print service according to the present invention, whereby the originating device can submit a document to be printed on the target printer through a private network or a public network. In accordance with the disclosed embodiments, the following terminology is used: Server: A computer running software accessible through a network.
Web server: A software program running on a computer or server that can communicate with a client computer using the Hypertext Transfer Protocol (HTTP) to transfer Hypertext Markup Language (HTML) between the client computer and the server computer Files, Common Gateway Interface (CGI) data, and data files.
Web browser: A software application used to obtain and send resources and reproduce content through the network.
Uniform Resource Locator (URL): HTTP address string of resources on the network. It is usually a web page or document file.
Source data: The source data in this document refers to any document or media that can be retrieved and output to a certain device. Supported input data formats include, but are not limited to: types supported by most document processors (such as PDF, PostScript, Microsoft Word), Web URL links, emails or email attachments.
Job request: It refers to the request submitted by the user to the system to be processed and sent to the output device.
Job status: It refers to the job request status that shows the current progress of the request processing. This is a mechanism to help users understand the status of their job requests and help system administrators manage them.
Printer: A hardware device that takes electronic data streams and creates images (for example, hard copy output of documents) on media such as paper.
Windows printer: In the Microsoft Windows operating system, "printer" is defined as: a specified combination of printer driver, print processor, language monitor and port monitor.
Spool file: A printer language file created by the MS Windows printer driver. The content of this file is sent directly to the printer for printing.
Internet Printing Protocol (IPP): A protocol similar to HTTP that is used to send spooled files to networked printers and obtain print job status from networked printers.
Remote Line Printer (LPR): A protocol used to submit spooled files to network printers.
Overview of the Infrastructure A general view of a network infrastructure 10 in accordance with an exemplary implementation of the present invention is shown in FIG. 1. The network infrastructure 10 depicts four originating end devices, including: laptop computers 12 and 14, PDA 16, and cellular phone 18. It will be understood that the originating device can include any device that can access a computer network via a web browser, including but not limited to: PC, workstation, laptop, PDA, pocket PC, cellular phone, wireless two-way Pagers (such as Blackberry devices) and Web TV devices. Each originating device can access any print target supported by the print server site without a driver, and can communicate with the originating device via a network connection. The target printers of this type depicted in FIG. 1 include: PostScript printers and 22, ASCII printers 24, Hewlett-Packard (HP) laser printers 26, 28, and 30, IBM laser printers 32 and 34, and plotters 36. Generally speaking, any type of printer or plotter can be used as the target printer. In this regard, the printer and plotter in FIG. 1 are for illustrative purposes only, and are not intended to limit the types of printers that can be implemented in accordance with the present invention.
Connect each target printer to a driverless print server computer, as depicted in driverless print server computers 38, 40, 42, and 44. The driverless print server computer includes a set of DPS software modules 46 (herein also referred to as driverless print server or driverless print server software) operating on computing devices, such as PCs, workstations, Laptop or computer server. As described in further detail below, the driverless print server software combined with the Web server 48 provides an interface through which the originating device can print to any computing device that is communicatively connected with the DPS software hosting the DPS software. On a printer supported by the software. Generally speaking, the Web server 48 can run on the same device as the DPS software, as shown in the driverless print server computers 38, 40, and 44, or it can run on a separate machine such as the Web server computer 50. As is well known to those skilled in the art.
As shown by the grouping bracket 52, the laptop computer 12, the driverless print server computer 38, and the printers 20, 24, and 26 are depicted as being present in a public physical location, such as a hotel 54. In a typical "hospitality" implementation, printing service providers such as hotels, airports, copy centers, etc., can provide local area networks (LAN), such as LAN56, which allows the originating device to be connected to the driverless provided by the hospitality site Program on the print server and associated printer. In the above situation, the Web server 48 can serve as an intranet site. In other cases, the originating device may be connected via the Internet 58 to a print server computer without a driver. In these occasions, the Web server 48 will be used as an Internet Web server supporting one or more corresponding Internet Web sites.
As shown in Figure 1, a typical DPS site also includes office and home sites. In the case where the DSP host computer includes a mobile computer, the DPS site can be located anywhere with a suitable network connection.
In the case of wireless devices such as a PDA 16 and a cellular phone 18, the wireless device is typically connected to the Internet via a cellular network 60, which will include a service provider data center 62 that allows wireless via the Internet 58 Visit the Web site. Depending on the service provided by the cellular carrier used to establish the wireless Internet link, Web navigation can be supported through conversion services, or it needs direct wireless device support. For example, in the United States, WAP (Wireless Application Protocol)-enabled wireless devices typically provide the following browsers, which are designed to pass WML and/or HDML (Wireless Markup Language, the language is designed for wireless devices) HTML variant) to receive data. In Asia, i-mode devices use a variant of HTML called cHTML. A typical conversion service can parse HTML for a specified website and generate appropriate WML to enable site navigation, thereby allowing WAP-enabled devices to browse the Web site. In addition, the ever-increasing number of Web sites directly support WAP and/or i-mode devices, allowing wireless devices to browse these sites without switching services.
In Fig. 2 is shown a further detailed description of an embodiment of a software component through which the present invention can be implemented. The software components are logically divided into three groups, including: an installation component 100, a document processing component 102, and a management component 104. Each of these components further includes multiple software applications, scripts, components, and/or modules. The installation component 100 includes: a print installation module 106 and an account guide module 108. The document processing component 102 includes: a consumer Web page, a CGI script 112, a driverless print server module 46, a port monitor 114, a status monitor 116, an email module 118, and a preview module 120. The management component 104 includes: a system monitor 122, a management (control panel) Web page 124, an automatic expansion module 126, and an automatic update module 128.
In one embodiment, the print installation module 106 includes a Microsoft (MS) Windows application program, and the system administrator runs this application program to change the configuration of the Windows printer used by the system. The application can be used to replace an existing printer, install a new printer, or delete a printer. The replacement of the existing printer includes: obtaining the installation of the existing printer, and replacing the operation provided by the MS Window port monitor with the port monitor 114. The use of the port monitor 114 allows the DPS system to manipulate the spool file, and allows the status monitor 116 to send the spool file to the selected target printer.
The print installation module 106 can also be used to install a new printer with appropriate printer device drivers. For example, the administrator can set up a postscript printer by installing the Adobe PostScript driver to use the printer's PostScript Printer Description (PPD) file with the DPS system. If the administrator can provide PDD, the printer installation module will install the PostScript driver and configure it for use by the DPS system. In other cases, the administrator can provide the appropriate printer device driver software for the new printer.
The print installation module 106 can also be used to delete printers. In this case, the Windows port monitor can be restored to the system's port monitor, or the DPS server's support for the selected printer can be completely removed.
The account wizard module 108 applies security to a set of management control panel web page files, so that the administrator's login will determine which set of web pages are accessible. In one embodiment, the system implements three management levels, including: supervisor level, administrator level, and management level. In one embodiment, the account wizard creates these three groups as MS Windows user groups. In addition, the account wizard creates MS Windows user accounts and places them in one of the management user groups. In one embodiment, the account wizard module 108 is an MS Windows application.
The consumer Web page 110 provides a user interface for the customer user (that is, the operator of the originating device) via a browser operated on the originating device. In one embodiment, the consumer web page includes a standard HTML web page, and the HTML web page can be viewed by a web browser. In another embodiment, the consumer Web page 110 may include WML, HDML, or cHTML pages to support WAP-enabled and i-mode-enabled wireless devices, such as wireless PDAs and cellular phones.
In one embodiment, the consumer web page includes: a print file page, a print web page page, a print job status page, a supported file type page, and a help/support page. An exemplary consumer Web page 130 corresponding to a printed document page is shown in FIG. 3. The consumer web page 130 includes a number of tabs that allow navigation to the corresponding web page, including: a print file tab 132, a print web page tab 134, a my print status tab 136, a more information tab 138 and an exit tab 140.
As shown in FIG. 3, the consumer Web page 130 has a selected print file label 132. Thus, the web page includes input controls that enable consumer users to print selected files. These controls include: a last name edit box 142, a printer selection drop-down control 144, a copy number edit box 146, a file selection edit box 148, a browse button 150, and an instant print button 152. The consumer user enters his or her last name in the last name edit box 142, selects a printer via the drop-down control 144, and enters the number of copies via the number of copies control 146. The above names are used for tracking purposes, and the list of printers displayed via the drop-down control will correspond to the printers supported by the specified DPS site. The consumer can enter the file name corresponding to the document that the consumer needs to print in the select file edit box 148, or activate the browse button 150, it will pop up a regular MS Windows browsing dialog box, which allows the consumer to access Browse the directory on the originating device or the following storage device to select the file, the storage device is connected to the originating device via the network. Once all the controls contain the appropriate information, the consumer can activate the instant print button 152 to request that the selected or entered document be printed on the selected printer. Then, a success page (not shown) will be displayed on the browser to indicate whether the request has been successfully received.
As shown in FIG. 4, the activation of the print web page tab 134 causes the consumer web page 154 to reproduce. As mentioned above, the consumer enters his or her last name in the edit box 156, selects the printer via the drop-down control 158, and enters the desired number of copies 3 in the edit box. Next, the consumer enters the URL of the web page to be printed in the edit box 162, and activates the even print button 164 to request the web page to be printed on the selected printer. The success page will be displayed again on the browser to indicate whether the request has been successfully received.
The user can preview the status of the requested print job by activating the My Print Status tab 136, which will reproduce the consumer Web page 166 shown in FIG. 5. The Web page 166 displays various printing status information, including: a print job name 168, a progress bar 170, and a printing status 172. If necessary, the consumer can cancel the print job by activating the cancel button 174.
The activation of the more information tab 138 reproduces the consumer Web page 176 shown in FIG. 6. The consumer Web page 176 includes a number of additional tags, including: a tag 178 of supported file types, a tutorial tag 180, a frequently asked questions (FAQ) tag 182, and an about tag 184. In the illustrated Web page, the tag 178 of the supported file type is activated. The activation of the label of the supported file type will cause the information about the file type and the corresponding file description to be displayed in the file type description box 186 and the file type extension box 188. Generally speaking, the list of file types will depend on the specific application loaded on the DPS server corresponding to the website. In some occasions, a specific printing service application program will be provided for a special application program, so the actual application program will not need to be loaded on the DPS server. For example, the AutoCad file can be printed via a third-party print service application that does not need to display a copy of the AutoCad application on the DPS server.
The activation of the tutorial tag 180 will reproduce a web page that provides tutorial information. Similarly, the activation of the FAQ tab 182 will reproduce the FAQ page, which includes answers to various frequently asked questions about how to use the DPS service, as well as corresponding hyperlinks to the answers to each question.
The CGI script 112 provides advanced functions to the consumer and the management panel Web page. Further details of the CGI script are shown in FIG. 7. The print job cancellation CGI script 190 is used to remove the print job request from the system. Through the consumer web page, this script can be called for any print job on the print job status web page. Through the management control panel web page, you can call this script for any print job that has been submitted to the system and for print jobs that still have to be spooled files to be sent to the printer.
The automatic extension configuration CGI script 192 searches the server computer to find installed applications, discovers which document types can be supported by the applications that have been found, and configures the system to allow print job requests of the discovered file types. The result of this CGI script appears on the web page of the supported file type (for example, the web page 176 of FIG. 6). The update system CGI script 194 is used to compare the installed system components with the most recently available components, download any new components (when these new components are available), and install them on the system.
The print request CGI script 196 obtains a document file, a graphic image file, or a URL from the consumer's Web page as input, and creates a print job request to the system. The job queue CGI script 198 reads the print job request queue from the system, and returns the list to the calling Web page of the script. The preview CGI script 200 obtains a document file, a graphic image file, or a URL from a consumer Web page, and creates a print job request on the system in a manner similar to a print request CGI script. However, when the preview CGI script is called, the system converts the document, image, or Web page into a format for viewing on the consumer user's Web browser, instead of sending it to the printer for printing. The preview CGI script can be called again for the document, image or Web page to instruct the system to send the preview item to the printer.
The reset CGI script 202 closes system applications and restarts them. Treat this script as a last resort attempt by the system administrator to clear any program errors that may have occurred. The status CGI script 204 provides the progress status of the print job request to the consumer and the management control panel Web page. The email trigger script 206 notifies the email module 118 that a message for a certain account has arrived. The email module 118 uses this information to retrieve the message and convert it into a print job request.
The components implemented by the driverless print server 46 are shown in FIG. 8. The driverless print server is the main software component of the system. It includes an application program running on a DPS server computer that accepts job requests, queues these requests, and directs the printing process for documents, images, or URLs to final printing according to the requests. The driverless print server includes: file type configuration list 208, browser printing component 210, auxiliary application printing component 212, shell extension printing component 214, print preview component 216, job request server component 218, job processing component 220. The handle window component 224 and the job status component 226.
The file type configuration list 208 is maintained by a print server without a driver. The configuration list has an extension for each file type and the method used to print this file type. When the printing method is provided by the auxiliary application printing component 212, the list includes: the path to the application used for printing, the menu command used by the application to print, and the menu command used by the application to close the application.
The browser printing component 210 includes one of three methods used by a driverless print server to print. In one embodiment, the component uses an application programming interface (API) provided by the Microsoft Internet Explorer (IE) web browser. Using the IEAPI interface, the component can run a browser in a window on a driverless print server application. In order to print the URL, the driverless print server uses the provided navigation programming interface to load the Web page into the window. Once the page is loaded, the component uses the print programming interface provided by IE to initiate printing.
If the IE browser instance on the DPS server computer is equipped with a browser plug-in that requests the document or image file type, you can use this method to print the document and image file. For example, consider the IE plug-in for Adobe Acrobat. Adobe Acrobat document files have a PDF extension. If the Acrobat plug-in is installed on the server computer, the navigation programming interface of IE allows the PDF file to be loaded into IE, and the IE print programming interface will allow the file to be printed.
The auxiliary application printing component 212 provides another method for a print server without a driver to print. The component uses the file type configuration list 208 to find the application associated with the file extension, loads the file into the application, executes the application's print menu command, and closes the application once the printing operation is completed. Through the combination of the file type configuration list and the auxiliary application printing method, the system administrator can add support for additional documents or images by installing the application on the server machine and editing the file type configuration list.
The shell extension printing component 214 provides a third method for a print server without a driver to print. This component uses MS Windows shell to extend the programming interface to print. The MS Windows shell extension interface is an operating system feature that allows users to print the document type with a command sent to an application that supports the document type. If the application program supports the shell extension interface, the application program will load the document, print the document, and close by itself. Through the combination of the file type configuration list and the shell extension printing method, the system administrator can add support for other document or image types by installing an application on the server machine and editing the file type configuration list 208.
The print preview component 216 converts the document, image, or URL requested by the print job into a document format file, so that the consumer user can view the template of the requested document, image, or URL. This component works in conjunction with the preview CGI script 200. One of the conversions performed by the driverless print server belongs to the Adobe Acrobat document format. By using the print preview component, the driverless print server creates a spool file in the same way that it is commonly used to create a spool file for printing. However, instead of sending the spool file to the status monitor 116 for sending to the printer, it runs the spooled file via the Adobe Acrobat Distiller application, which converts the document into the Acrobat PDF format. This conversion requires that the printer driver is an Adobe PostScript driver. The driverless print server keeps the created spool file in the preview process, so that if the consumer wants to print the document, DPS can simply send the spool file to the status monitor 116, The status monitor then sends the file to the printer for printing.
The job request server component 218 obtains print job requests from the print request CGI script 196 and queues them for processing.
The job processing component 220 manages the print job request, from inserting it into the job queue to sending the spooled file to the printer. The component reads the queued job request, determines which of the three printing methods will be used for printing, submits the document, image or URL to the determined printing method, manipulates and executes the printing command, and spools the file Submit to the status monitor for printing. During the various stages of the printing process, the status is tracked and made available for any status CGI script 204 calls that may be issued.
The handle window component 224 is used to provide reliable printing. Many applications display message boxes and/or dialog boxes during the printing process to notify the user who is requesting the printing service or collect information from the user. In order to support the automatic processing of print requests, a mechanism is needed to respond to any message box or dialog box that may appear in the application program used to print the request. This mechanism is provided by the handle window component 224. During the printing process for possible message boxes and dialog boxes, the driverless print server observes the server. When a new message box or dialog box appears, the handle window component reads the information, compares this information with the known message or known statement, and closes the message box or dialog box according to its programmed logic. In the following, referring to FIG. 19, further details of the handle window component are discussed.
A job status component 226 is provided to save the memory map files of all jobs in each print server queue without a driver. At periodic intervals, the job status information is written to the memory-mapped file, so that the status CGI script can read the status of the job request.
The port monitor includes standard components in the MS Windows printing subsystem. The port monitor receives spool data from the printer driver via the printing subsystem. The traditional port monitor is responsible for obtaining spool data from the printer driver and delivering it to the printer. In a driverless print server system, the port monitor module 114 (FIG. 2) writes spooling data to a file. Once the entire spool file has been written into the file, the port monitor module 114 notifies the driverless print server of the name and location of the spool file.
The status monitor 116 includes an application program running on the server computer. It can complete a variety of functions, but it is mainly responsible for sending spool files to the printer. After notifying the print server without a driver of the location of the spool file from the port monitor 114, the print server without a driver notifies the status monitor 116 of the location of the spool file, and informs the spool file of the location of the spool file. The URL of the printer to be sent to, and the protocol information used to notify the spool file to be sent to the printer. The status monitor 116 creates a queue for each requested printer URL. Since the printer can only receive one spool file at a time, it serializes the transmission of the spool file. The status monitor 116 can create and maintain multiple queues at the same time.
After the spooled file has been successfully sent to the printer, the status monitor 116 notifies the print server without the driver that the job has been completed. Update the job history and remove the job from the print server queue without a driver. The status monitor 116 may be configured to send a message to the external system before or after the spooled file has been sent to the printer. An example of an external system may be a hotel billing system, which can use the information to charge guest bills.
The email component 118 creates a virtual email address for the printer. The consumer user sends the e-mail to the printer so that it prints the e-mail content. The email component 118 includes an application program running on the server computer. In one embodiment, the email component 118 utilizes a Post Office Protocol 3 (POP3) email server to retrieve email messages and insert them into a driverless print server queue. In fact, the email component contains the connection between the email account and the DPS server computer. Setting up an account in the email component includes the following steps: input the POP3 server URL, user name, and password of the email account for the printer to use, and then input the driverless print server printer for the email account.
The email component 118 has two modes of operation: polling and triggering. When using the polling mode, the POP3 email server is periodically checked for available email messages. When using the trigger mode, when the email trigger CGI script 206 notifies the email component that a message is available, the POP3 email server is checked for the available message. When a new e-mail message is available, the e-mail component 118 downloads the e-mail content containing the attachment from the POP3 server. Create a print job request on the system for the email text and each attachment in the email. When a print job request is made and when the entire content of the email has been printed, the notification of submission is returned in the form of a reply email.
The system monitor component 122 includes an application program that monitors all other system components, observes failures, and listens to specific requests. When a print job request arrives from the print request CGI script 196, if the print server application without a driver is not running, the print request CGI script can request the system monitor 122 to start the print server without a driver. Allow the print job request. The system monitor 122 periodically sends messages to the print server without a driver to obtain the status of the program and any print jobs in its queue. If the system monitor detects a failure, it clears the problem.
The system monitor 122 can also be used to download and install newer system components. It collects the version numbers of all components in the system and sends them to the update Web site of the system. If the Web site is updated to reply with information about the availability of newer components, it will take those components and install them on the system. The system monitor receives an update request from its menu or from an update system CGI script 194.
The management Web page 124 allows management users to monitor and remotely configure the system. Security features are used to prevent consumer users from accessing these Web pages. An exemplary management panel Web page 228 is shown in FIG. 9. The management panel Web page 228 provides multiple top-level tabs for navigating to the management Web page corresponding to the tabs, including: a print job tab 230, an about tab 232, a file type tab 234, a consumer contact tab 236, a printer management tab 238, and Configure label 240.
As shown in FIG. 9, the activation of the print job label 230 causes a set of lower-level labels to be reproduced. These tags include: view print queue tag 242, list tag by date 244, list tag by owner 246, list tag by printer 248, all jobs tag 250, and advanced search tag 252. As shown in FIG. 9, the activation of the view print queue tab 242 enables the administrator to view the pending print jobs of the printer selected via the drop-down control 254. These pending print jobs are displayed in text box 256, and the number of jobs in the queue is displayed in text box 258. The activation of the more information button 260 enables the administrator to see more information about the selected print job.
The activation of the list tab 244 by date, the list tab 246 by owner, the list tab 248 by printer, and the all job tab 250 enable the administrator to view the history of print jobs belonging to the selected specific tab. For example, the activation of the list tab 244 by date allows the administrator to view all print jobs of a designated driverless print server for a selected date range, as depicted in the management panel Web page 262 in FIG. 10. Next, the administrator enters the start date and the end date via the edit boxes 264 and 266, and activates the "go" button 268 to request a record of all print jobs that have been retrieved within the date range. The number of results for each page can be selected via a drop-down control 270, and navigation between records is initiated by a set of navigation controls 272. Each record includes information about start time, owner, document name, printing status, completion time, number of pages printed, total cost, owner address, and printer address.
The activation of the list tab 246 by owner allows the administrator to view information about all jobs that have been submitted to a particular owner, as depicted in the management panel Web page 274 in FIG. 11. The owner can be the username, the room number where the user submits the job, or it can be an indicator of the person or location that submitted the job. Enter the owner's information in the edit box 276. Next, the administrator activates the "go" button 278 to retrieve the record corresponding to the owner. As previously mentioned, the number of results for each page can be selected via corresponding controls (not shown), and navigation between records is initiated via a set of navigation controls 280.
Pressing the activation of the printer list tab 248 enables the administrator to view all completed jobs for the selected printer, as depicted in the management panel Web page 282 in FIG. 12. The identification of the printer required for the print job history is selected via the drop-down control 284, on which the corresponding record is retrieved in response to the activation of the "go" button 286. The number of results on each page can be selected via a drop-down control 288, and navigation between records is provided by a set of navigation controls 290.
The activation of the All Jobs tab 250 enables the administrator to view information about all jobs printed by a specific driverless printer server, as depicted in the management panel Web page 292 in FIG. 13. As previously mentioned, the number of results for each page can be selected via corresponding controls (not shown), and navigation between records is initiated via a set of navigation controls 294.
The activation of the advanced search tab 252 enables the administrator to view information about print jobs selected based on various input values, as depicted in the management panel Web page 296 in FIG. 14. Use the start and end date edit boxes 298 and 300 to enter the date range for the search. One or more printers can be selected via the drop-down control 302. The owner of the printer may be provided in block 304. If there is no specific owner, a search is performed for all owners. The site identification can be selected via the drop-down control 306. The results of each page can be selected via the drop-down control 308. A drop-down control 310 is provided to enable the administrator to define the columns to be sorted. A pair of radio buttons 312 allows the sort order to be defined as ascending or descending. Once the desired value is entered and selected, the administrator can initiate the search via the "go" button 314. The previous set of search parameters can be retrieved by activating the "previous" button 316, and at the same time, the values of various search parameters can be reset to default values via the activation of the "reset" button 318.
The activation of the file type tab 234 enables the administrator to view and/or edit the file types of documents and image files that can be printed by the driverless print server, as depicted on the Web page 320 in FIG. 15. Navigation of records of various file types can be provided via a set of edit controls 322 and a set of edit controls 324. The number of records on each page can be selected through the drop-down control 326. If you want to edit the value of a specific file type, the administrator can activate the "edit" button 328 in the response column, which will enable the value in the value column to be edited. These columns include: "Extension" column, "Application" column, "Enabled" column, "Method" column, "ToLaunch" column, "To be printed" (ToPrint)" column, "ToClose" column and "Static" column. The extension of the file type is entered in the "Extension" column. The corresponding application name or application type (such as imaging) is entered in the "Application" column. The file path of the launch application is entered in the "ToLaunch" column. The internal command for printing from the application and the internal command for closing the application can be entered in the "ToPrint" column and the "ToClose" column respectively. The file type mapping information corresponding to the specified row can be deleted by marking the corresponding check box in the delete column and activating the delete button 329.
The activation of the configuration label 240 enables the administrator to update and configure the installation operation of the print server without a driver. As shown in FIG. 16, the activation of the configuration tag loads a Web page 330 that provides three additional tags, including: an update tag 332, an extension tag 334, and a job total server tag 335. Activation of the extension tag 334 can run the extension Web page corresponding to the Web page 330.
When a file is submitted for printing, the driverless print server opens the application corresponding to the file type of the file. For example, if the file has a .doc extension, the MS Word application will usually be opened. Then, the application opens the file and sends the submitted file to the selected printer through its built-in print command. The extension Web page (ie Web page 330) displays many lines (entries) that list the file type information (in the "Extension" column) and the software application corresponding to the file type (in the "Application Name (Application Name) column). Each entry also displays: the priority of the extension (used to define a sequence, according to this order, the file types with the same extension are evaluated to determine the corresponding application for each submitted file) ;Registry Location (Registry Location), which is used to identify the location where information about the application is stored in the OS registry; the default path of the application (DefaultPath); the executable name of the application (Executable Name); and the internal code used to print and close the application. The administrator can add a new file type by activating the "add new entry" button 336, which will reproduce a Web page (not shown) with corresponding edit controls for each column in the Web page 330. In response to the activation of the "Update File Type" button 338, a similar Web page will be reproduced, and only in this case will the edit control be filled with values for the selected file type to be updated. The update of the file type can also be initiated by activating the "edit" 340 button. As previously mentioned, navigation between records is initiated by a set of navigation controls 342.
The driverless print server uses the extension table corresponding to the file type value to determine which applications installed on the server computer are used to print files of each file type listed in the extension table. The information in this table is also used to determine the location of the executable file on the server computer. In one embodiment, the extension table, various other configurations, and print job data are all maintained in a database. Typically, those skilled in the art will recognize that these databases will be hosted on the same machine hosting the DPS software, although discrete machines can also be used to host the databases.
Processing a print request FIG. 17 shows a data flow diagram illustrating the data flow and operations performed by the DPS system software component in response to the print request. Initially, the user of the originating device 350 will enter the URL of the driverless print server Web site (or intranet site, if available) in the originating device browser to load the consumer user's print Web page (For example, the consumer web page 130 of Figure 3). Next, the user will enter appropriate information for printing documents, images, or web pages as described above. The input information will be activated by ASP controls or similar mechanisms (for example, javascript, Vbscript, etc.), these controls or similar mechanisms are included in the consumer Web pages served by the system's Web server components, as depicted by the Web server 353 . The user input data as depicted by the user input 352 is received via the Web server 353 and initially processed by the print request CGI script 196, which generates a tmpdoc.dpsn document 354 containing the print parameters and other data corresponding to the request. Next, the Tmpdoc.dpsn document is sent to the job queue 356 via the print request CGI script. In one embodiment, the job queue includes a first-in first-out (FIFO) type job queue. Alternatively, as recognized by those skilled in the art, other types of job queues can also be used. As described above, the job queue operation is executed by the job processing component 220.
The job queue submits job requests that will be processed by the system. Each request is processed by block 358, in which the Tmpdoc.dpsn file is parsed to obtain print job parameters corresponding to the print request, and the print job parameters are stored in the document file 360. For example, the parsed information may include: printer selection, number of copies, consumer user identity, document name, and so on. Next, some print job parameters are stored in the DPS database 386.
In the decision block 362, it is determined what type of document is requested for printing, such as an application file, an image, or a Web page URL. If the document is a browsable document, such as a web page, image, or PDF file, the logic flows to block 364, where the web page, image, or PDF document is loaded via the browser of the driverless print server . Otherwise, the logic flows to module 366, where the document and the corresponding auxiliary application that can be used to print the document are loaded. For example, if the document includes an MS Excel spreadsheet, an instance of the MS Excel application program is loaded along with the Excel document. In block 368, an internal command is generated to simulate a user requesting a printing operation to request that the browser or auxiliary application should print the URL, image or document. For example, most applications provide a File->Print menu option, which initiates the printing process of the application.
In response to printing requests from internal applications or browsers, various printing and document information are internally transmitted to the following operating system components, which manipulate the operation of the printer. As mentioned above, in one embodiment, the driverless print server operates under the MS WindowsOS environment. Thus, the above environment provides an OS printing subsystem 369, which includes a graphics device interface (GDI) component 370 that can interact with the printer device driver 372 corresponding to the selected printer to generate an appropriate printer ( That is, the output device) data, which will be sent to the target printer 374 to produce an output document. The printer data is internally processed by the MSWindows print spool component 376, which outputs the print spool file received by the port monitor 114. In the illustrated example, it is assumed that the target printer 374 includes a PostScript printer. Therefore, the port monitor 114 outputs the PostScript file 378.
While the above operations are in progress, the user of the originating device 350 may choose to preview the simulated printout of the document, image or Web page before printing the source document. In decision block 380, it is determined whether the user has requested a preview printer output. If the answer is yes (true), in one embodiment, an instance of Adobe Acrobat Distiller 382 is run, and the instance is used to generate a document 384 in Adobe Portable Document Format (PDF). Next, the PDF document is processed by the preview CGI script 200, which sends the document back to the originating device 350 via the Web server 353, where it is reproduced on the browser running on the originating device via the Adobe PDF plug-in The document. The rendered display (not shown) will provide a preview of what the printed document will look like, and will also include user interface (UI) controls that will enable the consumer user to choose to print the document or cancel the document.
If the consumer user wants to print the document, a print notification is sent back to the Web server 353, where the preview CGI script 200 processes the print notification. In response to receiving the print notification, the preview CGI script 200 turns on the status monitor 116 and submits the print document 378 to the target printer 374. Along with this event, the job history information is updated in the DPS database 386.
If the consumer user does not select the print preview option, the answer to decision block 380 is no (false), which will cause the status monitor 116 to start and submit a print document 374 to the target printer 374. During the printing process, the status monitor 116 monitors the progress of the process and updates the DPS database 386. The status CGI script 204 is used to provide Web page printing status information by obtaining progress information from the database and generating appropriate HTML, so that the progress information is displayed in the Web page, as shown in the Web page 166 of FIG. 5.
In one embodiment, the driverless print server supports direct printing of printer files. For example, if the print job file includes a printer file, if the file matches the printer file type of the target printer, it can be printed directly. For example, PostScript files can be printed on PostScript printers. Similarly, printer files for other types of printers can be created in advance by selecting the "save to file" option during the printing process. If it is determined in decision block 362 that the file is a printer file, then the logic flow proceeds to block 367 where the printer file (represented by printer file 369) is sent directly to the Windows print spooler 376.
A further detailed description of the internal operation of the driverless print server software 46 is shown in FIG. 18. As described above, the consumer user operating the originating device 350 requests to print a document or image file or a Web page via the consumer Web pages 130 and 154, respectively. In response to activation of the "Instant Print" button on the appropriate consumer Web page, the user input data is processed by the print request CGI script 196, which creates the Tmpdoc.dpsn document 354. The print request CGI script also pipelines the message containing the print request to the new job pipeline server 390, and the new job pipeline server 390 stores these messages in the message queue 392. For each print request message, the message queue manipulator 394 starts a corresponding thread, and the thread parses the corresponding tmpdoc.dpsn document 354, thereby generating a document file 360 and submitting a print job to the job queue 356.
As depicted by the start job queue loop block 396 and the end job queue loop block 397, for print jobs, the following operations and logic shown between the end of these loops are executed. First, in block 398, the next job is taken from the job queue 356. In the decision block 400, it is determined which type of document the print job corresponds to. If the document is an application file, the logic proceeds to decision block 402 where it is determined which type of file type printing method should be used. If the file requires an auxiliary application (such as MS Word, MS Excel, AutoCad, etc.), the logic proceeds to block 366 where the document and the appropriate auxiliary application are loaded as described above. Once the file is loaded in the auxiliary application, as previously described, a file printing command is generated internally in block 368, thereby submitting the file for printing by the OS.
Next, in the decision block 404, it is determined whether a "completed" message has been received from the port monitor 114. This judgment is performed periodically or through a software interrupt mechanism until the "completed" message has been received. Next, at block 406, the status monitor 116 is turned on. The status monitor will send the print document 378 to the target printer 374 and update the job history data in the DPS database 386 as previously described.
Now return to the judgment blocks 400 and 402. If the document type is a Web page, or a file type that can be directly printed by a print server computer without a driver without auxiliary applications (such as PIF documents or various types) Image file), the logic proceeds to block 364, where the browser of the DPS computer is navigated to the URL of the Web page, or otherwise the browser is used to reproduce the PDF file or image file. Once reproduced, the remaining printing operations are performed as described above, starting with block 368. As described above, if the document type is a printer file, the document is sent directly to the Windows print spooler 376.
In FIG. 19, a flow detailing the logic and operation provided by the handle window component 224 is shown. As shown in the start block 450 in FIG. 17, at the beginning of the decision block 362 and immediately after the print action has been called in block 368, the handle window thread is run. As mentioned above, the handle window component is used to handle various dialog boxes and message boxes. These dialog boxes and message boxes can be used when loading the application, loading the document into the application, when the printing action is started, and during the printing process. run.
Returning to the flowchart of FIG. 19, when the handle window thread is running, it judges at block 452 whether there are more desktop windows to check. The above-mentioned window usually includes a dialog box and a message box. If there are no more windows to check, then the thread ends, as depicted by "endthread" and end block 454. If there are more windows to check, the logic proceeds to block 456 where the window information of the window is obtained. Under MS Windows operating system, window information can be obtained by making corresponding Windows API calls.
Next, in the decision block 458, it is determined whether the window is a child window of the application program being reproduced (that is, whether it is generated by the auxiliary application program or the browser). If the judgment is no, then the window does not match the application being reproduced, and the logic proceeds to decision block 452 to evaluate the next window. If the answer of the decision block 458 is yes (true), the logic proceeds to block 460 where the text and control buttons of the window are checked.
As the judgment made in judgment block 462, if the text matches the standard message string, the logic proceeds to block 464, in which a window close command is provided internally to simulate the user's activation of the close button on the window or to simulate the user Activate the window close icon in the window frame. Then, the logic returns to decision block 452 to process the next window.
If the text does not match the standard message string, the answer to decision block 462 is no (false), and the logic proceeds to decision block 466, where it is determined whether the text matches the corresponding entry list MessageText value, The MessageText value of the item list is stored in the handle window table 470 in the DPS database 386. If there is a matching value, the logic proceeds to block 468, in which the table command is executed by fetching the data in the matching MessageText value line and sending a corresponding message to the Windows API according to the parameters provided by the data. For example, at the top of Figure 472, row 472 of a typical list of entries is shown. This line includes information related to the Windows API, including: Mes sageID, Wparam and Lparam values. These parameters are used to call the corresponding API to complete the operations required to manipulate the window. Once the table command is executed, or if the answer to decision block 466 is no (false), then the logic returns to decision block 452 to begin processing the next window.
In the above description and drawings, the following embodiments of the present invention are disclosed, which implement software operations provided by MS Windows operating system components. This is not intended to be limited to this, because the principles and teachings of the present invention can also be applied to implementations using other operating systems, such as UNIX-based operating systems and LINUX-based operating systems. For example, various UNIX and LINUX operating systems provide graphical user interfaces, application APIs, and printing capabilities supported by OS kernel components. These OS kernel components are provided with MSWindows printing support components (such as Windows GDI, Print spooler, printer driver, etc.) similar operations.
Exemplary file server computer system With reference to FIG. 20, an example of a general conventional computer server 500, which is suitable for use in conjunction with the implementation of the present invention, and it can be used for DPS server computers and Web server computers, one of which is an independent computer for execution Web server operation. Examples of computer systems that can be suitable for these purposes include: computer servers running Microsoft Window, UNIX-based, and LINUX-based operating systems.
As is well known by those of ordinary skill in the art, the computer server 500 includes a chassis 502, in which a motherboard (not shown) is installed, and a corresponding integrated circuit is assembled on the motherboard, including one or more processors 504 and memories (such as DIMM or SIMM) 506. A monitor 508 is also included for displaying graphics and text generated by software programs and program modules run by the computer server. The mouse 510 (or other pointing device) can be connected to the serial port (or bus port, or USB port) on the back of the chassis 502, and the signal from the mouse 510 is transmitted to the motherboard to control the cursor on the display and select text , Menu options and graphic components, which are all displayed on the monitor 508 through software programs and modules executed on the computer. In addition, the keyboard 512 is connected to the main board to allow the user to input text and commands. These texts and commands will affect the operation of the software programs being executed on the computer. The computer server 500 also includes a network interface card (NIC) 514 or an equivalent circuit built into the motherboard to enable the server to send and receive data via the network 516.
The file system memory conforming to the present invention can be implemented by multiple hard disks 518 stored internally in the chassis 502, and/or implemented by multiple hard disks stored in the external disk array 520, and can be implemented by a SCSI card built into the motherboard. 522 or equivalent SCSI circuit to access the disk array. Alternatively, a Fibre Channel link using a suitable Fibre Channel interface card (not shown) or built-in circuitry may be used to access the disk array 520.
The computer server 500 may generally include a CD-ROM drive 524, into which a CD-ROM disc can be inserted, so that the executable files and data on the disc can be read and transmitted to the memory 506 and/or Among the storage on the hard disk 518. Likewise, for this purpose, a floppy disk drive 526 may be provided. Other mass storage devices such as optical recording media or DVD drives may also be included. Machine instructions including software programs, components, and modules that enable the processor 504 to implement the above-mentioned operations of the present invention. Before they are loaded into the memory 506 and executed by the processor 504, these machine instructions are typically distributed in It is stored on a floppy disk 528 or CD-ROM 530 (or other storage medium) and on one or more hard disks 518. Alternatively, these machine instructions may be loaded via the network 516 as a carrier file.
Although the present invention has been described in conjunction with the preferred form of implementing the present invention and the modifications therein, those skilled in the art will understand that many other modifications can be made to the present invention within the scope of the following claims. Therefore, it does not mean that the scope of any mode of the present invention should be limited by the above description, but the protection scope should be determined as a whole by referring to the following claims.
20 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US8610927B2 | Cited by | United States of America | Applicant |
| US8675215B2 | Cited by | United States of America | Applicant |
| CN100363883C | Cited by | China | Search report |
| CN106161069A | Cited by | China | Search report |
| CN113360099A | Cited by | China | Search report |
| CN107092448A | Cited by | China | Search report |
| CN110489065A | Cited by | China | Search report |
| US8891115B2 | Cited by | United States of America | Applicant |
| CN110427162A | Cited by | China | Search report |
| US9298401B2 | Cited by | United States of America | Applicant |
| CN113791743A | Cited by | China | Search report |
| CN104679459A | Cited by | China | Search report |
| US8610928B2 | Cited by | United States of America | Applicant |
| CN110399105A | Cited by | China | Search report |
| CN101444007A | Cited by | China | Search report |
| CN111845143A | Cited by | China | Search report |
| US10681151B2 | Cited by | United States of America | Applicant |
| CN113254976A | Cited by | China | Search report |
| CN111552443A | Cited by | China | Search report |
| CN104516693A | Cited by | China | Search report |
| CN113434100A | Cited by | China | Search report |
38 members in 8 offices
Priority claims10
| Document | Office | Kind | Date |
|---|---|---|---|
| 27783101 | United States of America | P | |
| 27783101 | United States of America | P | |
| 60277831 | United States of America | – | |
| 10098832 | United States of America | – | |
| 9883202 | United States of America | A | |
| 9883202 | United States of America | A | |
| 10098832 | – | – | – |
| 60277831 | – | – | – |
| US20010277831P | – | – | – |
| US20020098832 | – | – | – |
Members38
| Document | Office | Kind | |
|---|---|---|---|
| US2002138564A1 | United States of America | A1 | |
| WO02076175A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU2002247382A1 | Australia | A1 | |
| WO02076175A9 | World Intellectual Property Organization (WIPO) | A9 | |
| WO03019389A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO03019403A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO02076175A3 | World Intellectual Property Organization (WIPO) | A3 | |
| US2003078965A1 | United States of America | A1 | |
| US2003079030A1 | United States of America | A1 | |
| US2003182378A1 | United States of America | A1 | |
| WO03081524A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU2002308678A1 | Australia | A1 | |
| WO03019403A3 | World Intellectual Property Organization (WIPO) | A3 | |
| EP1380194A2 | European Patent Office (EPO) | A2 | |
| KR20040029438A | Republic of Korea | A | |
| KR20040039304A | Republic of Korea | A | |
| TW588245B | Taiwan Province of China | B | |
| EP1428129A1 | European Patent Office (EPO) | A1 | |
| EP1428134A2 | European Patent Office (EPO) | A2 | |
| KR20040058105A | Republic of Korea | A | |
| CN1537298AThis record | China | A | |
| JP2004535618A | Japan | A | |
| EP1490829A1 | European Patent Office (EPO) | A1 | |
| JP2005501341A | Japan | A | |
| CN1575458A | China | A | |
| CN1575460A | China | A | |
| JP2005521166A | Japan | A | |
| JP2005523489A | Japan | A | |
| US6993562B2 | United States of America | B2 | |
| US2006294251A1 | United States of America | A1 | |
| US2007022180A1 | United States of America | A1 | |
| CN1307565C | China | C | |
| US2007168514A1 | United States of America | A1 | |
| JP4202272B2 | Japan | B2 | |
| EP1490829A4 | European Patent Office (EPO) | A4 | |
| US8019829B2 | United States of America | B2 | |
| US8024398B2 | United States of America | B2 | |
| US8065357B2 | United States of America | B2 |
3 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Deemed withdrawal of patent application after publication (patent law 2001)C02 | C02 | |
| Entry into substantive examinationC10 | C10 | |
| PublicationC06 | C06 |
Numbers
- Publication
- 1537298
- Publication, DOCDB
- 1537298
- Publication, EPODOC
- CN1537298
- Application
- 28102576
- Application, DOCDB
- 02810257
- Application, EPODOC
- CN2002810257
Titles2
- Chinese
- 用于经由打印服务器通过网络进行打印的系统和方法
- English
- System and method for printing through a network via a print server
Classification
- CPC, 21
- H04N1/00416
- G06F3/12
- H04N1/00424
- H04N1/00427
- H04N1/00432
- H04N1/32767
- H04W4/00
- H04L67/306
- H04L67/04
- H04L67/02
- H04L69/329
- H04L67/10015
- H04L67/59
- H04L67/53
- H04L67/1001
- H04L67/51
- H04L67/55
- H04L51/10
- G06K15/00
- H04L51/00
- H04L9/40
- IPC, 7
- B41J29 38
- G06F3 12
- H04L12 28
- H04L12 56
- H04L12 58
- H04L29 06
- H04L29 08