An information processing apparatus includes a printer driver configured to generate a print command compliant with a predetermined printing protocol based on print data obtained from a data generation application, one or more extension modules configured to generate a print command compliant with another printing protocol different from the predetermined printing protocol, a storage unit configured to store information associating the one or more extension modules to be used for generating the print command compliant with said another printing protocol with the printer driver, and an output unit configured to output the print command compliant with said another printing protocol, the print command being obtained through processing of the print data obtained by the printer driver, and the processing being performed by the one or more modules indicated by the information.
Legal claims defining the scope of protection, as filed with the USPTO.
a storage that stores a computer program configured to be executed by one or more processors of the information processing apparatus having a driver corresponding to a plurality of printers of a plurality of vendors, the computer program being different from the driver and the computer program not being included in the driver; and a controller that converts print data of a first type of page description language to print data of a second type of page description language interpretable by a printing apparatus, the print data of the first type of page description language being output by the driver based on a print setting received from a user via a standard print setting screen provided by an operating system of the information processing apparatus, the print data of the first type of page description language being converted to the print data of the second type of page description language based on a printer vendor specific print setting received from the user via an extended print setting screen displayed by executing the computer program. . An information processing apparatus comprising:
display an extended print setting screen; and convert print data of a first type of page description language to print data of a second type of page description language interpretable by a printing apparatus, the print data of the first type of page description language being output by the driver based on a print setting received from a user via a standard print setting screen provided by an operating system of the information processing apparatus, the print data of the first type of page description language being converted to the print data of the second type of page description language based on a printer vendor specific print setting received from the user via the extended print setting screen. . A non-transitory computer-readable storage medium storing a computer program configured to be executed by one or more processors of an information processing apparatus having a driver corresponding to a plurality of printers of a plurality of vendors, the computer program being different from the driver and the computer program not being included in the driver, the computer program, when executed by the one or more processors, causing the information processing apparatus to:
claim 2 . The non-transitory computer-readable storage medium according to, wherein the print setting is a two-sided print setting.
claim 2 . The non-transitory computer-readable storage medium according to, wherein the print setting is a color print setting.
claim 2 . The non-transitory computer-readable storage medium according to, wherein the print data of the first type of page description language is print data that is compliant with Internet Printing Protocol.
claim 2 . The non-transitory computer-readable storage medium according to, wherein the driver converts data generated by a data generation application to the print data of the first type of page description language based on the print setting received from the user via the standard print setting screen provided by the operating system of the information processing apparatus.
claim 2 . The non-transitory computer-readable storage medium according to, wherein the printer vendor specific print setting is a binding setting.
claim 2 . The non-transitory computer-readable storage medium according to, wherein the printer vendor specific print setting is a binding setting for binding sheets without a staple.
claim 2 . The non-transitory computer-readable storage medium according to, wherein the printer vendor specific print setting is a box print setting for printing print data stored in a predetermined storage area in the printing apparatus.
displaying an extended print setting screen; and converting print data of a first type of page description language to print data of a second type of page description language interpretable by a printing apparatus, the print data of the first type of page description language being output by the driver based on a print setting received from a user via a standard print setting screen provided by an operating system of the information processing apparatus, the print data of the first type of page description language being converted to the print data of the second type of page description language based on a printer vendor specific print setting received from the user via the extended print setting screen. . A control method for controlling an information processing apparatus that stores a computer program configured to be executed by one or more processors of the information processing apparatus having a driver corresponding to a plurality of printers of a plurality of vendors, the computer program being different from the driver and the computer program not being included in the driver, the control method comprising:
Complete technical specification and implementation details from the patent document.
This application is a Continuation of U.S. patent application Ser. No. 18/888,007, filed Sep. 17, 2024, which is a Continuation of U.S. patent application Ser. No. 18/059,740, filed Nov. 29, 2022, now U.S. Pat. No. 12,112,084, which is a Continuation of U.S. patent application Ser. No. 16/568,080, filed Sep. 11, 2019, now U.S. Pat. No. 11,531,507, which claims the benefit of Japanese Patent Application No. 2018-172655, filed Sep. 14, 2018, all of which are hereby incorporated by reference herein in their entirety.
The present disclosure relates to an information processing apparatus for generating a print command, a method for controlling the information processing apparatus, and a storage medium.
Configurations for transmitting a print job to a printing apparatus by using a printer driver have been commonly known. An operating system (OS) that is basic software is installed on an information processing apparatus, and the printer driver is configured based on a printing architecture defined by the OS and is called by the OS for operation. Vendors providing printing apparatuses provide printer drivers conforming to OS specifications. The OS and the printer drivers cooperate to provide a function of performing printing by using the printing apparatuses.
As a printer driver in using Microsoft® Windows® 8.1 or later versions as the OS, there is an architecture called version 4 (V4) printer driver. The V4 printer driver enables vendors providing printing apparatuses to provide dedicated applications for assisting printer driver functions. Such applications are called Universal Windows Platform (UWP) device apps. UWP device apps can be obtained from a store application (Windows Store application (WSA)) and installed on information processing apparatuses. The V4 printer driver can be linked with printer extensions that are print setting applications for making vendor-specific print settings.
A printer driver called universal printer driver has heretofore been known as a printer driver for controlling a plurality of types of printing apparatuses having different functions (Japanese Patent Application Laid-Open No. 2009-301312). This printer driver can generate print jobs by appropriately processing data into drawing data for respective printing apparatuses model by model.
Universal printer drivers such as one discussed in Japanese Patent Application Laid-Open No. 2009-301312 are typically provided by respective vendors. A universal printer driver can therefore support a plurality of types of printing apparatuses provided by the same vendor. It is difficult, however, for a universal printer driver to support printing apparatuses provided by different vendors. The number of types of formats of page description language (PDL) supported by a universal printer driver is one or at most two. By contrast, PDL formats supported by vendors have been independently developed by the vendors, and there are a large variety of PDL formats to maximize the features of the printing apparatuses. Some printing apparatuses only accept a certain PDL data format. Transmitting data in other formats can cause an error or lead to printing of data different from instructions.
Under the circumstances, the use of mechanisms compliant with the Internet Printing Protocol (IPP), typified by IPP Everywhere®, has been being examining. In other words, the provision of a common printer driver or print client using the IPP is considered. IPP Everywhere is a printing protocol for enabling printing by various printing apparatuses irrespective of vendors.
For example, Ubuntu® 17.04 includes, as one of its default OS functions, a mechanism for transmitting a print job to a printing apparatus supporting IPP Everywhere®.
A common printer driver compliant with such a printing protocol as the IPP is unable to use functions independently provided by vendors, or properly output vendor-specific PDL data.
According to embodiments of the present disclosure, an information processing apparatus includes a printer driver configured to generate a print command compliant with a predetermined printing protocol based on print data obtained from a data generation application, one or more extension modules configured to generate a print command compliant with another printing protocol different from the predetermined printing protocol, a storage unit configured to store information associating the one or more extension modules to be used for generating the print command compliant with said another printing protocol with the printer driver, and an output unit configured to output the print command compliant with said another printing protocol, the print command being obtained through processing of the print data obtained by the printer driver, and the processing being performed by the one or more modules indicated by the information.
Further features of the present disclosure will become apparent from the following description of exemplary embodiments with reference to the attached drawings.
Exemplary embodiments are described below with reference to the drawings. The following exemplary embodiments are not intended to limit the invention set forth in the claims. In some embodiments, all combinations of features described in the exemplary embodiments are not necessarily included.
1 FIG. 100 200 200 100 200 200 300 a c a c A first exemplary embodiment of the present disclosure will be described below. A configuration of a printing system according to the present exemplary embodiment will initially be described with reference to. The printing system according to the present exemplary embodiment includes computersand printersto. The computersand printerstoare mutually communicably connected on a network. The communication between the devices may be implemented via a wireless network or via a wired network. In the case of communication via a wireless network, wireless communication via an access point compliant with the Institute of Electrical and Electronics Engineers (IEEE) 802.11 may be used. Direct wireless communication such as Wi-Fi Direct® may be used. In the present exemplary embodiment, the foregoing configuration is described as an example of the printing system. However, this is not restrictive. One or more communication apparatuses and one or more printing apparatuses can be communicably connected via a network.
200 200 a c In the present exemplary embodiment, the single-function printerstoare described as examples of printing apparatuses that receive a print job and print an image on a sheet. However, this is not restrictive. Apparatuses such as a multifunction peripheral (MFP) having a print function and a scan function may be used.
200 200 200 200 100 a c a c The present exemplary embodiment deals with a case where the printerstoare ones manufactured by different vendors. The printerstoreceive a print job (print commands) compliant with the Internet Printing Protocol (IPP) from a computer, and print an image on a sheet based on the print job.
200 200 200 200 200 200 200 200 a c a a b b c c The printerstoalso have a function of receiving and interpreting a print job in different format than the IPP. For example, the printercan interpret a print job including page description language (PDL) data compliant with a laser beam printer (LBP) Image Processing System (LIPS®) format. The printercan further interpret a print job including PDL data compliant with a Printer Command Language (PCL®) format. The LIPS format is also referred to as an Ultra Fast Rendering (UFR®) format. The printercan interpret a print job including PDL data compliant with the PCL format. The printerdoes not support print jobs in the LIPS (UFR) format. The printeris an inkjet printer and can interpret a print job compliant with Epson Standard Code for Printer (ESC/P®. The printerdoes not support print jobs in the PCL format or the LIPS format.
200 200 200 200 200 200 a c a c a c As described above, printers from different vendors (manufacturers) support different types of PDLs. The same printer may support different functions depending on the type of PDL in use. The types of PDLs interpretable by the printerstoare merely examples. Aside from the PCL, LIPS, and ESC/P formats, PDL formats interpretable by the printerstomay include a Refined Printing Command Stream (RPCS®) format. PostScript® and Advanced Rendering Tools (ART) formats may be used. A Sharp Printer Description Language 2 (SPDL2) format may be used. Derivative formats based on the foregoing PDLs may be used. The printerstoshall each support at least one of the foregoing PDL formats or derivative PDL formats based on the foregoing PDL formats.
100 100 Next, the computersthat are examples of information processing apparatuses will be described. In the present exemplary embodiment, the computersare described to be personal computers (PCs). However, this is not restrictive. Terminals such as a tablet terminal and a wearable computer including a head-mounted display and a built-in computer may be used.
100 200 200 300 100 200 200 a c a c. The computerscan mutually communicate with the printerstoon the network. The computerscan generate a print job based on data to be printed, and transmit the print job to the printersto
100 100 2 FIG. 2 FIG. A hardware configuration of the computerswill be described with reference to.is a block diagram illustrating an example of the hardware configuration of a computer.
101 120 120 1021 1022 105 120 107 120 103 104 106 300 A central processing unit (CPU)is a processor that controls operation of an entire control unit. The control unitincludes memories, such as a read only memory (ROM), a random access memory (RAM), and a storage. The components of the control unitare connected by a system bus. The control unitalso includes an input interface (I/F)and an output I/Ffor connecting input/output devices, and a communication I/Ffor communicating with external apparatuses via the network.
1022 1022 1021 105 The RAMis a volatile memory. The RAMis used as a work area and a temporary storage area for loading various control programs stored in the ROMand the storage.
1021 100 105 1022 105 1053 100 1051 1053 105 1054 1052 1052 1054 1052 1052 1052 200 200 a c a c a c The ROMis a nonvolatile memory, and stores a boot program of the computer. The storageis a nonvolatile flash memory or hard disk drive (HDD) having a large capacity compared to the RAM. The storagestores an operating system (OS)for controlling the entire computer, and programs of various applicationsto run on the OS. The storagealso stores a common printer driverthat generates a print job compliant with a predetermined printing protocol, such as the IPP, and programs of setting applicationstothat cooperate with the common printer driver. Hereinafter, the setting applicationstomay be referred to collectively as setting applications. The predetermined printing protocol defines the common format of print commands that the printerstocan execute.
1051 1052 100 300 Various applications including the applicationsand the setting applicationscan be installed on the computervia a Compact Disc Read-Only Memory (CD-ROM), a Universal Serial Bus (USB) memory, or the network.
101 1053 1051 1022 100 101 1021 1022 105 The CPUexecutes the programs of the OSand various applicationsloaded in the RAMto control the computer. The pieces of hardware including the CPU, the ROM, the RAM, and the storagethus constitute a computer.
100 101 While the computersare described so that a single CPUperforms processing illustrated in flowcharts to be described below, other configurations may be employed. For example, a plurality of processors may perform the processing illustrated in the flowcharts to be described below in a cooperative manner.
103 120 108 109 108 109 104 120 110 110 100 100 The input I/Fconnects the control unitwith a keyboardand a pointing device. The keyboardand the pointing devicefunction as an acceptance unit for accepting a user's instructions. The acceptance unit can detect selection of a display item, such as a key displayed on-screen. The output I/Fconnects the control unitto a monitorthat displays information. The monitorfunctions as a display unit for displaying information. If the computeris a tablet terminal, information is displayed to the user and operations are accepted from the user via a touch panel display serving both as the acceptance unit and the display unit. In such a case, the user can input desired operation instructions to the computerby making touch operations with an object such as a finger.
106 300 The communication I/Fis an I/F for communicating with external apparatuses such as a printing apparatus on the networkand a cloud server.
100 3 3 4 FIGS.A,B, and Next, an example of a software configuration of the computersaccording to the present exemplary embodiment will be described with reference to.
100 3 3 FIGS.A andB An overall outline of data processing by software modules in a computerwill initially be described with reference to.
3 FIG.A 3 FIG.A 1053 1053 100 Each module illustrated inruns on the OS, which is not illustrated in. The OSis system software for controlling the entire computer. A case where Windows® 10 or later OS is installed will be described as an example.
301 302 301 302 Data generation applicationsandgenerate print data based on user operations, and output the print data. Examples of the data generation applicationsandinclude a document generation application and an image generation application.
301 302 108 109 The user operates the data generation applicationorby using input devices such as the keyboardand the pointing devicetypified by a touch panel and a mouse.
301 301 301 In the present exemplary embodiment, the data generation applicationis a Graphics Device Interface (GDI) application that performs printing by using a GDI, graphics component, for generating a print image. Examples of the data generation applicationinclude a “Win32/64 application” and a “.NET application”. The data generation applicationoutputs GDI drawing data as print data.
302 1053 302 301 The data generation applicationis an extension application running on the OS. Examples of the data generation applicationinclude a Universal Windows Platform (UWP) application. UWP applications are applications distributed through Windows® Store, and run in an execution environment different from that of the data generation application. Examples of the different execution environment include an individual sandbox environment (virtual environment).
302 302 In the following example, the data generation applicationis described to generate Extensible Markup Language (XML) Paper Specification (XPS) data as print data. However, this is not restrictive. The data generation applicationmay generate print data in a data format other than XPS.
301 302 The foregoing data generation applicationsandare merely examples. Any data generation application that outputs print data to a printer driver can be used.
307 301 307 1053 A conversion moduleconverts the GDI drawing data output from the data generation applicationthat is a GDI application into XPS data. In the present exemplary embodiment, the conversion moduleis configured as one of the modules of the OS.
306 302 306 302 302 1053 302 The converted XPS data is spooled to a spool area. XPS data output from the data generation applicationis also spooled to the spool area. In the present exemplary embodiment, the data generation applicationis described to generate and output XPS data. However, this is not restrictive. The data generation applicationmay output data in a data format different from that of XPS data, and the OSmay generate an XPS file based on drawing commands from the data generation application.
1054 1055 306 The common printer driverand an extended printer drivergenerate a print job (print commands) based on the print data stored in the spool area.
1054 1051 1054 312 312 200 200 200 1054 1054 1053 1054 100 3 FIG.B a b c The common printer driveris a printer driver that generates print commands compliant with a predetermined printing protocol based on print data obtained from the applications. As illustrated in, the common printer driverincludes a print command generation unit (rendering filter). The print command generation unitis a print command generation module for converting data in XPS format into print commands compliant with the IPP. The IPP is a printing protocol that all the printers,, andfrom different vendors can interpret. The common printer drivermay include a plurality of print command generation units. The common printer drivermay be a class driver built in the OSas a standard function. The common printer drivermay be a universal printer driver that the user has separately installed on the computer.
3 FIG.B 3 FIG.B 1055 1055 1055 As illustrated in, the extended printer driverincludes print command generation units (rendering filters) 1 to 6 for converting data in XPS format into a print job compliant with printing protocols specific to respective printers. The print command (LIPS) generation module group, print command (PCL) generation module group, and print command (ESC/P) generation module group illustrated inmay be configured as respective independent extended printer drivers. An extended printer drivermay be configured to include more than one module group among the print command (LIPS) generation module group, print command (PCL) generation module group, and print command (ESC/P) generation module group.
200 200 200 200 200 a c a b c 3 FIG.B The print command generation units 1 to 6 are extension modules for generating print commands compliant with other printing protocols different from the predetermined printing protocol (IPP). The other printing protocols are ones defining the format of print commands executable by one of the plurality of printerstoand not executable by another. In the example of, the print command generation units 1 and 2 are used to generate a print job compliant with a specific printing protocol usable by the printer(e.g., LIPS (UFR) format). The print command generation units 3 to 5 are used to generate a print job compliant with a specific printing protocol usable by the printer(e.g., PCL format). The print command generation unit 6 is used to generate a print job compliant with a specific printing protocol usable by the printer(e.g., ESC/P format).
400 1054 1055 Filter pipeline configuration filesindicate the order in which modules used to generate a print job are called, among the one or more print command generation units included in the common printer driverand the one or more print command generation units included in the extended printer driver.
3 FIG.B 400 400 400 105 1021 illustrates a case where respective filter pipeline configuration filesfor LIPS-, PCL-, and ESC/P-supporting models are stored. However, a filter pipeline configuration filefor only one of the PDLs may be stored. The filter pipeline configuration file(s)is/are stored in a storage medium such as the storageor the ROM.
306 400 XPS data (XPS spool file) obtained from the spool areais processed by one or more print command generation units identified from the filter pipeline configuration files.
400 100 For example, the filter pipeline configuration filesspecify the print command generation units to perform processing so that the computercan output print jobs corresponding to the vendor-specific printing protocols.
400 312 312 312 200 a For example, assume that a filter pipeline configuration fileincludes settings so that the print command generation unitperforms processing and then the print command generation units 1 and 2 perform processing. In such a case, the job generation flow is as follows: The print command generation unitgenerates print commands compliant with the IPP based on the XPS spool file. The print command generation unitalso generates print attributes compliant with the IPP based on standard setting data, and adds the print attributes to the print commands to generate a print job. The print job is input to the print command generation unit 1. The data processed by the print command generation unit 1 is input to the print command generation unit 2. The print command generation unit 2 generates a print job compliant with the LIPS (UFR) format. In such a manner, a print job compliant with the printing protocol specific to the printer(LIPS (UFR) format) can be generated.
3 FIG.A 1054 1055 318 Return to the description of. The print job generated by the common printer driverand the extended printer driveris output to a print manager.
1054 1055 1052 1052 a c. The common printer driverand the extended printer driveraccept print settings made by the setting applicationsto
1052 1052 1052 1052 200 200 a c a c a c The setting applicationstoare print setting applications for making print settings specific to respective vendors. In the present exemplary embodiment, the setting applicationstoare print setting applications for making print settings specific to the printersto, respectively.
Examples of the print settings include a setting about the use of a stapleless binding function for binding a plurality of print pages without using a staple, and a setting about the use of a box print function for printing data stored in a predetermined storage area.
1054 1055 318 The common printer driverand the extended printer driveroutput a print job including the received print settings and generated print commands to the print manager.
318 200 318 1054 1055 200 319 The print managerobtains capability information about the printersand performs transmission control on a print job. The print managertransmits a print job received from the common printer driveror the extended printer driverto the intended printervia the communication unit.
100 1051 200 In such a manner, the computercan generate a print job based on the print data generated by the applicationsand output the print job to the printers.
200 312 1054 1055 With the foregoing configuration, a print job that the printerscan interpret irrespective of vendors can be generated by using the print command generation unitof the common printer driver. Print jobs compliant with the vendor-specific printing protocols can also be generated by using the print command generation units 1 to 6 of the extended printer driver.
100 3 FIG.C 3 3 FIGS.A andB Next, details of the data processing by the software modules of the computerwill be described with reference to. A description will be omitted of what has been described with reference to.
3 FIG.C 100 is a diagram illustrating an example of the software configuration of the computeraccording to the present exemplary embodiment.
1053 10531 1054 1055 10531 1054 1055 The OSprovides a printing architecturefor performing printing by using the printer driversand. The printing architectureis a version 4 (V4) printing architecture that converts spool data into print data (PDL) by using the printer driversand, with data of XPS format as the spool data.
1054 100 1054 1054 1053 100 The common printer driversupporting printers of a plurality of vendors is installed as a printer driver on the computer. In the present exemplary embodiment, the common printer driverprocesses print data compliant with a predetermined printing protocol (e.g., the IPP). The common printer drivermay be a class driver built in the OSas a standard function, or a universal printer driver that the user has separately installed on the computer.
10531 307 1054 318 319 1054 The printing architectureincludes the conversion module, the common printer driver, the print manager, and the communication unit. A printer driver or drivers different from the common printer driver(e.g., a model-dedicated printer driver provided by the vendor) may also be installed.
1054 301 302 10531 Print processing using the common printer driverwill initially be described. The data generation applicationsandgenerate print data (such as a document and an image) in cooperation with the printing architecture.
1051 1053 308 1054 308 200 309 308 303 304 200 If a print instruction is given via the applications, the OScalls a standard print setting unitof the common printer driver. The standard print setting unitrefers to a definition file corresponding to the selected printerin a definition file groupintended for standard print functions. Based on the definition file referred to, the standard print setting unitgenerates standard setting data (DEVMODEand PrintTicket) indicating the current print settings and PrintCapabilities indicating the print capabilities of the selected printer.
1051 1053 The standard setting data is modified as appropriate by the applicationsand/or via a screen (user interface) for changing the print settings, displayed by the OS.
309 200 309 200 3 FIG.C Definition files included in the definition file groupillustrated inindicate printer capabilities generated based on attribute information obtained from the printersduring an IPP printer search. The definition file groupstores different definition files for the respective printers.
200 105 1054 200 1054 200 318 319 Next, the generation of a definition file will be described. If no definition file corresponding to the selected printeris stored in the storage, the common printer driverinquires capability information from the printer. The common printer driverinquires the capability information of the printervia the print managerand the communication unit.
318 318 The print managercan perform a search for IPP-supporting printers and acquisition of printer capabilities, in addition to print job control functions to be described below. Specifically, the print managerobtains printer capabilities by printer attribute request operations (Get-Printer-Attributes Operations) defined in Request for Comments (RFC) 2911.
381 200 200 200 308 308 105 The print managerinitially transmits Get-Printer-Attributes Request to the printer. The attribute information (capability information) about the printeris obtained as a response to the request. Examples of the capability information about the printerobtained by printer attribute request operations include capability information about standard print settings, such as whether “two-sided printing” and “color printing” are supported. The capabilities (attributes) that can be obtained by printer attribute request operations are support information about the attributes defined by the IPP. Vendor-specific function information (such as information about a stapleless binding function and a box print function) is therefore unable to be obtained by IPP printer attribute request operations. The obtained attribute information is transferred to the standard print setting unit. The standard print setting unitgenerates a definition file based on the attribute information obtained by using the IPP, and stores the definition file in the storage.
1051 301 302 308 301 303 302 304 303 304 303 304 The applications(data generation applicationsand) obtain setting data of DEVMODE format and PrintTicket format, generated by the standard print setting unit. The data generation applicationuses binary DEVMODEas standard setting data indicating the current print settings. The data generation applicationuses PrintTicketwritten in XML markup language. The DEVMODEand PrintTicketare standard setting data for storing print settings to be reflected on a print job compliant with the IPP. The DEVMODEand PrintTicketare merely examples of standard setting data, and are not restrictive.
1053 1051 312 312 If issuance of a print instruction by the user is detected, the OSor the applicationsgenerate(s) an XPS spool file. The generated XPS spool file is delivered to the print command generation unit. The print command generation unitrenders and converts the received XPS spool file into PDL data compliant with the IPP. Examples of the PDL data compliant with the IPP include data of Portable Document Format (PDF) format and Printer Working Group (PWG)-Raster format.
312 304 304 200 1054 312 318 200 319 The print command generation unitfurther generates print attribute information compliant with the IPP based on settings specified by the PrintTicketincluded in the XPS spool file. If the PDL data compliant with the IPP and the PrintTicketare properly interpretable and the print job can be properly output, the print job may be transmitted to the printerwithout change. Specifically, the common printer drivertransmits the print job processed by the print command generation unitto the print managerso that the print job is transmitted to the printervia the communication unit.
200 1055 200 If the PDL data compliant with the IPP is not properly interpretable and the printeris unable to properly output the print job, the extended printer driverfor generating a print job that the printercan properly output is needed.
1055 200 The extended printer driveraccording to the present exemplary embodiment converts the PDL data compliant with the IPP into vendor-specific PDL data that the output printercan properly output.
400 1054 1055 The filter pipeline configuration filesserve as a manual that the common printer driverand the extended printer driverrefer to determine which print command generation units (hereinafter, may be referred to as rendering filters) to use in what manner.
1054 1055 Rendering filters are the minimum units of print processing. The common printer driverand the extended printer drivereach include one or more rendering filters.
4 4 4 FIGS.A,B, andC 400 400 10531 1054 1055 are diagrams for describing the filter pipeline configuration files. Each of the filter pipeline configuration filesis a file in XML format compliant with the rules defined by the printing architecture, and defines the order of rendering filters to be called, interfaces, and input and output formats. When calling rendering filters, the common printer driverand the extended printer drivercall the rendering filters in the defined order by using the defined interfaces.
4 FIG.A 400 400 400 a a illustrates a filter pipeline configuration file, which is an example of the filter pipeline configuration files. The filter pipeline configuration filedefines three rendering filters (print command generation units).
400 312 1054 1055 1055 a Specifically, the filter pipeline configuration filedefines that the print command generation unitof the common printer driveris the first to be called, the print command generation unit 1 of the extended printer driverthe next, and the print command generation unit 2 of the extended printer driverthe next.
4 FIG.A 4 FIG.A 4 FIG.A 312 1054 1055 1055 In, the print command generation unitof the common printer driveris represented as “XPS to PDF”. In, the print command generation unit 1 of the extended printer driveris represented as “Vendor Renderer PDL A”. In, the print command generation unit 2 of the extended printer driveris represented as “Vendor Renderer PDL B”.
1055 400 318 400 1055 200 a a The extended printer drivercalls the rendering filters in the order described in the filter pipeline configuration file, and transmits the final PDL data generated to the print manager. That is, when all the filter processing defined in the filter pipeline configuration fileis completed, the extended printer drivertransmits the generated vendor-specific PDL data and extended print setting information to the printeras a print job.
318 200 318 319 The print managerhaving received the PDL data generates a print job, and registers the generated print job in a queue. If the printerenters a printable state, the print managertransmits print jobs via the communication unitin the order of registration in the queue.
1052 1052 10531 1052 200 1054 The setting applicationsprovide the functions of displaying a preview of print data and displaying a user interface for prompting a change in print settings. The setting applicationsare applications running on a UWP platform different from the printing architecture. The setting applicationsare intended to enable more flexible use of the functions of the printersaccording to need, based on the IPP-based printing by the common printer driver.
1052 1052 10522 1052 a The setting applicationsrun in a sandboxed UWP execution environment. This can reduce an impact on the entire system if any setting applicationcauses a hang-up or error. In the present exemplary embodiment, a case is assumed where an extended print setting unitof the setting applicationis activated to add extended print settings to a print job. However, extended print settings do not necessarily need to be added.
1052 200 1052 200 1052 200 a a b b c c. A case where the setting applicationis installed as a setting application corresponding to the printerwill be described. Here, the setting applicationis described to be installed as one corresponding to the printer. The setting applicationis described to be installed as one corresponding to the printer
312 1052 320 The print command generation unitdetermines whether to activate the setting applicationsbased on the installation statuses of the extension applications and settings stored in a setting storage unit.
1052 10521 10522 10523 The setting applicationseach include a startup application unit, an extended print setting unit, and a communication unit.
10521 10521 10522 10523 The startup application unitis a module to be called at the time of printing. The startup application unitcontrols the activation and operation of the extended print setting unitand the communication unit.
10522 110 110 1051 The extended print setting unitdisplays an extended user interface on the monitor. The extended user interface is capable of more detailed print settings than the print settings compliant with the IPP. The extended user interface is displayed on the monitorat timing when the user gives an instruction to start print settings or a print preview instruction from the applications.
10523 200 1052 10523 200 The communication unitprovides function of performing communication with the printerto the modules of the setting application. The communication unitobtains information about the printerby using a specific communication method or specific control method.
200 10523 200 200 Examples of the specific communication method include the Web Services for Devices (WSD) protocol and the Simple Network Management Protocol (SNMP). Communication methods using vendor-specific protocols may be included. Information about the printercan also be obtained by using control commands defined in a job control language or printer control language. For example, the communication unitmay request information from the printerby using commands defined in Printer Job Language (PJL), PostScript, or Common Peripheral Controlling Architecture (CPCA). The Network Printing Alliance Protocol (NPAP) may be used to obtain information from the printer.
1055 1052 The print command generation units 1 to 6 of the extended printer drivercommunicate with the setting applicationsand obtain extended print settings as needed. The obtained extended print settings can be reflected on the vendor-specific PDL data.
1055 101 1021 105 1022 5 FIG. 5 FIG. Next, a method for installing the extended printer driverwill be described with reference to the flowchart of. The processing illustrated inis implemented by the CPUreading programs for implementing the respective control modules, stored in the ROMor the storage, into the RAMand executing the programs.
1055 1055 An installation package of the extended printer driverwill initially be described. The installation package of the extended printer driveruses the mechanism of an extension Setup Information (INF) file. An extension INF file refers to a file based on “extension INF” defined by Microsoft® Windows®. An extension INF file including the same identifiers (IDs) as the Hardware ID (HWID) and component ID (COID) described in a basic INF file is prepared to define modules to be added to a basic package. Installation using the extension INF file overwrites modules described in the basic INF file or installs additional modules.
6 FIG. 600 1055 600 6000 illustrates an example of a driver packagefor installing an LIPS-supporting extended printer driver. The driver packageincludes an extension INF file, a filter pipeline configuration file, and a print command generation module group.
6000 1054 The extension INF fileshows the HWID and COID of the corresponding basic INF file. The basic INF file is an INF file for the common printer driver.
1055 501 1053 A method for installing the extended printer driverby using the extension INF file will be described. In step S, the OSinitially determines whether the INF file to be installed is an extension INF file.
1055 501 502 502 1053 If the extended printer driverdetermines that the INF file to be installed is not an extension INF file (NO in step S), the processing proceeds to step S. In step S, the OSperforms normal INF installation.
1055 501 503 503 1053 1053 If the extended printer driverdetermines that the INF file to be installed is an extension INF file (YES in step S), the processing proceeds to step S. In step S, the OSchecks the HWID and COID. The OSsearches for a basic INF file defining the same HWID and COID as those described in the extension INF file.
504 If, as a result of the search, there is found no basic INF file defining the HWID and COID (NO in step S), the installation processing ends.
504 505 505 1053 If, as a result of the search, there is found a basic INF file defining the HWID and COID (YES in step S), the processing proceeds to step S. In step S, the OSperforms processing for extending the modules of the basic INF file with the modules of the print command generation unit 1 and 2.
600 1054 400 400 400 400 In the present exemplary embodiment, the filter pipeline configuration file included in the driver packageis stored in a location accessible to the common printer driver. If there already is a filter pipeline configuration file, the filter pipeline configuration fileis overwritten. Alternatively, a new filter pipeline configuration filemay be stored in addition to the existing filter pipeline configuration fileinstead of overwriting.
1055 The print command generation units 1 and 2 are stored in a location accessible to the extended printer driver. If vendor extension print processing unit modules (print command generation units) having the same names already exist in the storage location, the files are overwritten.
1055 100 The extended printer drivercan be installed on the computerthrough such a procedure.
6 FIG. 1055 1055 In the example of, the installation of an LIPS-supporting extended printer driverhas been described. However, an extended printer driversupporting a plurality of PDLs such as LIPS, PCL, and ESC/P may be installed.
100 100 101 1021 105 1022 1051 1053 1054 1055 7 FIG. 7 FIG. 7 FIG. A procedure for generating a print job by a computeraccording to the present exemplary embodiment will be described with reference to.is a flowchart illustrating control of the computer. The operations (steps) illustrated in the flowchart ofare implemented by the CPUreading the programs for implementing the respective control modules, stored in the ROMor the storage, into the RAMand executing the programs. Each process illustrated in the flowchart is implemented by cooperation of the modules and software components of the applications, the OS, the common printer driver, and the extended printer driver. Some of the processes, such as data transmission and information input/output, are implemented in cooperation with the I/Fs.
7 FIG. 200 1054 1055 The flowchart ofillustrates processing in a case where a printerthat the common printer driveris unable to support by itself is specified as the printer to be used, and in which the extended printer driverinstalled in advance is also used to generate a print job. Such processing is performed in response to acceptance of an instruction intended for printing from the user.
701 1051 1051 In step S, an applicationaccepts a print job generation command from the user. For example, the applicationaccepts the print job generation command based on pressing of a print button key.
702 1051 703 1053 301 1053 307 In step S, the applicationoutputs drawing data. In step S, the OSgenerates an XPS spool file based on the output drawing data. If the printing is originated by the data generation application, the OSgenerates the XPS spool file by using the conversion module.
704 1053 100 6000 100 1053 6 FIG. 3 FIG.B In step S, the OSdetermines whether extended print modules are installed on the computer. For example, if the extension INF fileis installed on the computer, the OScan determine that extended print modules are installed. In the example of, the extended print modules refer to the print command generation units 1 and 2. In the example of, the extended print modules refer to the print command generation units 1 to 6.
1053 704 705 705 312 1054 If the OSdetermines that no extended print module is installed (NO in step S), the processing proceeds to step S. In step S, the print command generation unitof the common printer driverprocesses the XPS spool file to generate print commands compliant with the IPP.
705 312 312 In step S, the print command generation unitconverts the XPS spool file into PDL data compliant with the IPP. The print command generation unitalso generates print settings (print attributes) compliant with the IPP based on standard settings representing print settings to be set in a print job.
1053 704 706 706 10531 200 If the OSdetermines that extended print modules are installed (YES in step S), the processing proceeds to step S. In step S, the printing architectureanalyzes the print job and identifies identification information about the printerto execute the print job.
707 10531 400 200 706 200 400 200 400 200 400 200 10531 400 400 In step S, the printing architectureperforms identification processing for identifying the filter pipeline configuration filecorresponding to the identification information about the printeridentified in step S. The identification information about the printerand the filter pipeline configuration filedo not need to be directly associated with each other. For example, the identification information about the printerand the filter pipeline configuration filemay be indirectly associated in such a manner that a printing protocol to be used is identified based on the identification information about the printer, and then a filter pipeline configuration filefor generating a print command corresponding to the identified printing protocol is identified. For example, if the specified printersupports LIPS, the printing architectureidentifies a filter pipeline configuration filethat specifies one or more print command generation units to be used to generate a print command compliant with the LIPS. In such a manner, the filter pipeline configuration fileto be referred to is identified based on the information indicating the format of print data that the printing apparatus to perform printing uses for print processing.
708 10531 400 707 400 708 705 705 10531 1054 400 400 200 100 400 100 In step S, the printing architecturedetermines whether a filter pipeline configuration fileto be referred to is identified in step S. If no filter pipeline configuration fileto be referred to is identified (NO in step S), the processing proceeds to step S. In step S, the printing architecturegenerates print commands by using the common printer driver. Examples of the case where no filter pipeline configuration fileto be referred to is identified include when the filter pipeline configuration filecorresponding to the printing protocol specific to the printerto perform printing is not stored in the computer. In such a case, i.e., if the filter pipeline configuration filefor generating print commands compliant with the format of print data that the printing apparatus to perform printing uses for print processing is not stored, the computeroutputs print commands compliant with a predetermined protocol.
400 10531 200 10531 If no filter pipeline configuration fileto be referred to is identified, the printing architecturemay issue a notification indicating that the printing by using the printing protocol specific to the printerspecified as the print destination will not be performed. Alternatively, the printing architecturemay issue a notification that printing will be performed by using the common printing protocol (such as the IPP).
400 707 708 709 709 10531 400 10531 400 If the filter pipeline configuration fileto be referred to is identified in step S(YES in step S), the processing proceeds to step S. In step S, the printing architecturegenerates print commands based on the identified filter pipeline configuration file. More specifically, the printing architecturegenerates print commands by using one or more print command generation units specified by the identified filter pipeline configuration filein the specified order.
400 312 1054 1055 a 4 FIG.A 4 FIG.A 4 FIG.A For example, if the filter pipeline configuration fileillustrated inis referred to, the print command generation unitof the common printer driverand the print command generation units 1 and 2 of the extended printer driverprocess the print data in such order. The print command generation unit 1 corresponds to “Vendor Renderer PDL A” in. The print command generation unit 2 corresponds to “Vendor Renderer PDL B” in.
312 312 The print command generation unitinitially generates print data compliant with the IPP. The print command generation unitalso generates print settings compliant with the IPP based on the standard settings representing the print settings to be set in a print job.
312 1054 1054 Next, the print data and the print settings generated by the print command generation unitare output to the print command generation unit 1. The print command generation units 1 and 2 can generate print commands compliant with another printing protocol based on the print commands that the common printer driverhas generated based on the predetermined printing protocol (such as the IPP). For example, the print command generation units 1 and 2 generate print commands corresponding to LIPS from the print data received from the common printer driver.
1052 200 200 312 1052 a a. The print command generation units 1 and 2 further obtains extended print settings from the setting applicationcorresponding to the specified printer. The print command generation units 1 and 2 generate print settings specific to the specified printerbased on the standard settings received from the print command generation unitand the extended print settings obtained from the setting application
318 1052 200 1052 a The print settings are output to the print manageralong with the generated print commands. In the foregoing example, the print command generation units 1 and 2 and the setting applicationare described to be used. Depending on the specified printer, print command generation units and setting applicationsother than the foregoing are used.
705 709 318 710 318 200 319 With the print commands generated in step Sor S, the print managergenerates a print job based on the generated print commands and print settings. In step S, the print managertransmits the generated print job to the specified printervia the communication unit.
318 1054 400 318 In such a manner, the print manageroutputs print commands compliant with the specific printing protocol, obtained through processing of the print data obtained by the common printer driver, which is performed by one or more modules indicated by the filter pipeline configuration file. The print managerthereby outputs first print commands or second print commands depending on the information indicating the format of print data that the printing apparatus to perform printing uses for the print processing. The first print commands refer to print commands compliant with a predetermined protocol (e.g., the IPP). The second print commands refer to print commands compliant with another printing protocol different from the predetermined printing protocol.
705 318 318 1051 In the case of outputting the print commands generated in step S, the print manageroutputs print commands compliant with the IPP. The print managercan thus output first print commands compliant with a predetermined printing protocol (e.g., the IPP) based on the print data obtained from the application.
709 318 1051 In the case of outputting the print commands generated in step S, the print managercan output print commands compliant with another printing protocol different from the predetermined printing protocol based on the print data obtained from the application.
100 1054 100 100 According to the foregoing exemplary embodiment, the computeruses the common printer driverthat can use a predetermined printing protocol such as the IPP. The computercan thus output print commands irrespective of the vendors of the printing apparatuses. According to the foregoing exemplary embodiment, the computercan also output print commands using a specific printing protocol different from the predetermined printing protocol. This enables the user to use specific print functions that become available by using the specific printing protocol.
1054 1055 1055 312 1054 A second exemplary embodiment of the present disclosure will be described below. In the first exemplary embodiment, the common printer driveris described to generate PDL data compliant with the IPP before the extended printer driveris used to convert the PDL data into the vendor-specific PDL data and generate print commands. However, this is not restrictive. The print command generation units of the extended printer drivermay be called to generate print commands without the intervention of the print command generation unitof the common printer driver.
1055 1051 A hardware configuration, a software configuration, and a processing procedure according to the present exemplary embodiment are similar to those described in the first exemplary embodiment. A description thereof will thus be omitted. A difference is that the extended printer driveraccording to the present exemplary embodiment has a function of interpreting XPS data generated by the applicationsinstead of PDL compliant with the IPP, and converting the XPS data into vendor-specific PDL data.
1051 1051 1054 When an applicationaccepts a print start instruction from the user, the applicationpasses print settings and an XPS spool file to the common printer driver.
400 707 b 4 FIG.B 7 FIG. A case where a filter pipeline configuration fileillustrated inis selected as the filter pipeline configuration file to be referred to in step Sofwill be described.
400 b 4 FIG.B 4 FIG.B The filter pipeline configuration fileincludes definitions for only the print command generation units 1 and 2. The print command generation unit 1 corresponds to “Vendor Renderer PDL A” in. The print command generation unit 2 corresponds to “Vendor Renderer PDL B” in.
400 1054 1055 312 b Based on the filter pipeline configuration file, the common printer driverpasses the obtained print settings and XPS spool file to the extended printer driverwithout calling the print command generation unit.
709 1055 400 1055 200 1054 1052 7 FIG. b a. In step Sof, the extended printer drivergenerates print commands based on the XPS spool file by using the print command generation units 1 and 2 based on the filter pipeline configuration file. The extended printer driveralso generates print settings specific to the specified printerbased on the print settings obtained from the common printer driverand the extended print settings obtained from the setting application
709 318 710 318 200 319 With the print commands generated in step S, the print managergenerates a print job based on the generated print commands and print settings. In step S, the print managertransmits the generated print job to the specified printervia the communication unit.
312 1054 1055 1054 1055 1051 In the present exemplary embodiment, a print job including vendor-specific certain PDL data is generated without calling the print command generation unitof the common printer drivercompliant with the IPP. More specifically, the extended printer drivercan generate print commands compliant with another printing protocol different from a predetermined printing protocol (e.g., the IPP) without the generation of print commands by the common printer driver. The extended printer drivergenerates the print commands compliant with another printing protocol by using the print data output from the application.
318 1054 1054 The print managercan output print commands compliant with another printing protocol, generated by one or more extension modules without the common printer drivergenerating print commands in compliance with the predetermined printing protocol. This can reduce the amount of processing for generating print commands and more efficiently generate print commands than via the common printer driver.
1055 100 100 A third exemplary embodiment of the present disclosure will be described below. In the first and second exemplary embodiments, the extended printer driverinstalled on the computeris described to be used to convert PDL data compliant with the IPP or an XPS spool file into vendor-specific PDL data and generate print commands. However, this is not restrictive. Print commands may be generated by using a print command generation unit included in an external apparatus (such as a cloud server) connected to the computervia a network.
A hardware configuration, a software configuration, and a processing procedure according to the present exemplary embodiment are similar to those described in the first exemplary embodiment. A description thereof will thus be omitted.
319 1055 1055 A difference is that the communication unitaccording to the present exemplary embodiment communicates with an external apparatus connected to a client computer via a network, based on instructions from the extended printer driver. In the present exemplary embodiment, the extended printer drivergenerates print commands by using a print command generation unit 8 on the external apparatus.
400 707 c 4 FIG.C 7 FIG. A case where a filter pipeline configuration fileillustrated inis selected as the filter pipeline configuration file to be referred to in step Sofwill be described.
4 FIG.C 4 FIG.C 4 FIG.C The print command generation unit 1 corresponds to “Vendor Renderer PDL A” in. The print command generation unit 2 corresponds to “Vendor Renderer PDL B” in. The print command generation unit 8 corresponds to “Vendor Renderer PDL C” in.
400 1055 319 1055 1055 318 c 4 FIG.C The filter pipeline configuration filedefines a Uniform Resource Locator (URL) for using the print command generation unit 8 on the external apparatus. Based on the definition, the extended printer drivercalls the print command generation unit 8 located in a cloud area via the communication, and generates print commands. In the example of, the extended printer driverperforms processing by using the print command generation units 1 and 2, and then transmits the processed data to the print command generation unit 8. The extended printer driverthen transmits the print data (print commands) processed by the print command generation unit 8 to the print manager.
318 710 318 200 319 The print managergenerates a print job based on the generated print commands and print settings. In step S, the print managertransmits the generated print job to the specified printervia the communication unit.
312 In the foregoing example, the print commands are described to be generated by using the print command generation units 1, 2, and 8. However, this is not restrictive. The print command generation unitmay perform processing before the print command generation unit 1. Alternatively, print commands may be generated from the XPS spool data by using only the print command generation unit 8.
318 1054 In such a manner, the print manageraccording to the present exemplary embodiment outputs print commands compliant with another printing protocol, obtained through processing of the print data obtained by the common printer driver, which is performed by the extension module included in the external apparatus. The extension module included in the external apparatus is an extension module for generating print commands compliant with another printing protocol different from a predetermined printing protocol.
100 100 According to the present exemplary embodiment, print commands are generated by using the print command generation unit 8 on the external apparatus such as a cloud server. This can improve extensibility, compared to when only the print command generation units installed on the computerare used. In other words, print commands written in a type of PDL not generable by only the computercan be generated.
Embodiment(s) of the present disclosure can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a ‘non-transitory computer-readable storage medium’) to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiment(s), and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more processors (e.g., central processing unit (CPU), micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and execute the computer executable instructions. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™), a flash memory device, a memory card, and the like.
While the present disclosure includes exemplary embodiments, it is to be understood that the disclosure is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
January 14, 2026
May 21, 2026
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.