The present invention relates to an information processing apparatus, a control method, and a non-transitory computer-readable storage medium storing a program.
Conventionally, a printing apparatus that receives print data from a communication terminal via a network and forms an image on a sheet based on the received print data is known. There is also known generating print data to be transmitted to a printing apparatus using a printer driver (or a print application) designed to use each printing apparatus. Recently known is generating print data based on a standard specification without using the printer driver (or the print application) designed to use each printing apparatus. The specification of Internet Printing Protocol (IPP) that is the standard specification is disclosed, and various OSs incorporate a standard driver that generates print data in accordance with IPP.
Japanese Patent Laid-Open No. 2006-91987 describes that the hierarchical structure of a hierarchized setting menu is changed, thereby easily displaying a desire setting item.
The present invention provides an information processing apparatus capable of providing hierarchized user interface display, a control method, and a non-transitory computer-readable storage medium storing a program.
The present invention in one aspect provides a control method of an information processing apparatus implemented by an application that extends a function of print data generation software stored in the information processing apparatus, comprising: acquiring a medium type supported by a printing apparatus; identifying, based on the acquired medium type, a group to which the medium type belongs; identifying a display text corresponding to the medium type based on the acquired medium type; causing a display unit of the information processing apparatus to display the group in accordance with selection of an object for setting a medium type of a medium to be used for printing; and controlling to cause the display unit to display the display text based on selection of the group.
According to the present invention, it is possible to provide hierarchized user interface display.
Further features of the present invention will become apparent from the following description of exemplary embodiments with reference to the attached drawings.
Hereinafter, embodiments will be described in detail with reference to the attached drawings. Note, the following embodiments are not intended to limit the scope of the claimed invention. Multiple features are described in the embodiments, but limitation is not made an invention that requires all such features, and multiple such features may be combined as appropriate. Furthermore, in the attached drawings, the same reference numerals are given to the same or similar configurations, and redundant description thereof is omitted.
In a configuration that generates print data based on a standard specification, a hierarchized menu cannot be provided in some cases. Hence, in the configuration that generates print data based on a standard specification, it is demanded that a hierarchized user interface display can be provided.
According to the present disclosure, it is possible to provide a hierarchized user interface display.
The CPU 111 performs overall control of the host computer 101. The ROM 112 is a nonvolatile memory and stores, for example, an initialization program. The external storage device 114 stores an application program group, an Operating System (OS), print data generation software, and various kinds of data. The RAM 113 is a volatile memory and is used as a work memory when executing various kinds of programs stored in the external storage device 114, and the various kinds of programs can operate in the host computer 101.
Also, the external storage device 114 may store management software that manages medium information of a printing apparatus 102. By the management software, a user can register the medium information in the printing apparatus 102 or a printer driver. More specifically, for example, the management software downloads medium information supported by the printing apparatus 102 from a server (not shown) based on an instruction from the user and registers the medium information in the printing apparatus 102 or the printer driver. By the management software, the user can add new medium information to the printing apparatus 102, and also can cause the apparatus to display the new medium information on the setting screen of the printer driver such that it can be selected. Also, the user can customize the medium information downloaded from the server by the management software and register it as, for example, custom paper in the printing apparatus 102. In this case, the user can set a name on the management software. Note that the medium information include, for example, information such as a medium ID, a category, a thickness, an ink drying time, an ink use amount, a profile, and a calibration. In a case of custom paper, a name set by the user is also included. When registering medium information in the printing apparatus 102 by the management software, a medium setting command shown in
Note that in this embodiment, the CPU 111 performs processing in accordance with the procedure of a program stored in the ROM 112, thereby executing processing according to a function (to be described later) in the host computer 101 and a flowchart (to be described later). The printing apparatus 102 that is a device is communicably connected to the host computer 101 via the input/output interface 116. Here, the host computer 101 and the printing apparatus 102 are separately formed. However, these may be formed as one information processing apparatus. Note that as the printing apparatus, an inkjet printer configured to perform printing by discharging ink onto a print surface will be described as an example. However, printing may be executed by another method (for example, an electrophotographic method). In addition, as the host computer 101, a desktop personal computer, a smartphone, or a laptop may be used. In a case where the host computer 101 and the printing apparatus 102 are connected via a network, the network can be any of a wired network, a wireless network, and a network including both. The network may include an apparatus different from the host computer 101 and the printing apparatus 102, for example, a router operating as an access point.
The disk device 210 is a storage unit formed by, for example, a Hard Disk Drive (HDD) or a Solid State Drive (SSD), and stores programs and data. In this embodiment, the printing apparatus 102 includes a medium database in the disk device 210. The medium database is a database that stores medium information of a medium supported by the printing apparatus 102. The medium database is formed by medium information transmitted from the above-described management software in the host computer 101. For example, the medium database stores information included in a medium setting command shown in
The communication unit 204 is a network interface and performs control to transfer data to/from an external apparatus via a network. The network can be any of a wired network, a wireless network, and a network including both. Also, the communication unit 204 can execute communication corresponding to the communication standard (Ethernet, WiFi®, or the like) of the network.
The operation unit 205 is configured to include, for example, a touch panel and a button, and can accept a user operation. The display unit 206 is a display device, and can display various kinds of user interface screens. For example, the display unit 206 can display the state of the printing apparatus 102. Note that the display unit 206 may be formed as a touch panel and configured to include the operation unit 205. The printing unit 207 includes a printhead that discharges ink droplets from nozzles, and an ink supply unit that supplies ink, and forms an image on a print medium (medium) such as a sheet fed from the paper feed unit 208. Note that a sheet will sometimes be described as an example of a print medium hereinafter.
The paper feed unit 208 can feed, for example, a cut sheet or a roll sheet, and feeds a sheet to the printing unit 207 based on an instruction from the CPU 201. The finishing unit 209 performs finishing processing (finishing) of a sheet printed by the printing unit 207. The finishing unit 209 includes, for example, a stapler that binds each copy using needles, a cutter that cuts a roll sheet at a designated position, a laminator that performs lamination processing for a sheet. For example, the finishing unit 209 may be configured to apply special transparent ink for the purpose of obtaining glossiness or improving weatherability. The processing of the finishing unit 209 is controlled by an instruction from the CPU 201. The disk device 210 is a mass storage device such as a hard disk or an SSD and stores print data transmitted from the host computer 101, and the like.
Note that every time processing of each unit is ended, the operation of the extension application 303 may be ended. In this case, every time a request to use each unit is received, the OS activates the extension application 303. Another form is also possible. For example, the OS may end the operation of the extension application 303 if processing of the print setting screen extension unit 304 is ended, but may keep the extension application 303 activated even if processing of the layout extension unit 305 is ended.
The layout extension unit 305 and the preview unit 306 will be described. The layout extension unit 305 performs layout processing based on intermediate data before processing by the print data generation software 302. The intermediate data is data generated based on a print instruction output from an application 301 such as a document creation application, and is, for example, data of the XML Paper Specification format (data of the XPS format). For example, the layout extension unit 305 provides a layout printing function (also called N-in-1 printing) of arranging a plurality of pages on a surface of one sheet and printing. The preview unit 306 can execute at least one of display and editing of print data generated by the print data generation software 302. Also, each unit of the extension application 303 can display a user interface screen (UI screen). However, the UI screen may not be displayed. For example, for the layout extension unit 305, only editing of intermediate data may be performed without displaying a UI screen, and the edited intermediate data may be output to the print data generation software 302. Note that if the layout extension unit 305 can display a UI screen, for example, a preview screen including a preview image and a setting area where print setting information is changed may be displayed based on intermediate data.
Processing from accepting a print instruction by the user to transmitting print data to the printing apparatus 102 will be described here.
The user instructs printing via the application 301. The application 301 is software that creates a content (drawing data) to be printed. For example, the application 301 is a document creation application or a spreadsheet application. The application 301 displays a print setting screen provided by the print setting screen extension unit 304. The print setting screen is, for example, a screen shown in
Based on the print instruction, the OS generates intermediate data based on output data and the print setting information from the application 301, and activates the layout extension unit 305 of the extension application 303. Note that the output data from the application 301 is, for example, data of the Graphic Device Interface format (data of the GDI format) or data of the XML Paper Specification format (data of the XPS format). Drawing data corresponding to the content to be printed and the print setting information are included in the intermediate data. Note that the OS generates, for example, data of the XPS format as intermediate data based on data of the GDI format output from the application 301. If the application 301 outputs data of the XPS format as the output data, the OS may directly transfer the data of the XPS format to the layout extension unit 305. If the application 301 outputs data of the XPS format as the output data, the OS may generate data of the XPS format by correcting the data of the XPS format as the output data. Based on the drawing data included in the generated intermediate data and the print setting information generated by, for example, the screen shown in
Next, the OS activates the preview unit 306 of the extension application 303. The preview unit 306 acquires print data generated by the print data generation software 302 and displays a print preview. The user confirms, on the print preview, that a desired printing result can be obtained, and then instructs to start printing using the UI screen of the print preview. Upon accepting the print start instruction from the user, the preview unit 306 outputs the print data. The print data output from the preview unit 306 is transmitted to the printing apparatus 102. The printing apparatus 102 performs printing on a medium based on the print data transmitted from the host computer 101.
With the above-described configuration, a layout function and a print preview function, which the print data generation software 302 does not have, can be implemented by the extension application 303. The configuration of the extension application 303 is not limited to that having all the above-described functions, and only some of the functions may be provided, or another function may be provided. Note that the extension application 303 is sometimes simply called print software. It can be said that the extension application 303 has at least one of a function of displaying a setting screen, a function of editing input data to the print data generation software 302, and a function of displaying print data, as described above.
Note that operations according to this embodiment to be described later will be described as operations in the extension application 303 using communication by a predetermined protocol, that is, IPP communication. However, some operations may be implemented by operations in a standard driver incorporated in the OS.
Upon accepting the printer registration instruction, in S102, the CPU 111 of the host computer 101 generates a printer attribute acquisition operation 701 shown in
Each of the Japanese terms that are arranged in a “JAPANESE” column (from “” to “
”) in
As will be described later with reference to
The media-type-supported attribute indicates the types of media supported by the printing apparatus 102. In
The media-source-supported attribute indicates the types of feed ports provided in the printing apparatus 102. In this example, it is indicated that the printing apparatus 102 supports auto (auto), main (main feed port), tray-1 (first tray), and tray-2 (second tray).
The Printer-strings-languages-supported attribute indicates the types of languages of display texts supported by the printing apparatus 102.
Note that not only
Upon receiving the printer attribute acquisition operation 703, in S105, the CPU 201 of the printing apparatus 102 generates a printer attribute response 704 shown in
Upon receiving the HTTP GET method, the CPU 201 of the printing apparatus 102 generates a message catalog file 801 in Japanese shown in
The CPU 201 of the printing apparatus 102 refers to the IPP compatible database 1000 shown in ”) of the IPP compatible database 1000, information in the first row of the message catalog file 801 is acquired. The CPU 201 of the printing apparatus 102 repeats the above-described processing for all supported media, thereby generating the message catalog file 801 shown in
” to “
”) means each of the English terms that are arranged in
” For the remaining rows as well, all the display texts (Japanese) of the vendor definition keywords included in the media-type-supported attribute of the printer attribute response 702 are defined by the message catalog file 801.
Note that if the IPP client side handles switching of a plurality of languages, S104 to S107 are repeated, thereby acquiring display texts in a plurality of different languages. For example, when selecting English as the language of display texts, the CPU 111 of the host computer 101 generates a printer attribute acquisition operation 705 shown in
The CPU 111 of the host computer 101 can acquire a printer attribute response 706 shown in
Upon receiving the printer attribute response 706, in S106, the CPU 111 of the host computer 101 issues an HTTP GET method to the URL of the printer-strings-uri attribute value included in the printer attribute response 706. A display text (English) can thus be acquired. Upon receiving the HTTP GET method, in S107, the CPU 201 of the printing apparatus 102 transmits a requested message catalog file 802 in English to the host computer 101.
Upon receiving the message catalog file 801, the CPU 111 of the host computer 101 creates a printer queue in S108 and complete registration of the printer. Note that the same applies to a case where the message catalog file 802 is received.
In S109, the CPU 111 of the host computer 101 accepts a print setting screen invocation instruction from the user via the operation unit. In S110, the CPU 111 of the host computer 101 displays a print setting screen 500 shown in
An item 504 is an item configured to accept a medium type setting. By selecting a medium type in a drop-down menu 505, the user can change the medium type. Medium types selectable in the drop-down menu 505 are decided based on the media-type-supported attribute included in the printer attribute response 702.
If the user presses a cancel button 506, the issue of a print job is stopped. A decision button 507 is a print start button, and if the user presses this, the CPU 111 of the host computer 101 determines that a print start instruction is received, and starts printing.
A check box 511 is a check box configured to accept selection concerning whether to do category display. If the check box 511 is ON, the CPU 111 of the host computer 101 controls to do category display to be described later. If the check box 511 is OFF, control is performed not to do category display. The CPU 111 of the host computer 101 stores, in the RAM 113, the ON/OFF information of the check box 511.
The screens shown in
” in
” in
” in
” in
” in
” in
” in
” in
” in
” in
” in
” in
” in
”, “
”, “
”, “
”, “
”, and “
” are displayed in a drop-down menu 508. A “>” mark is displayed for each option except auto select, thereby indicating that a lower layer exists. This hierarchy display is performed based on a display list 1002 shown in
” is displayed. The display list 1002 will be described later.
”, and display texts “
”, “
”, and “
” are displayed in the area. These correspond to display texts (Japanese) “
”, “
”, and “
” corresponding to the category “photo” in the display list 1002 shown in
In this embodiment, display is done as shown in
”, “
”, “
”, “
”, “
”, “
”, “
”, “
”, “
”, and “
” are displayed. The display shown in
In step S201, the CPU 111 transmits the printer attribute acquisition operation 701 to the printing apparatus 102, thereby acquiring the printer attribute response 702. The CPU 111 stores, in the RAM 113, the media-type attribute values of all media supported by the printing apparatus 102 and set in the printer attribute response 702. Note that step S201 corresponds to S102 and S103 in
In step S202, the CPU 111 determines whether the printer attribute response 702 supports display of vendor definition display texts. More specifically, for example, if a printer-strings-languages-supported attribute value exists in the printer attribute response 702, and a valid value is included, the CPU 111 determines that the printer attribute response 702 supports display of vendor definition display texts. If it is determined that the printer attribute response 702 supports display of vendor definition display texts, the process advances to step S203. On the other hand, if it is determined that the printer attribute response 702 does not support display of vendor definition display texts, the process advances to step S204.
In step S203, the CPU 111 communicates with the printing apparatus 102, thereby acquiring a URL in the language selected by the host computer 101. The CPU 111 accesses the URL, thereby acquiring a message catalog file in which display texts are described. For example, to support Japanese and English, first, the CPU 111 generates the request 703 for acquiring a message catalog file in Japanese and transmits it to the printing apparatus 102. In the request 703, attributes-natural-language-ja and requested-attributes=printer-strings-uri are set. The CPU 111 receives the response 704 to the request 703, thereby acquiring a URL corresponding to Japanese, in this example, http://192.168.115.10/strings/ja.txt. The CPU 111 accesses the URL, thereby acquiring the message catalog file 801 in Japanese. Next, the CPU 111 generates the request 705 for acquiring a message catalog file in English and transmits it to the printing apparatus 102. In the request 705, attributes-natural-language=en and requested-attributes=printer-strings-uri are set. The CPU 111 receives the response 706 to the request 705, thereby acquiring a URL corresponding to English, that is, http://192.168.115.10/strings/en.txt. The CPU 111 accesses the URL, thereby acquiring the message catalog file 802 in English.
If acquisition of message catalog files in all languages selected by the host computer 101 is ended, the process advances to step S204.
In step S204, the CPU 111 generates the display list 1002 in the following way. The CPU 111 determines, for each keyword of the media-type-supported attribute value acquired in step S201, whether the keyword matches a known standard definition keyword value. For example, “auto”, “stationery”, “photographic”, “disc”, and the like are known as known standard definition keyword values. Upon determining that the keyword matches the standard definition keyword value, the CPU 111 sets a standard definition flag to “TRUE”, and sets the category to the keyword value itself. For example, if the media-type-supported attribute value acquired in step S201 is “Stationery”, the CPU 111 determines that it matches a known standard definition keyword value. Then, the CPU 111 sets the standard definition flag to “True”, and sets the category to “Stationery” that is the keyword value. For “auto” that means automatic selection, no category is set as an exception. The CPU 111 then acquires a display text for each language concerning the standard definition keyword value from a known database stored in the ROM 112 or the RAM 113 in advance.
On the other hand, if it is determined that the keyword does not match the known standard definition keyword value, it may be a vendor definition keyword. Hence, the keyword value is divided by a hyphen “−” into DNS-Name and Base-Name. For example, if the media-type-supported attribute value acquired in step S201 is “com.example-photo-4065A3725632BC55BE16”, the CPU 111 divides the attribute value. That is, the CPU 111 divides the attribute value into “com.example” that is DNS-Name and “photo-4065A3725632BC55BE16” that is Base-Name. Also, if “−” is included in Base-Name, the CPU 111 further divides it into a category “photo” and an identifier “4065A3725632BC55BE16”. A Japanese display text corresponding to the attribute value is recorded in the message catalog file 801 acquired in step S203.
If the media-type attribute value is “com.example-photo-4065A3725632BC55BE16”, a text to be displayed is defined in a row with “media-type.com.example-photo-4065A3725632BC55BE16” in the message catalog file 801. In this example, the text is “”. Since the category “photo” is a standard definition keyword value, a display text for each language is acquired from a known database stored in the ROM 112 or the RAM 113 in advance. Then, the CPU 111 generates information in which the media-type-supported attribute value, the flag representing whether it is a standard definition, the category, and the display text are associated with each other. This processing is repeated for each media-type-supported attribute value, thereby generating the display list 1002. Note that although the display texts are defined for both Japanese and English in the display list 1002, display texts in only one of the languages may be defined.
In step S205, the CPU 111 determines whether to perform category display of media. For example, if the check box 511 is ON, the CPU 111 determines to perform category display and advances to step S206. If the check box 511 is OFF, the CPU 111 determines not to perform category display and advances to step S207. If an error occurs in step S204 in which the display list 1002 is generated, it may be determined not to perform category display.
In step S206, the CPU 111 generates GUI display data based on the display list 1002 generated in step S204. First, the CPU 111 generates the hierarchical structure of data of display texts based on the display list 1002.
On the other hand, if it is determined, in step S205, not to perform category display, the process advances to step S207 to generate GUI display data based on the display list 1002 generated in step S204. For example, if the host computer 101 selects Japanese from printer support languages acquired by the printer attribute response 702, the CPU 111 displays a list of Japanese display texts in the display list 1002. For example, display data for displaying the drop-down menu 510 shown in
Processing of generating the IPP compatible database 1000 in the printing apparatus 102 will be described next with reference to
“Add-media” in the first row indicates a medium type addition instruction. “Mediagroup=0” in the second row indicates that the medium group belongs to 0 (plain paper). The third row indicates a medium-specific ID that is shown as, for example, a random 128-bit value. The fourth row indicates a display name to be displayed on a user interface screen. From the fifth row, parameters to be referred to at the time of printing are set and, for example, a lookup table for color processing is shown. The above-described information may be defined based on the setting contents on the setting screen of the management software of the host computer 101 or medium information acquired from the server by the management software.
Upon receiving the medium setting command 803 from the host computer 101, the CPU 201 of the printing apparatus 102 stores it in a medium database stored in the ROM 202. Then, as will be described later, for the IPP compatible database 1000, the CPU 201 of the printing apparatus 102 generates an attribute value that can be designated in IPP communication based on the medium information designated by the medium setting command 803 and adds the attribute value to the IPP compatible database 1000.
In step S301, the CPU 201 acquires one record of data from a medium database stored in the ROM 202. One record includes a medium group, a medium-specific ID, a name, and a print parameter as shown in
In step S302, the CPU 201 acquires a standard definition keyword value used in IPP communication from the medium group. The medium group is recorded as, for example, one of numerical values of 0 to 5. The CPU 201 refers to a conversion table 1001 shown in
In step S303, the CPU 201 determines whether the length of a character string formed by connecting the DNS name “com.example” representing the vendor definition, the category keyword (standard definition keyword value), and the medium ID by hyphens “−” is a predetermined length or less. In this embodiment, it is determined whether, for example, the length is equal to or less than a predetermined length corresponding to 38 to 40 characters. If it is determined that the length of the character string is the predetermined length or less, the process advances to step S304. If it is determined that the length of the character string is not the predetermined length or less, the process advances to step S305. It is determined whether the length of the character string is the predetermined length or less because the processible keyword length is limited depending on the specifications of the host computer 101 in some cases. For example, if the keyword is long, a fault occurs in processing. Hence, such a fault can be avoided by setting the length of the keyword to the predetermined length or less.
In step S304, the CPU 201 performs processing to make the medium-specific ID short such that the length of the character string formed by connecting the DNS name “com.example” representing the vendor definition, the category keyword, and the medium-specific ID by hyphens “−” is a predetermined length or less. For example, the hyphen of the medium-specific ID is removed to remove characters from the right end such that the length does not exceed the predetermined length.
In step S305, the CPU 201 connects the DNS name “com.example” representing the vendor definition, the category keyword, and the medium-specific ID by hyphens “−”, and writes the character string as a record in the IPP compatible database 1000.
In step S306, the CPU 201 determines whether all the records in the medium database are processed. If it is determined that not all the records are processed, the processing from step S301 is repeated. On the other hand, if it is determined that all the records are processed, the processing shown in
As described above, according to this embodiment, a hierarchized menu can be displayed in a print system using IPP communication. As a result, the user can easily select a target medium type and improve convenience.
Embodiment(s) of the present invention 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 invention has been described with reference to exemplary embodiments, it is to be understood that the invention 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.
This application claims the benefit of Japanese Patent Application No. 2023-023636, filed Feb. 17, 2023, which is hereby incorporated by reference herein in their entirety.
Number | Date | Country | Kind |
---|---|---|---|
2023-023636 | Feb 2023 | JP | national |