WO2021002842A1 - Receiving modified print ticket to change configuration of the driver - Google Patents

Receiving modified print ticket to change configuration of the driver Download PDF

Info

Publication number
WO2021002842A1
WO2021002842A1 PCT/US2019/040134 US2019040134W WO2021002842A1 WO 2021002842 A1 WO2021002842 A1 WO 2021002842A1 US 2019040134 W US2019040134 W US 2019040134W WO 2021002842 A1 WO2021002842 A1 WO 2021002842A1
Authority
WO
WIPO (PCT)
Prior art keywords
image forming
command
driver
print ticket
forming job
Prior art date
Application number
PCT/US2019/040134
Other languages
French (fr)
Inventor
Sangmin Lee
Mikyung CHOI
Rajiv Vinodchandra MISTRY
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2019/040134 priority Critical patent/WO2021002842A1/en
Publication of WO2021002842A1 publication Critical patent/WO2021002842A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1205Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1255Settings incompatibility, e.g. constraints, user requirements vs. device capabilities

Definitions

  • a host or client device may include a personal computer, a laptop, a tablet, a smartphone, a server, or combinations thereof.
  • the host device may be used to control an operation or function of an image forming apparatus.
  • An image forming apparatus may include an apparatus that forms images on a recording medium according to inputted signals. Examples of an image forming apparatus include a printer, a copy machine, a scanner, a facsimile, and a multi function peripheral device that combines and implements various functions of the printer, copy machine, scanner, and/or facsimile. Examples of a printer include an inkjet printer, an electrophotographic printer, and a 3D printer.
  • the host device may store a driver, for example a printer driver, that is used by the host device to operate or control functions of an image forming apparatus.
  • a printer driver may convert data to be printed to a format which can be understood by the image forming apparatus.
  • the printer driver may provide a user interface accessible by a user through either through an operating system such as Microsoft Windows or an application program such as a word processing program.
  • FIG. 1 is a block diagram illustrating a host device 100 and an image forming apparatus 200, according to an example
  • FIG. 2 is a block diagram illustrating a Windows 10 operating system including the Universal Windows Platform (UWP), according to an example;
  • UWP Universal Windows Platform
  • FIG. 3 is an illustration of a Windows printer driver architecture, according to an example
  • FIG. 4 is a block diagram of a UWP application interacting with a printer driver, according to an example
  • FIGS. 5A and 5B illustrate a flowchart which includes a process to change a configuration of a printer driver via a UWP application, according to an example
  • FIGS. 6A to 6C illustrate instruction templates utilized in connection with the UWP application and printer driver, according to an example.
  • FIG. 1 is a block diagram illustrating a host device 100 and an image forming apparatus 200, according to an example.
  • the host device 100 may include a personal computer, a laptop, a tablet, a smartphone, a server, or combinations thereof.
  • the image forming apparatus 200 may include an apparatus that forms images on a recording medium according to inputted signals. Examples of the image forming apparatus 200 include a printer, a copy machine, a scanner, a facsimile, and a multi-function peripheral device that combines and implements various functions of the printer, copy machine, scanner, and/or facsimile. Examples of a printer include an inkjet printer, an electrophotographic printer, and a 3D printer.
  • the host device 100 includes a controller 1 10, a Universal Windows Platform application 120, a storage 130, a communication interface 140, a user interface 150, a display 160, and a driver 170.
  • the image forming apparatus 200 includes a controller 210, an image forming unit 220, a storage 230, a communication interface 240, a user interface 250, and a display 260.
  • the host device 100 and the image forming apparatus 200 may be connected with one another in a wired and/or wireless manner, for example through communication interfaces 140, 240, such that the host device 100 and the image forming apparatus 200 can communicate with one another to exchange information, including job information regarding an image forming job performed or to be performed by the image forming apparatus 200.
  • the host device 100 may be used to control a function or an operation of the image forming apparatus 200. For example, the host device 100 may receive an input from a user regarding a job or function of the image forming apparatus 200 through the user interface 150 and/or display 160.
  • the controller 1 10 of the host device 100 may execute instructions stored in the storage 130, and the controller 210 of the image forming apparatus 200 may execute instructions stored in the storage 230.
  • the controllers 1 10, 210 may include, for example, a processor, an arithmetic logic unit, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an image processor, a microcomputer, a field programmable array, a programmable logic unit, an application-specific integrated circuit (ASIC), a microprocessor, or combinations thereof.
  • the storage 130 of the host device 100 and the storage 230 of the image forming apparatus 200 may include, for example, machine readable storage devices which may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions.
  • the storages 130, 230 may include a nonvolatile memory device, such as a Read Only Memory (ROM), Programmable Read Only Memory (PROM), Erasable
  • the host device 100 may include a user interface 150 and/or display 150 to receive an input from a user to control an operation of the host device 100 and/or image forming apparatus 200, and the display 150 can display
  • the image forming apparatus 200 may include a user interface 250 and/or display 260 to receive an input from a user to control an operation of the host device 100 and/or image forming apparatus 200, and the display 260 can display information regarding the image forming apparatus 200 and/or host device 100.
  • the user interfaces 150, 250 may include, for example, a keyboard, a mouse, a joystick, a button, a switch, an electronic pen or stylus, a gesture recognition sensor, an input sound device or voice recognition sensor such as a microphone, an output sound device such as a speaker, a track ball, a remote control, a touchscreen, or combinations thereof.
  • the displays 160, 260 may include a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, active matrix organic light emitting diode (AMOLED), flexible display, 3D display, a plasma display panel (PDP), a cathode ray tube (CRT) display, and the like, for example.
  • LCD liquid crystal display
  • LED light emitting diode
  • OLED organic light emitting diode
  • AMOLED active matrix organic light emitting diode
  • flexible display 3D display
  • PDP plasma display panel
  • PDP cathode ray tube
  • 260 may also include touchscreen displays to receive the user input.
  • the host device 100 and the image forming apparatus 200 may be connected with one another in a wired and/or wireless manner, for example through communication interfaces 140, 240.
  • the host device 100 and the image forming apparatus 200 may be connected to one another over a network such as a local area network (LAN), wireless local area network (WLAN), wide area network (WAN), personal area network (PAN), virtual private network (VPN), or the like.
  • LAN local area network
  • WLAN wireless local area network
  • WAN wide area network
  • PAN personal area network
  • VPN virtual private network
  • wireless communication between elements of the examples disclosed herein may be performed via a wireless LAN, Wi-Fi,
  • Bluetooth ZigBee, Wi-Fi direct (WFD), ultra wideband (UWB), infrared data association (IrDA), Bluetooth low energy (BLE), near field communication (NFC), a radio frequency (RF) signal, and the like.
  • WFD Wi-Fi direct
  • UWB ultra wideband
  • IrDA infrared data association
  • BLE Bluetooth low energy
  • NFC near field communication
  • RF radio frequency
  • the image forming unit 220 of the image forming apparatus 200 may perform an image forming job by forming an image on a recording medium to perform a job such as printing, copying, and faxing, for example.
  • the image forming unit 220 may include a print engine which receives a control signal from the controller 210 to perform a printing operation.
  • the image forming apparatus 200 may print an image on a recording medium by using various printing methods such as an electrophotography method, an inkjet method, a thermal transfer method, and a thermal sublimation method.
  • the image forming apparatus 200 may also include a scanner to read an image recorded on a document.
  • the scanner may have any of various structures such as a flatbed mechanism where a document is at a fixed position and an image is read while a reading member is moved, a document feeding mechanism where a reading member is at a fixed position and a document is fed, and a combination structure thereof.
  • a Universal Windows Platform is an application programming interface for the Microsoft Windows operating system, for example in Windows 10 and Windows 10 Mobile.
  • the UWP is used to enable developers to create applications, i.e., UWP applications, which can be used by various devices that operate using a similar or same operating system, for example Windows 10.
  • DCA Device Companion App
  • Microsoft Windows supports DCA for device manufacturers/vendors to manage their devices.
  • a DCA may be installed automatically when an image forming apparatus or a printer driver is installed.
  • the DCA can provide the ability to manage certain printer device hardware by displaying a printer status or managing print jobs, for example.
  • UWP applications which prevent a user from being able to fully interact with or control the devices of the manufacturer/vendor.
  • UWP applications are not allowed to be executed with administrative privileges, thereby changes to certain device settings may not be permitted.
  • UWP applications may not support a change to a configuration of a printer driver using UWP technology. That is, a UWP application may not provide administrator privileges so as to allow a user to change administrator settings of a printer driving using the UWP application. Therefore, the UWP App may not be able to change administrator settings of the printer driver.
  • a DCA may not be able to change a printer driver setting such as a port of the printer driver.
  • This limitation blocks the enhancement of the printing experience.
  • a configuration of a universal printer driver (UPD) which supports several printers, may not be able to be changed so as to support different types of printers using the UWP application. That is, a DCA for a UPD may not be able change a printer driver setting like a port of the UPD.
  • FIG. 2 is an example block diagram of a Windows 10 operating system 1000 which includes the Universal Windows Platform (UWP) 1200 on which a UWP application 120 is run, and a Win32 application platform 1300 on which a Win32 application 1400 is run.
  • UWP Universal Windows Platform
  • Win32 platform 1300 and UWP 1200 enable a developer to create applications.
  • Win32 is an earlier platform for Windows applications operating for versions of Windows from Windows 95 onwards.
  • UWP is a platform developed for Windows 10 applications.
  • the UWP App can run on a secure Universal Windows Platform which restricts access to system components like printing system (spooler) and a local disk.
  • a DCA is installed to manage a device, for example the DCA is installed by a printer driver installation, the DCA and printer driver are
  • the printer driver and print system may reside on the older Win32 technology which does not have access to new technologies supported by UWP. Thus, it may be difficult for a UWP app to interact with a Win32 based print driver. For example, due to the restrictions of a UWP platform to access certain information of the device, such as restrictions to accessing a print spool system, the DCA may not be able to be used for changing printer driver settings.
  • a universal printer driver can support many printers with one print driver.
  • a DCA may be installed upon installation of the UPD to serve as a device management application to manage multiple printers.
  • the DCA cannot manage a configuration of the UPD with respect to the multiple printers.
  • These limitations for the UWP are found in Windows operating systems such as Windows 10 as well as Windows 10 S. Therefore, a method for allowing a user or developer to more easily change or manage a configuration of a printer driver in the context of a
  • Windows 10 environment which operates using a UWP application, can enable a user or developer to have a richer and more enhanced experience.
  • FIG. 3 is an example illustration of a printer driver architecture, for example a Windows V4 printer driver architecture for a Windows operating system.
  • Components of the printer driver architecture shown in FIG. 3 which are not specifically discussed herein or are not annotated with reference characters are components which may be found in the framework of the V4 printer driver and would be well understood by those of skill in the art.
  • FIG. 4 is an example block diagram of a UWP application interacting with a printer driver.
  • a DCA such as a UWP application 120 may be installed with the printer driver 170.
  • the printer driver 170 can be classified into a printer Ul 310, configuration 320, XML Paper Specification (XPS) rendering core 330, and rendering filter 340.
  • the rendering filter 340 can be executed by the spooler 350, and the spooler 350 can operate with the system or administrative privileges.
  • the rendering filter 340 operates on the Win32 platform, and therefore the Win32 application programming interface can be used. Therefore, the rendering filter 340 can be utilized to configure an administrative command to run on the UWP application 120. That is, the rendering filter 340 can be utilized together with the UWP application 120 to change a property of the printer driver 170, that might, for example, not be changeable using the UWP application 120 alone because system or administrative privileges are needed to change those properties.
  • a command in the form of metadata can be transferred to the printer driver 170 so as to change a configuration of the printer driver 170.
  • These commands can be transferred from the DCA or UWP application 120 to the rendering filter 340 of the printer driver 170 through a XPS print job that is submitted by the DCA or UWP application 120.
  • Printing jobs 173 that are delivered to the rendering filter 340 from the printer driver 170 may be divided into XPS Data and Print Ticket.
  • XPS Data refers to the actual print data
  • Print Ticket refers to the metadata nature of the print data.
  • the metadata may describe properties or characteristics of the print data and/or print job.
  • a command to change a configuration of the printer driver 170 can be placed in the Print Ticket by the DCA or UWP application 120.
  • the command placed in the Print Ticket 126 can be extracted from the printing job 173 by the rendering filter 340, which may also be referred to as a command filter 171.
  • the rendering filter 340 can extract a command regarding configuration instructions from the Print Ticket 126 and execute the instructions to configure the printing driver 170 with administrative or system privileges.
  • the command regarding configuration instruction instructions can be embedded with a regular print document 127 which is to be printed via a print 128 operation.
  • the rendering filter 340 may also be referred to as a command filter 171. Because the command filter 171 operates with system or administrative privileges, commands that may not be executed by the DCA or UWP application 120 because the DCA or UWP application 120 does not have system or administrative privileges, can instead be executed via the printer driver 170 using the command filter 171.
  • command filter 171 is a component that processes the print job 173, if command processing is done by creating a thread or process separately, the speed of performing the print job 173 should not be affected adversely and thus command processing should not impact
  • the UWP application 120 may be stored on host device 100.
  • the host device 100 can be any device that includes a Windows operating system, for example a Windows 10 operating system.
  • the UWP application 120 can communicate or exchange information with the printer driver 170 to perform operations such as setting a printer port, updating a driver, selecting settings of the printer such as tray basic printer setting, diagnosing a status of the printer, and other configuration settings.
  • the UWP application 120 may include various layers, for example a view layer 121 which defines a user interface (Ul), for example, using XAML markup.
  • the markup may include data binding expressions (such as x:Bind) that define the connection between specific Ul components and various view-model 122 and model members.
  • the view component may encapsulate the Ul and Ul logic.
  • the view-model 122 layer may provide data binding targets for the view.
  • the view-model 122 component may encapsulate presentation logic and state.
  • the view-model 122 can implement properties and commands to which the view can bind data and notify the view of any state changes through change notification events.
  • the UWP application 120 includes a command generator 123 which generates a corresponding command according to a function provided by the UWP application 120.
  • the command that is generated by the command generator 123 may depend on the printer driver 170 that is to handle the command.
  • the command that is generated by the command generator 123 may depend on whether the printer driver 170 can support or is capable of executing the command.
  • the UWP application 120 includes a Print Ticket Handler 124.
  • the Print Ticket Handler 124 can determine whether the printer driver 170 can support or is capable of executing a command.
  • the UWP application 1210 may receive a list of commands 174 supported by the printer driver 170 from the printer driver 170.
  • the list of commands 174 supported by the printer driver 170 may be included or embedded in a Print Ticket 126 which is sent from the printer driver 170 to the UWP application 120.
  • the Print Ticket Handler 124 may read or determine the commands supported by the printer driver 170 from the Print Ticket 126.
  • the Print Ticket Handler 124 may provide the list of commands supported by the printer driver 170 to the command generator 123.
  • the Print Ticket Handler 124 may receive other capabilities of the printer driver 170 and/or a Print Ticket template so that a command generated by the command generator 123 can be embedded or included in a modified Print Ticket and sent to the printer driver 170 together with an image forming job.
  • the command generator 123 may generate a command based on the list of commands supported by the printer driver 170. Then, the command generator 123 may provide the generated command to the Print Ticket Handler 124. The Print Ticket Handler 124 may modify the Print Ticket 126 to include the generated command so as to create a modified Print Ticket.
  • the modified Print Ticket can be included in an image forming job, for example, a print job, that is transmitted from the UWP application 120 to the printer driver 170.
  • the printer driver 170 may be a universal printer driver.
  • the printer driver 170 includes a Print Ticket - Command List 174 which includes a template based on a standard schema, for example a Microsoft standard schema, with support configuration instructions and/or command definitions that can be processed or supported by the printer driver 170.
  • Print Ticket - Command List 174 can send a Print Ticket 126 or a Print Ticket template to the UWP application 120 to indicate capabilities of the printer driver 170 and commands that can be processed or supported by the printer driver 170.
  • the printer driver 170 also includes a command filter 171.
  • the printer driver 170 can indicate the presence of command filters in the PrintCapability information (see FIG. 3) which is included in the Print Ticket 126.
  • the information of the commands that the printer driver 170 supports can be included in the PrintCapability information of the Print Ticket 126.
  • the command filter 171 can include a command extractor 171 a and a command processor 171 b.
  • the command filter 171 can be executed by the spooler 350 (see FIG. 3).
  • the spooler 350 and the command filter 171 may operate with administrative or system privileges.
  • the command extractor 171 a can extract a command from the image forming job received from the UWP 120.
  • the command extractor 171 a can extract a command from the modified Print Ticket that is included in the image forming job received from the UWP 120.
  • the command processor 171 b can execute the command extracted from the image forming job by the command extractor 171 a and provided by the UWP application 120.
  • the command may be to change a port of the image forming apparatus, to set an image forming apparatus as a default image forming apparatus, or to update printer driver information to reflect capabilities of the image forming apparatus.
  • the command can be executed by issuing a Do Command 175 for example.
  • the image forming job 173 may be a printing job for example.
  • the printing job may include print data and the modified Print Ticket.
  • the printing job may be an XPS print job, and the XPS print job may include XPS print data and the modified Print Ticket.
  • the printing driver 170 may include an XPS print driver 172 used to perform the XPS print job.
  • FIGS. 5A and 5B illustrate a flowchart which includes a process to change a configuration of a printer driver 170 via a UWP application 120, according to an example.
  • a list of printers to which the host device 100 may be connected can be displayed to a user, for example, via display 160 and/or user interface 150.
  • the host device 100 may store a universal printer driver which corresponds to a plurality of printers, and/or the host device 100 may store several drivers which respectively correspond to individual printers.
  • Each printer may have an associated port that is used for connecting the host device 100 to a respective printer for executing a print job when the respective printer is selected for printing by the user.
  • the UWP application 120 may search for printers connected to the host device 100 by way of a wired or wireless network, for example via a USB connection, and that are capable of performing a print job.
  • the host device 100 may perform the searching in response to a user input, or the host device 100 may perform the searching automatically without a user input.
  • the host device 100 may periodically search for printers connected to the host device 100, or may search for printers in response to an event, such as powering on of the host device 100 or the opening of a certain application.
  • the list of printers discovered by the host device 100 may be displayed by the host device 100, for example on a display of the user interface 150 and/or a display 160.
  • the user can select a printer from among the displayed printers via the user interface 150, or via a touch screen provided by the display 160, and in response to such a selection the UWP application 120 may create a print job.
  • the host device 100 may automatically select a printer by various methods. For example, the host device 100 may select a printer that is closest to the user in terms of location by comparing a location of the host device 100 with a location of the printers. For example, the host device 100 may select a printer that is a most frequently used printer by the user according to a user history that is stored in the host device. For example, the host device 100 may select a printer that has certain capabilities that correspond to user profile settings of the user. As an example, if the user profile of the user indicates selecting a closest printer having color capability, includes a tray with a specific size of paper, and currently stores a predetermined minimum number of sheets, the host device 100 may automatically select a printer which meets those capabilities.
  • the UWP application 120 may create a print job.
  • the creation of the print job may be for changing a configuration of the printer driver 170, for example, for changing a port of the printer driver 170, by including a command in the Print Ticket of the generated printing job.
  • the Print Ticket Handler receives a Print Ticket 126, for example, a Print Ticket template, from the printer driver 170.
  • the UWP application 120 may determine from the Print Ticket 126 whether the printer driver 170 supports a certain command or instruction. If the printer driver 170 does not support the certain command or instruction, the process may end.
  • the Print Ticket Handler 124 may send the commands and/or instructions supported by the printer driver 170 to the command generator 123, and the command generator 123 receives the commands and/or instructions supported by the printer driver 170 at operation 515.
  • the UWP application 120 may display various options to a user via the user interface 150 and/or display 160 by which a user may provide an input to select a command that is to be included in the modified Print Ticket so as to change a configuration of the printer driver 170.
  • the user may provide an input which is utilized to change a configuration of the printer driver 170, for example, to change a port setting of the printer driver 170, to change capability information of the printer driver 170, to change a default printer status of the printer driver 170, and the like.
  • a list of default commands 125 may be displayed for selection by the user, for example.
  • the default commands 125 may be stored in the storage 130 of the host device 100, for example, and/or may be remotely stored, for example, by a server.
  • the default command list 125 may be in the form of a database which stores commands.
  • the command generator 123 may create or format metadata to be included in the modified Print Ticket by the Print Ticket Handler 124.
  • the command generator 123 may receive or obtain a command stored in the default command list 125, and the command generator 123 may use the command to create or format the metadata to be included in the modified Print Ticket by the Print Ticket Handler 124.
  • the Print Ticket Handler 124 may modify the Print Ticket 126 or the Print Ticket template received from the printer driver 170 so as to include or embed the metadata in the Print Ticket 126 or Print Ticket template.
  • the UWP application may send the modified Print Ticket to the printer driver 170 together with an image forming job.
  • the command that is embedded or included in the modified Print Ticket may be in the form of metadata, for example.
  • the image forming job may be a print job that is to print a print document 127.
  • the image forming job may an XPS printing job and the printing driver 170 may include an XPS print driver 172 used to perform the XPS printing job.
  • the printer driver 170 receives the image forming job which includes the modified Print Ticket.
  • the printer driver 170 determines whether the image forming job includes a configuration instruction or command in the modified Print Ticket at operation 550.
  • the command filter 171 may extract the Print Ticket from the image forming job and determine whether a command is embedded or included in the Print Ticket, for example a command to change a configuration of the printer driver 170. If the image forming job does not include a configuration instruction or command in the modified Print Ticket at operation 550, then the process proceeds to operation 565 and printer driver 170 renders the image forming job.
  • the rendering core 330 of the printer driver 170 may render the print job into a page description language for an image forming apparatus such as a printer. If the image forming job does include the configuration instruction or command in the modified Print Ticket at operation 550, then the process proceeds to operation 555 and command filter 171 can be executed by the spooler 350.
  • the spooler 350 and the command filter 171 may operate with administrative or system privileges.
  • the command extractor 171 a can extract a command from the image forming job received from the UWP 120.
  • the command extractor 171 a can extract a command from the modified Print Ticket that is included in the image forming job received from the UWP 120 and send the command or instruction to the command processor.
  • the command processor 171 b can execute or process the command extracted from the image forming job by the command extractor 171 a and provided by the UWP application 120.
  • the command or instruction may be to change a port of the image forming apparatus, to set an image forming apparatus as a default image forming apparatus, or to update printer driver information to reflect capabilities of the image forming apparatus.
  • the command can be executed by issuing a Do Command 175 for example.
  • the execution of the command can cause the port of the printer driver to be changed to a port indicated in the command example.
  • the port setting may have been selected by the user for example, or automatically selected by the host device 100 for example.
  • printer driver 170 renders the image forming job.
  • the rendering core 330 of the printer driver 170 may render the print job into a page description language for an image forming apparatus such as a printer. Thereafter, the process shown in FIGS. 5A and 5B ends.
  • the image forming job 173 may be a printing job for example.
  • the printing job may include print data and the modified Print Ticket.
  • the printing job may be an XPS print job, and the XPS print job may include XPS print data and the modified Print Ticket.
  • the printing driver 170 may include an XPS print driver 172 used to perform the XPS print job.
  • the printer driver 170 renders the image forming job.
  • the rendering core 330 of the printer driver 170 may render the print job into a page description language for an image forming apparatus such as a printer such that the image forming apparatus is capable of processing the image forming job in a language that can be interpreted or understood by the image forming apparatus.
  • FIGS. 6A to 6C illustrate example instruction templates that may be utilized in connection with the UWP application 120 and printer driver 170 described herein.
  • the Print Capabilities Ticket template may include printer driver capabilities and can include features that can receive commands in
  • the Print Ticket template may include commands supported by the printer driver 170.
  • the command supported by the printer driver 170 in FIG. 6B is identified by the parameter information of“nsOOOO: Command”.
  • the UWP application 120 may receive the Print Ticket from the printer driver 170 and the UWP application 120 may include or modify the Print Ticket to have a command to create a Port in the "Command" field.
  • the format of the command may use the printer driver and a predefined format.
  • the embedded command in one example can be "command”: “SetPort”,“printer”:”“UPD Printer”,“IP”:“192.168.0.100”.
  • the port is changed to a target printer driver associated with an IP address of
  • the command filter 171 may check certain information in the modified Print Ticket to determine whether a command to change configuration
  • the command filter 171 may check the "nsOOOO: command” feature of the Print Ticket to extract the command.
  • the command filter 171 may check the command type in the embedded command and operate the corresponding function with the related parameter.
  • the command filter 171 may check the“SetPort,” feature as shown in FIG. 6C, and read the printer name and the target printer IP information, and change the port of the corresponding printer to the given network printer according to the IP information.
  • the printer driver may be a universal printer driver.
  • the examples provide a process by which a Print Ticket or Print Ticket template received by the device companion application or UWP application can be modified so as to include a command or instruction for changing a configuration of the printer driver.
  • the printer driver receives the modified Print Ticket or Print Ticket template together with an image forming job and executes the command or instruction to change the configuration of the printer driver.
  • the configuration of the printer driver which can be changed may be a setting for which system or administrator privileges are needed.
  • the configuration of the printer driver which can be changed may not be directly changeable using the device companion application or UWP application.
  • the examples described allow or enable a user to auto-update a printer driver, set a port setting of a printer driver that is selected automatically or by a user, and change settings of a printer
  • a printer driver for example through a user interface.
  • the UWP application as disclosed herein may be better utilized as a print management tool.

Abstract

A driver provides a print ticket to a universal windows platform (UWP) application in response to an input relating to an image forming job. The UWP application modifies the print ticket to generate a modified print ticket which includes a command, that when executed, changes a configuration of the driver. The driver receives, from the UWP application, the image forming job which includes the modified print ticket including the command to change the configuration of the driver. The driver extracts the command from the modified print ticket, and executes the command to change the configuration of the driver.

Description

RECEIVING MODIFIED PRINT TICKET TO CHANGE CONFIGURATION OF
THE DRIVER
BACKGROUND
[0001] A host or client device may include a personal computer, a laptop, a tablet, a smartphone, a server, or combinations thereof. The host device may be used to control an operation or function of an image forming apparatus. An image forming apparatus may include an apparatus that forms images on a recording medium according to inputted signals. Examples of an image forming apparatus include a printer, a copy machine, a scanner, a facsimile, and a multi function peripheral device that combines and implements various functions of the printer, copy machine, scanner, and/or facsimile. Examples of a printer include an inkjet printer, an electrophotographic printer, and a 3D printer.
[0002] The host device may store a driver, for example a printer driver, that is used by the host device to operate or control functions of an image forming apparatus. For example, the printer driver may convert data to be printed to a format which can be understood by the image forming apparatus. The printer driver may provide a user interface accessible by a user through either through an operating system such as Microsoft Windows or an application program such as a word processing program.
BRIEF DESCRIPTION OF THE DRAWINGS
[0003] FIG. 1 is a block diagram illustrating a host device 100 and an image forming apparatus 200, according to an example;
[0004] FIG. 2 is a block diagram illustrating a Windows 10 operating system including the Universal Windows Platform (UWP), according to an example;
[0005] FIG. 3 is an illustration of a Windows printer driver architecture, according to an example; [0006] FIG. 4 is a block diagram of a UWP application interacting with a printer driver, according to an example;
[0007] FIGS. 5A and 5B illustrate a flowchart which includes a process to change a configuration of a printer driver via a UWP application, according to an example;
[0008] FIGS. 6A to 6C illustrate instruction templates utilized in connection with the UWP application and printer driver, according to an example.
DETAILED DESCRIPTION
[0009] Reference will now be made to various examples which are explained with reference to the accompanying drawings. The same reference characters are used to denote the same elements, and repeated descriptions thereof will be omitted.
[0010] When it is stated in the disclosure that one element is "connected to" or "coupled to" another element, the expression encompasses an example of a direct connection or direct coupling, as well as a connection with another element interposed therebetween. Further, when it is stated herein that one element "includes" another element, unless otherwise stated explicitly, yet another element may be further included rather than being excluded.
[0011] FIG. 1 is a block diagram illustrating a host device 100 and an image forming apparatus 200, according to an example. The host device 100 may include a personal computer, a laptop, a tablet, a smartphone, a server, or combinations thereof. The image forming apparatus 200 may include an apparatus that forms images on a recording medium according to inputted signals. Examples of the image forming apparatus 200 include a printer, a copy machine, a scanner, a facsimile, and a multi-function peripheral device that combines and implements various functions of the printer, copy machine, scanner, and/or facsimile. Examples of a printer include an inkjet printer, an electrophotographic printer, and a 3D printer.
[0012] Referring to FIG. 1 , the host device 100 includes a controller 1 10, a Universal Windows Platform application 120, a storage 130, a communication interface 140, a user interface 150, a display 160, and a driver 170. The image forming apparatus 200 includes a controller 210, an image forming unit 220, a storage 230, a communication interface 240, a user interface 250, and a display 260. The host device 100 and the image forming apparatus 200 may be connected with one another in a wired and/or wireless manner, for example through communication interfaces 140, 240, such that the host device 100 and the image forming apparatus 200 can communicate with one another to exchange information, including job information regarding an image forming job performed or to be performed by the image forming apparatus 200. The host device 100 may be used to control a function or an operation of the image forming apparatus 200. For example, the host device 100 may receive an input from a user regarding a job or function of the image forming apparatus 200 through the user interface 150 and/or display 160.
[0013] The controller 1 10 of the host device 100 may execute instructions stored in the storage 130, and the controller 210 of the image forming apparatus 200 may execute instructions stored in the storage 230. The controllers 1 10, 210 may include, for example, a processor, an arithmetic logic unit, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an image processor, a microcomputer, a field programmable array, a programmable logic unit, an application-specific integrated circuit (ASIC), a microprocessor, or combinations thereof.
[0014] The storage 130 of the host device 100 and the storage 230 of the image forming apparatus 200 may include, for example, machine readable storage devices which may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions. For example, the storages 130, 230 may include a nonvolatile memory device, such as a Read Only Memory (ROM), Programmable Read Only Memory (PROM), Erasable
Programmable Read Only Memory (EPROM), and flash memory, a USB drive, a volatile memory device such as a Random Access Memory (RAM), a hard disk, floppy disks, a blue-ray disk, or optical media such as CD ROM discs and DVDs, or combinations thereof. [0015] The host device 100 may include a user interface 150 and/or display 150 to receive an input from a user to control an operation of the host device 100 and/or image forming apparatus 200, and the display 150 can display
information regarding the host device 100 and/or image forming apparatus 200. The image forming apparatus 200 may include a user interface 250 and/or display 260 to receive an input from a user to control an operation of the host device 100 and/or image forming apparatus 200, and the display 260 can display information regarding the image forming apparatus 200 and/or host device 100. The user interfaces 150, 250 may include, for example, a keyboard, a mouse, a joystick, a button, a switch, an electronic pen or stylus, a gesture recognition sensor, an input sound device or voice recognition sensor such as a microphone, an output sound device such as a speaker, a track ball, a remote control, a touchscreen, or combinations thereof. The displays 160, 260 may include a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, active matrix organic light emitting diode (AMOLED), flexible display, 3D display, a plasma display panel (PDP), a cathode ray tube (CRT) display, and the like, for example. The displays 160,
260 may also include touchscreen displays to receive the user input.
The host device 100 and the image forming apparatus 200 may be connected with one another in a wired and/or wireless manner, for example through communication interfaces 140, 240. The host device 100 and the image forming apparatus 200 may be connected to one another over a network such as a local area network (LAN), wireless local area network (WLAN), wide area network (WAN), personal area network (PAN), virtual private network (VPN), or the like. For example, wireless communication between elements of the examples disclosed herein may be performed via a wireless LAN, Wi-Fi,
Bluetooth, ZigBee, Wi-Fi direct (WFD), ultra wideband (UWB), infrared data association (IrDA), Bluetooth low energy (BLE), near field communication (NFC), a radio frequency (RF) signal, and the like. For example, the wired
communication connection between the host device 100 and image forming apparatus 200 may be performed via a pair cable, a coaxial cable, an optical fiber cable, an Ethernet cable, and the like. [0016] The image forming unit 220 of the image forming apparatus 200 may perform an image forming job by forming an image on a recording medium to perform a job such as printing, copying, and faxing, for example. The image forming unit 220 may include a print engine which receives a control signal from the controller 210 to perform a printing operation.
[0017] The image forming apparatus 200 may print an image on a recording medium by using various printing methods such as an electrophotography method, an inkjet method, a thermal transfer method, and a thermal sublimation method. The image forming apparatus 200 may also include a scanner to read an image recorded on a document. The scanner may have any of various structures such as a flatbed mechanism where a document is at a fixed position and an image is read while a reading member is moved, a document feeding mechanism where a reading member is at a fixed position and a document is fed, and a combination structure thereof.
[0018] A Universal Windows Platform (UWP) is an application programming interface for the Microsoft Windows operating system, for example in Windows 10 and Windows 10 Mobile. The UWP is used to enable developers to create applications, i.e., UWP applications, which can be used by various devices that operate using a similar or same operating system, for example Windows 10.
For example, developers for a device manufacturer or vendor can create or develop an application that interacts or serves as a companion with devices of the manufacturer/vendor. This type of application is also referred to as Device Companion App (DCA) and can be used to manage devices of the
manufacturer/vendor.
[0019] Microsoft Windows supports DCA for device manufacturers/vendors to manage their devices. For example, with respect to image forming apparatuses, a DCA may be installed automatically when an image forming apparatus or a printer driver is installed. The DCA can provide the ability to manage certain printer device hardware by displaying a printer status or managing print jobs, for example.
[0020] However, there are certain limitations to UWP applications which prevent a user from being able to fully interact with or control the devices of the manufacturer/vendor. For example, in some cases UWP applications are not allowed to be executed with administrative privileges, thereby changes to certain device settings may not be permitted. For example, UWP applications may not support a change to a configuration of a printer driver using UWP technology. That is, a UWP application may not provide administrator privileges so as to allow a user to change administrator settings of a printer driving using the UWP application. Therefore, the UWP App may not be able to change administrator settings of the printer driver. As an example, a DCA may not be able to change a printer driver setting such as a port of the printer driver. This limitation blocks the enhancement of the printing experience. For example, a configuration of a universal printer driver (UPD), which supports several printers, may not be able to be changed so as to support different types of printers using the UWP application. That is, a DCA for a UPD may not be able change a printer driver setting like a port of the UPD.
[0021] FIG. 2 is an example block diagram of a Windows 10 operating system 1000 which includes the Universal Windows Platform (UWP) 1200 on which a UWP application 120 is run, and a Win32 application platform 1300 on which a Win32 application 1400 is run. Each of the Win32 platform 1300 and UWP 1200 enable a developer to create applications. Win32 is an earlier platform for Windows applications operating for versions of Windows from Windows 95 onwards. UWP is a platform developed for Windows 10 applications.
[0022] The UWP App can run on a secure Universal Windows Platform which restricts access to system components like printing system (spooler) and a local disk. When a DCA is installed to manage a device, for example the DCA is installed by a printer driver installation, the DCA and printer driver are
independent components which are used to interact with the image forming apparatus. For example, the printer driver and print system may reside on the older Win32 technology which does not have access to new technologies supported by UWP. Thus, it may be difficult for a UWP app to interact with a Win32 based print driver. For example, due to the restrictions of a UWP platform to access certain information of the device, such as restrictions to accessing a print spool system, the DCA may not be able to be used for changing printer driver settings.
[0023] A universal printer driver (UPD) can support many printers with one print driver. A DCA may be installed upon installation of the UPD to serve as a device management application to manage multiple printers. However, due to the limitations discussed above regarding restrictions on changing a
configuration of a printer driver, the DCA cannot manage a configuration of the UPD with respect to the multiple printers. These limitations for the UWP are found in Windows operating systems such as Windows 10 as well as Windows 10 S. Therefore, a method for allowing a user or developer to more easily change or manage a configuration of a printer driver in the context of a
Windows 10 environment which operates using a UWP application, can enable a user or developer to have a richer and more enhanced experience.
[0024] FIG. 3 is an example illustration of a printer driver architecture, for example a Windows V4 printer driver architecture for a Windows operating system. Components of the printer driver architecture shown in FIG. 3 which are not specifically discussed herein or are not annotated with reference characters are components which may be found in the framework of the V4 printer driver and would be well understood by those of skill in the art.
[0025] FIG. 4 is an example block diagram of a UWP application interacting with a printer driver.
[0026] Referring to FIGS. 3 and 4, a DCA such as a UWP application 120 may be installed with the printer driver 170. As an example, the printer driver 170 can be classified into a printer Ul 310, configuration 320, XML Paper Specification (XPS) rendering core 330, and rendering filter 340. The rendering filter 340 can be executed by the spooler 350, and the spooler 350 can operate with the system or administrative privileges. In addition, the rendering filter 340 operates on the Win32 platform, and therefore the Win32 application programming interface can be used. Therefore, the rendering filter 340 can be utilized to configure an administrative command to run on the UWP application 120. That is, the rendering filter 340 can be utilized together with the UWP application 120 to change a property of the printer driver 170, that might, for example, not be changeable using the UWP application 120 alone because system or administrative privileges are needed to change those properties.
[0027] For example, from the DCA or UWP application 120 a command in the form of metadata can be transferred to the printer driver 170 so as to change a configuration of the printer driver 170. These commands can be transferred from the DCA or UWP application 120 to the rendering filter 340 of the printer driver 170 through a XPS print job that is submitted by the DCA or UWP application 120.
[0028] Printing jobs 173 that are delivered to the rendering filter 340 from the printer driver 170 may be divided into XPS Data and Print Ticket. XPS Data refers to the actual print data and Print Ticket refers to the metadata nature of the print data. For example, the metadata may describe properties or characteristics of the print data and/or print job. A command to change a configuration of the printer driver 170 can be placed in the Print Ticket by the DCA or UWP application 120.
[0029] The command placed in the Print Ticket 126 can be extracted from the printing job 173 by the rendering filter 340, which may also be referred to as a command filter 171. For example, the rendering filter 340 can extract a command regarding configuration instructions from the Print Ticket 126 and execute the instructions to configure the printing driver 170 with administrative or system privileges. As another example, the command regarding configuration instruction instructions can be embedded with a regular print document 127 which is to be printed via a print 128 operation.
[0030] As mentioned above, the rendering filter 340 may also be referred to as a command filter 171. Because the command filter 171 operates with system or administrative privileges, commands that may not be executed by the DCA or UWP application 120 because the DCA or UWP application 120 does not have system or administrative privileges, can instead be executed via the printer driver 170 using the command filter 171.
[0031] Furthermore, because the command filter 171 is a component that processes the print job 173, if command processing is done by creating a thread or process separately, the speed of performing the print job 173 should not be affected adversely and thus command processing should not impact
performance of the print job 173.
[0032] For example, the UWP application 120 may be stored on host device 100. The host device 100 can be any device that includes a Windows operating system, for example a Windows 10 operating system.
[0033] Referring to FIG. 4, according to an example of the disclosure the UWP application 120 can communicate or exchange information with the printer driver 170 to perform operations such as setting a printer port, updating a driver, selecting settings of the printer such as tray basic printer setting, diagnosing a status of the printer, and other configuration settings.
[0034] The UWP application 120 may include various layers, for example a view layer 121 which defines a user interface (Ul), for example, using XAML markup. The markup may include data binding expressions (such as x:Bind) that define the connection between specific Ul components and various view-model 122 and model members. The view component may encapsulate the Ul and Ul logic. The view-model 122 layer may provide data binding targets for the view. The view-model 122 component may encapsulate presentation logic and state. The view-model 122 can implement properties and commands to which the view can bind data and notify the view of any state changes through change notification events.
[0035] The UWP application 120 includes a command generator 123 which generates a corresponding command according to a function provided by the UWP application 120. The command that is generated by the command generator 123 may depend on the printer driver 170 that is to handle the command. For example, the command that is generated by the command generator 123 may depend on whether the printer driver 170 can support or is capable of executing the command.
[0036] The UWP application 120 includes a Print Ticket Handler 124. The Print Ticket Handler 124 can determine whether the printer driver 170 can support or is capable of executing a command. For example, the UWP application 1210 may receive a list of commands 174 supported by the printer driver 170 from the printer driver 170. The list of commands 174 supported by the printer driver 170 may be included or embedded in a Print Ticket 126 which is sent from the printer driver 170 to the UWP application 120. The Print Ticket Handler 124 may read or determine the commands supported by the printer driver 170 from the Print Ticket 126. The Print Ticket Handler 124 may provide the list of commands supported by the printer driver 170 to the command generator 123. Furthermore, the Print Ticket Handler 124 may receive other capabilities of the printer driver 170 and/or a Print Ticket template so that a command generated by the command generator 123 can be embedded or included in a modified Print Ticket and sent to the printer driver 170 together with an image forming job.
[0037] Subsequently, the command generator 123 may generate a command based on the list of commands supported by the printer driver 170. Then, the command generator 123 may provide the generated command to the Print Ticket Handler 124. The Print Ticket Handler 124 may modify the Print Ticket 126 to include the generated command so as to create a modified Print Ticket.
[0038] The modified Print Ticket can be included in an image forming job, for example, a print job, that is transmitted from the UWP application 120 to the printer driver 170. As an example, the printer driver 170 may be a universal printer driver.
[0039] The printer driver 170 includes a Print Ticket - Command List 174 which includes a template based on a standard schema, for example a Microsoft standard schema, with support configuration instructions and/or command definitions that can be processed or supported by the printer driver 170. Print Ticket - Command List 174 can send a Print Ticket 126 or a Print Ticket template to the UWP application 120 to indicate capabilities of the printer driver 170 and commands that can be processed or supported by the printer driver 170.
[0040] The printer driver 170 also includes a command filter 171. The printer driver 170 can indicate the presence of command filters in the PrintCapability information (see FIG. 3) which is included in the Print Ticket 126. In addition, the information of the commands that the printer driver 170 supports can be included in the PrintCapability information of the Print Ticket 126. [0041] As illustrated in FIG. 4, the command filter 171 can include a command extractor 171 a and a command processor 171 b. The command filter 171 can be executed by the spooler 350 (see FIG. 3). The spooler 350 and the command filter 171 may operate with administrative or system privileges. The command extractor 171 a can extract a command from the image forming job received from the UWP 120. For example, the command extractor 171 a can extract a command from the modified Print Ticket that is included in the image forming job received from the UWP 120. The command processor 171 b can execute the command extracted from the image forming job by the command extractor 171 a and provided by the UWP application 120. For example, the command may be to change a port of the image forming apparatus, to set an image forming apparatus as a default image forming apparatus, or to update printer driver information to reflect capabilities of the image forming apparatus. The command can be executed by issuing a Do Command 175 for example.
[0042] The image forming job 173 may be a printing job for example. The printing job may include print data and the modified Print Ticket. For example, the printing job may be an XPS print job, and the XPS print job may include XPS print data and the modified Print Ticket. The printing driver 170 may include an XPS print driver 172 used to perform the XPS print job.
[0043] FIGS. 5A and 5B illustrate a flowchart which includes a process to change a configuration of a printer driver 170 via a UWP application 120, according to an example.
[0044] Before the process shown in FIGS. 5A and 5B begins, in the UWP application 120 a list of printers to which the host device 100 may be connected can be displayed to a user, for example, via display 160 and/or user interface 150. The host device 100 may store a universal printer driver which corresponds to a plurality of printers, and/or the host device 100 may store several drivers which respectively correspond to individual printers. Each printer may have an associated port that is used for connecting the host device 100 to a respective printer for executing a print job when the respective printer is selected for printing by the user. [0045] As an example, the UWP application 120 may search for printers connected to the host device 100 by way of a wired or wireless network, for example via a USB connection, and that are capable of performing a print job. The host device 100 may perform the searching in response to a user input, or the host device 100 may perform the searching automatically without a user input. For example, the host device 100 may periodically search for printers connected to the host device 100, or may search for printers in response to an event, such as powering on of the host device 100 or the opening of a certain application.
[0046] The list of printers discovered by the host device 100 may be displayed by the host device 100, for example on a display of the user interface 150 and/or a display 160.
[0047] The user can select a printer from among the displayed printers via the user interface 150, or via a touch screen provided by the display 160, and in response to such a selection the UWP application 120 may create a print job.
As another example, the host device 100 may automatically select a printer by various methods. For example, the host device 100 may select a printer that is closest to the user in terms of location by comparing a location of the host device 100 with a location of the printers. For example, the host device 100 may select a printer that is a most frequently used printer by the user according to a user history that is stored in the host device. For example, the host device 100 may select a printer that has certain capabilities that correspond to user profile settings of the user. As an example, if the user profile of the user indicates selecting a closest printer having color capability, includes a tray with a specific size of paper, and currently stores a predetermined minimum number of sheets, the host device 100 may automatically select a printer which meets those capabilities. Upon the manual or automatic selection of the printer, the UWP application 120 may create a print job. The creation of the print job may be for changing a configuration of the printer driver 170, for example, for changing a port of the printer driver 170, by including a command in the Print Ticket of the generated printing job. [0048] Referring back to FIG. 5A, at operation 505 the Print Ticket Handler receives a Print Ticket 126, for example, a Print Ticket template, from the printer driver 170. At operation 510, the UWP application 120 may determine from the Print Ticket 126 whether the printer driver 170 supports a certain command or instruction. If the printer driver 170 does not support the certain command or instruction, the process may end. If the printer driver 170 does support the certain command or instruction, the Print Ticket Handler 124 may send the commands and/or instructions supported by the printer driver 170 to the command generator 123, and the command generator 123 receives the commands and/or instructions supported by the printer driver 170 at operation 515.
[0049] As an example, at operation 520 the UWP application 120 may display various options to a user via the user interface 150 and/or display 160 by which a user may provide an input to select a command that is to be included in the modified Print Ticket so as to change a configuration of the printer driver 170. For example, at operation 525 the user may provide an input which is utilized to change a configuration of the printer driver 170, for example, to change a port setting of the printer driver 170, to change capability information of the printer driver 170, to change a default printer status of the printer driver 170, and the like. A list of default commands 125 may be displayed for selection by the user, for example. The default commands 125 may be stored in the storage 130 of the host device 100, for example, and/or may be remotely stored, for example, by a server. The default command list 125 may be in the form of a database which stores commands. Based on the input provided by the user at operation 525, at operation 530 the command generator 123 may create or format metadata to be included in the modified Print Ticket by the Print Ticket Handler 124. The command generator 123 may receive or obtain a command stored in the default command list 125, and the command generator 123 may use the command to create or format the metadata to be included in the modified Print Ticket by the Print Ticket Handler 124. At operation 535 the Print Ticket Handler 124 may modify the Print Ticket 126 or the Print Ticket template received from the printer driver 170 so as to include or embed the metadata in the Print Ticket 126 or Print Ticket template.
[0050] At operation 540, the UWP application may send the modified Print Ticket to the printer driver 170 together with an image forming job. The command that is embedded or included in the modified Print Ticket may be in the form of metadata, for example. The image forming job may be a print job that is to print a print document 127. The image forming job may an XPS printing job and the printing driver 170 may include an XPS print driver 172 used to perform the XPS printing job.
[0051] Now referring to FIG. 5B, at operation 545 the printer driver 170 receives the image forming job which includes the modified Print Ticket. The printer driver 170 determines whether the image forming job includes a configuration instruction or command in the modified Print Ticket at operation 550. For example, the command filter 171 may extract the Print Ticket from the image forming job and determine whether a command is embedded or included in the Print Ticket, for example a command to change a configuration of the printer driver 170. If the image forming job does not include a configuration instruction or command in the modified Print Ticket at operation 550, then the process proceeds to operation 565 and printer driver 170 renders the image forming job. For example, the rendering core 330 of the printer driver 170 may render the print job into a page description language for an image forming apparatus such as a printer. If the image forming job does include the configuration instruction or command in the modified Print Ticket at operation 550, then the process proceeds to operation 555 and command filter 171 can be executed by the spooler 350. The spooler 350 and the command filter 171 may operate with administrative or system privileges. The command extractor 171 a can extract a command from the image forming job received from the UWP 120. For example, the command extractor 171 a can extract a command from the modified Print Ticket that is included in the image forming job received from the UWP 120 and send the command or instruction to the command processor.
[0052] At operation 560, the command processor 171 b can execute or process the command extracted from the image forming job by the command extractor 171 a and provided by the UWP application 120. For example, the command or instruction may be to change a port of the image forming apparatus, to set an image forming apparatus as a default image forming apparatus, or to update printer driver information to reflect capabilities of the image forming apparatus. The command can be executed by issuing a Do Command 175 for example. The execution of the command can cause the port of the printer driver to be changed to a port indicated in the command example. The port setting may have been selected by the user for example, or automatically selected by the host device 100 for example.
[0053] The process then proceeds to operation 565 and printer driver 170 renders the image forming job. For example, the rendering core 330 of the printer driver 170 may render the print job into a page description language for an image forming apparatus such as a printer. Thereafter, the process shown in FIGS. 5A and 5B ends.
[0054] The image forming job 173 may be a printing job for example. The printing job may include print data and the modified Print Ticket. For example, the printing job may be an XPS print job, and the XPS print job may include XPS print data and the modified Print Ticket. The printing driver 170 may include an XPS print driver 172 used to perform the XPS print job.
[0055] At operation 565 the printer driver 170 renders the image forming job.
For example, the rendering core 330 of the printer driver 170 may render the print job into a page description language for an image forming apparatus such as a printer such that the image forming apparatus is capable of processing the image forming job in a language that can be interpreted or understood by the image forming apparatus.
[0056] FIGS. 6A to 6C illustrate example instruction templates that may be utilized in connection with the UWP application 120 and printer driver 170 described herein.
[0057] For example, referring to FIG. 6A, a Print Capabilities Ticket template is shown. The Print Capabilities Ticket template may include printer driver capabilities and can include features that can receive commands in
PrintCapability. [0058] For example, referring to FIG. 6B, a Print Ticket template is shown. The Print Ticket template may include commands supported by the printer driver 170. For example, the command supported by the printer driver 170 in FIG. 6B is identified by the parameter information of“nsOOOO: Command”.
[0059] For example, the UWP application 120 may receive the Print Ticket from the printer driver 170 and the UWP application 120 may include or modify the Print Ticket to have a command to create a Port in the "Command" field. The format of the command may use the printer driver and a predefined format. As shown in FIG. 6C, the embedded command in one example can be "command": "SetPort",“printer”:”“UPD Printer”,“IP”:“192.168.0.100”. In the example, the port is changed to a target printer driver associated with an IP address of
192.168.0.100 for a network, which is a parameter identified in the command.
[0060] The command filter 171 may check certain information in the modified Print Ticket to determine whether a command to change configuration
information of the printer driver 170 is present. For example, the command filter 171 may check the "nsOOOO: command" feature of the Print Ticket to extract the command. The command filter 171 may check the command type in the embedded command and operate the corresponding function with the related parameter. For example, the command filter 171 may check the“SetPort,” feature as shown in FIG. 6C, and read the printer name and the target printer IP information, and change the port of the corresponding printer to the given network printer according to the IP information.
[0061] In accordance with the disclosure provided herein, examples have been described by which a user can change a configuration of a printer driver using a device companion application or UWP application created in a Universal
Windows Platform environment. For example, the printer driver may be a universal printer driver. The examples provide a process by which a Print Ticket or Print Ticket template received by the device companion application or UWP application can be modified so as to include a command or instruction for changing a configuration of the printer driver. The printer driver receives the modified Print Ticket or Print Ticket template together with an image forming job and executes the command or instruction to change the configuration of the printer driver. For example, the configuration of the printer driver which can be changed may be a setting for which system or administrator privileges are needed. For example, the configuration of the printer driver which can be changed may not be directly changeable using the device companion application or UWP application. The examples described allow or enable a user to auto-update a printer driver, set a port setting of a printer driver that is selected automatically or by a user, and change settings of a printer
corresponding to a printer driver, for example through a user interface.
Therefore, the UWP application as disclosed herein may be better utilized as a print management tool.
[0062] While various examples have been described with reference to the drawings, it will be understood that various changes in form and details may be made therein without departing from the spirit and scope as defined by the following claims.

Claims

WHAT IS CLAIMED IS:
1. An apparatus, comprising:
a memory to store instructions;
a processor to execute the instructions to obtain an input relating to an image forming job; and
a driver, stored in the memory, to:
provide a print ticket to a universal windows platform (UWP) application in response to the processor obtaining the input relating to the image forming job,
receive, from the UWP application, the image forming job which includes a modified print ticket generated by the UWP application based on the print ticket, the modified print ticket including a command to change a
configuration of the driver,
extract the command from the modified print ticket, and execute the command to change the configuration of the driver.
2. The apparatus of claim 1 , wherein the print ticket provided to the UWP application includes at least one of print capabilities information which contains configuration instructions supported by the driver, command definitions which can be processed by the driver, or a print ticket template.
3. The apparatus of claim 1 , wherein the command is to change the configuration of the driver regarding at least one of port setting information corresponding to an image forming apparatus to perform the image forming job, setting the image forming apparatus to perform the image forming job as a default image forming apparatus, or updating capability information
corresponding to the image forming apparatus to perform the image forming job.
4. The apparatus of claim 1 , wherein the driver includes:
a spooler, and a command filter including a command extractor to extract the command from the modified print ticket when the command filter is executed by the spooler, and a command processor to receive the command extracted by the command extractor and to execute the command to change the configuration of the driver.
5. The apparatus of claim 4, wherein
the spooler and command extractor operate with system privileges to enable the driver to change the configuration of the driver, and
a UWP platform, on which the UWP application is executed, is to restrict access to the spooler.
6. The apparatus of claim 1 , wherein
in response to a selection of an image forming apparatus, the processor is to automatically generate the image forming job, and
the image forming job includes print data and the modified print ticket.
7. The apparatus of claim 6, wherein the image forming job is an XPS image forming job and the print data is XPS data.
8. An apparatus, comprising:
a memory to store instructions;
a processor to execute the instructions to obtain an input relating to an image forming job; and
a universal windows platform (UWP) application to:
obtain, from a driver and in response to the processor obtaining the input relating to the image forming job, a print ticket which includes configuration information of the driver,
modify the print ticket to generate a modified print ticket which includes a command, that when executed, changes a configuration of the driver, and transmit the image forming job to the driver, the image forming job including the modified print ticket which includes the command.
9. The apparatus of claim 8, wherein the print ticket obtained by the UWP application includes at least one of print capabilities information which contains configuration instructions supported by the driver, command definitions which can be processed by the driver, or a print ticket template.
10. The apparatus of claim 8, wherein the command is to change the configuration of the driver regarding at least one of port setting information corresponding to an image forming apparatus to perform the image forming job, setting the image forming apparatus to perform the image forming job as a default image forming apparatus, or updating capability information
corresponding to the image forming apparatus to perform the image forming job.
1 1 . The apparatus of claim 8, wherein the UWP application includes: a print ticket handler to obtain the print ticket from the driver, and to obtain a list of commands which can be processed by the driver based on the configuration information of the driver included in the print ticket, and
a command generator is to receive the list of commands from the print ticket handler and to generate the command to change the configuration of the driver based on the list of commands received from the print ticket handler, wherein the print ticket handler is to receive the command generated by the command generator and to modify the print ticket obtained from the driver to generate the modified print ticket which includes the command.
12. The apparatus of claim 1 1 , further comprising:
a user interface to receive an input to select the configuration information to be changed with respect to the driver, and
the command generator is to generate the command to the change the configuration of the driver based on the input received by the user interface.
13. The apparatus of claim 8, wherein
in response to a selection of an image forming apparatus, the processor is to automatically generate the image forming job, and
the image forming job includes XPS data and the modified print ticket.
14. A non-transitory machine readable storage comprising instructions that when executed cause a processor to:
obtain a print ticket which includes configuration information of a driver corresponding to an image forming apparatus to perform an image forming job, based on the configuration information of the driver included in the print ticket, generate, by a universal windows platform (UWP) application, a modified print ticket which includes a command to change the configuration information of the driver,
transmit the image forming job to the driver, the image forming job including the modified print ticket,
extract, from the modified print ticket included in the image forming job, the command to change the configuration information of the driver, and
execute the command to change the configuration information of the driver.
15. The non-transitory machine readable storage of claim 14, wherein the print ticket includes at least one of print capabilities information which contains configuration instructions supported by the driver, command definitions which can be processed by the driver, or a print ticket template, and
the command included in the modified print ticket is to change the configuration of the driver regarding at least one of port setting information corresponding to the image forming apparatus to perform the image forming job, setting the image forming apparatus to perform the image forming job as a default image forming apparatus, or updating capability information corresponding to the image forming apparatus to perform the image forming job.
PCT/US2019/040134 2019-07-01 2019-07-01 Receiving modified print ticket to change configuration of the driver WO2021002842A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2019/040134 WO2021002842A1 (en) 2019-07-01 2019-07-01 Receiving modified print ticket to change configuration of the driver

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/040134 WO2021002842A1 (en) 2019-07-01 2019-07-01 Receiving modified print ticket to change configuration of the driver

Publications (1)

Publication Number Publication Date
WO2021002842A1 true WO2021002842A1 (en) 2021-01-07

Family

ID=74101214

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2019/040134 WO2021002842A1 (en) 2019-07-01 2019-07-01 Receiving modified print ticket to change configuration of the driver

Country Status (1)

Country Link
WO (1) WO2021002842A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167260B2 (en) * 2000-04-07 2007-01-23 Seiko Epson Corporation Control of distributed printers using virtual printer driver execute module
US7809807B2 (en) * 2001-08-08 2010-10-05 Canon Kabushiki Kaisha Image forming system, image forming method, and server
US7839516B2 (en) * 2001-09-14 2010-11-23 Canon Kabushiki Kaisha Printing control method and apparatus
US7916332B2 (en) * 2006-07-31 2011-03-29 Canon Kabushiki Kaisha Document processing apparatus and a method for controlling a document processing apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167260B2 (en) * 2000-04-07 2007-01-23 Seiko Epson Corporation Control of distributed printers using virtual printer driver execute module
US7809807B2 (en) * 2001-08-08 2010-10-05 Canon Kabushiki Kaisha Image forming system, image forming method, and server
US7839516B2 (en) * 2001-09-14 2010-11-23 Canon Kabushiki Kaisha Printing control method and apparatus
US7916332B2 (en) * 2006-07-31 2011-03-29 Canon Kabushiki Kaisha Document processing apparatus and a method for controlling a document processing apparatus

Similar Documents

Publication Publication Date Title
US8762988B2 (en) User terminal device for managing network device and method thereof
US8773691B2 (en) Printing control apparatus, printing control method, and storage medium
US9681018B2 (en) Information processing device and non-transitory computer-readable medium storing instructions for print control
US8711416B1 (en) Server providing pseudo print preview and final regular preview to device
US20110069341A1 (en) Print control device and controlling method thereof
US8826126B1 (en) Print preview with cloud printing
US9807260B2 (en) Method and device for using cloud print service
WO2011135793A1 (en) Print system, client, control method, and program
US9338314B2 (en) User terminal apparatus and method of control thereof
US9830544B2 (en) Image processing apparatus, control method, and storage medium for executing print processing using a password including selecting a personal identification code type that indicates a purpose for using the password
JP6578851B2 (en) Information processing apparatus and program
US20090303515A1 (en) Printer driver program, and printing instruction device
US8891111B2 (en) Adaptable printer driver
JP2010237803A (en) Printing control method, printing control apparatus, and computer program
JP4774078B2 (en) Information processing device
US8659775B2 (en) Print shop management method for customizing print-on-demand driver
JP2008310495A (en) Print control unit, print control method, and storage medium
US20120200877A1 (en) Information processing apparatus and control method
JP2012155401A (en) Printing system, printing device, control method of printing system, control method of printing device, and program
JP2009009356A (en) Printing controller and printing system
WO2021002842A1 (en) Receiving modified print ticket to change configuration of the driver
US8108565B2 (en) Host apparatus connected to image forming apparatus, remote configuration system including the same and remote configuration method using host apparatus
JP2008059484A (en) Information processing device, driver processing method, storage medium, and program
US10409537B2 (en) Reprographic apparatus comprising a user interface generating device and method therefor
JP2009151678A (en) Image forming apparatus and image forming system

Legal Events

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

Ref document number: 19936264

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19936264

Country of ref document: EP

Kind code of ref document: A1