Program and control method
The extension application addresses the limitations of standard printer drivers by adding missing device capabilities and enabling users to specify enhanced functions, thereby improving printing device functionality.
Patent Information
- Application Number
- JP2025152710
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-09-12
- Publication Date
- 2025-12-05
AI Technical Summary
Existing extension applications for printer drivers lack the ability to fully utilize the capabilities of diverse printing devices, limiting the functionality that can be provided beyond standard drivers.
An extension application that acquires attribute data from the printing device, adds missing functionality information, and displays a setting screen for specific functions, allowing users to specify enhanced features supported by the device.
Enables better functionality and feature utilization of printing devices by integrating additional functions not initially supported by standard drivers, enhancing user control over printing options.
Smart Images

Figure 2025178309000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a program and a control method, and more particularly to a technology for extended applications. [Background technology]
[0002] A known configuration uses a printer driver installed on a host computer as software for controlling the printing device to issue print instructions to a printing device connected to the host computer. An operating system (OS), which is the basic software, is installed on the host computer, and the printer driver is configured according to the specifications defined by the OS and runs when called by the OS. By providing a printer driver that conforms to the OS specifications, a printing device vendor can provide a means for issuing print instructions to the printing device using the OS.
[0003] In recent years, Windows® has provided standard class drivers (hereinafter also referred to as "standard drivers") that can be used across printing devices provided by multiple vendors. Such standard drivers are included in the OS package and can be easily used by connecting any printing device to a host computer. This eliminates the need to separately install a model-specific printer driver suited to the printing device, providing great convenience. Furthermore, standard drivers are configured to allow printing functions to be specified based on PrintCapability generated based on information obtained from the connected printing device. This allows users of standard drivers to specify printing functions that correspond to the capabilities of the connected printing device, even when using a single standard driver.
[0004] A standard driver can be associated with an application for extending functions (hereinafter also referred to as an "extension application"). The extension application can be provided by the vendor that supplies the printing device. By providing this extension application, the vendor can provide functions (extension functions) that cannot be achieved with the standard driver alone. Patent Document 1 discloses a technology for extending functions such as a stamp function using an extension application. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Japanese Patent Application Publication No. 2019-74906 Summary of the Invention [Problem to be solved by the invention]
[0006] The extension application in Patent Document 1 can edit the spool file passed to the standard driver. Therefore, the extension application edits the spool file and inserts a stamp, thereby realizing the stamp function. The spool file is converted by the standard driver into print data (referred to as a "print command" in Patent Document 1) and sent to the printing device.
[0007] However, in order for an extension application that extends the functionality of the standard driver to provide better functionality, further ingenuity is required. [Means for solving the problem]
[0008] In order to solve the above-mentioned problems, one aspect of the program of the present invention is an extension application program for extending the functionality of print data generation software that generates print data, which causes a computer to execute the following steps: acquiring attribute data of the printing device output from the printing device; acquiring data indicating a printing function; and, if information indicating a specific function is not included in the acquired data indicating the printing function, adding information related to the specific function based on the attribute information included in the acquired attribute data; and displaying a setting screen including setting items for the specific function based on the information related to the added specific function. [Effects of the Invention]
[0009] One aspect of the present invention allows for better functionality to be provided as an extended application. [Brief explanation of the drawings]
[0010] [Figure 1] FIG. 1 is a block diagram showing the hardware configuration of a printing system. [Figure 2] FIG. 1 is a block diagram of a printing system. [Figure 3] 10 is a flowchart of a process for editing print function information of a print function extension unit. [Figure 4] Example response for Get-Printer-Attributes and example data for a Validate-Job operation. [Figure 5] Example of an extensions list. [Figure 6] PDC example. [Figure 7] Example of a feature map list. [Figure 8] Example of a list of additional features. [Figure 9] PrintCapabilities example. [Figure 10] An example of the screen displayed by the print settings screen expansion unit. [Figure 11] 10 is a flowchart of a print data editing process of the print data editing unit. [Figure 12] 10 is a flowchart of a process for editing print function information of a print function extension unit. [Figure 13] PDC example. DETAILED DESCRIPTION OF THE INVENTION
[0011] Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. Note that the following embodiments do not limit the scope of the present invention as defined in the claims, and not all of the combinations of features described in the embodiments are necessarily essential to the solution of the present invention. Note that the same components are given the same reference numerals and their description will be omitted.
[0012] <<Embodiment 1>> <Printing system hardware configuration> 1 is a block diagram showing the hardware configuration of a printing system. In this diagram, a host computer 101 is an example of an information processing device, and includes an input interface 110, a CPU 111, a ROM 112, a RAM 113, an external storage device 114, an output interface 115, and an input / output interface 116. Input devices such as a keyboard 118 and a pointing device 117 are connected to the input interface 110, and a display device such as a display unit 119 is connected to the output interface 115.
[0013] An initialization program is stored in the ROM 112, and application programs, an operating system (OS), print data generation software, and various other data are stored in the external storage device 114. The RAM 113 is used as a work memory when the various programs stored in the external storage device 114 are executed.
[0014] In this embodiment, the CPU 111 executes processing according to the procedures of a program stored in the ROM 112, thereby executing functions of the host computer 101 described below and processing related to flowcharts described below. The printing device 102, which is a device, is connected to the host computer 101 via an input / output interface 116. Here, the host computer 101 and the printing device 102 are configured separately, but they may also be configured as a single information processing device. Note that the printing device will be described as an inkjet printer that prints by ejecting ink onto paper, but printing may also be performed by other methods (for example, electrophotography). The host computer 101 may be a desktop computer, a smartphone, or a laptop computer.
[0015] <Printing system configuration> 2 is a diagram showing a schematic configuration of a printing system. Here, the description is based on the premise that the printing system uses a host computer 101 that has Microsoft® Windows® 10 installed as its operating system. FIG. 2(a) shows a typical configuration when an extension application 204 is not associated with print data generation software 202 and the printing device 102.
[0016] The drawing application 201 is software that creates content (drawing data) to be printed. For example, it corresponds to a word processing application or a spreadsheet application. When the drawing application 201 receives a print request from a user, it issues a print instruction to the OS. The print instruction includes print setting information for instructing the operation of the print data generation software 202 and the printing device 102. The print setting information is also called a PrintTicket (hereinafter, "PT").
[0017] To output print setting information, the drawing application 201 can display a print setting screen provided by the print data generation software 202, the OS, or the drawing application 201. The print setting screen includes setting items (hereinafter also referred to as "control items") indicating configurable print functions and control items indicating their setting values according to capability information (information configurable as print settings) acquired from the print data generation software 202. The capability information is also referred to as PrintCapabilities (hereinafter "PC"). The print data generation software 202 determines the PC based on print function information 203. The print function information 203 is data indicating all configurable print functions, their setting values, and the exclusive relationships between the setting values. The print function information 203 is also referred to as PDC (Print Device Capabilities). The print function information 203 is included in a configuration file of the print data generation software 202 and stored in the external storage device 114 as an unmodifiable file. Alternatively, the print data generation software 202 can dynamically generate the print function information 203. Specifically, the print data generation software 202 or the OS can be configured to acquire printing device attribute data from the printing device 102 and generate printing capability information 203 according to the attribute information in the acquired attribute data. Note that when the printing capability information 203 is dynamically generated, the generated printing capability information 203 can be edited. The printing device attribute data acquired from the printing device 102 will be described later using FIG. 4(a).
[0018] This configuration allows the print data generation software 202 to be configured so that the user can specify the print functions available on each connected printing device 102. That is, even when printing devices with different functions or printing devices developed by different vendors are connected, the print data generation software 202 can be configured so that the user can specify the print functions available on the connected printing device. Here, a configuration using the IPP Class Driver included in Windows® 10 is described as the print data generation software 202. The IPP Class Driver is a printer driver that executes printing processing in accordance with the specifications of a standard printing protocol called IPP (Internet Printing Protocol) and is included in the OS package. The IPP Class Driver is not a printer driver specific to the model of the printing device 102, but a standard class driver that can be used by multiple printing devices. Furthermore, the IPP Class Driver acquires attribute data of the connected printing device 102 and generates print function information 203 based on the attribute data so that the user can specify the print functions supported by the connected printing device 102.
[0019] The OS generates intermediate data (also called input data) based on the print instruction output from the drawing application 201 and passes it to the print data generation software 202. The data output by the drawing application 201 for printing is data in Graphic Device Interface format (GDI format data) or XML Paper Specification format data (XPS format data). When an IPP Class Driver is used as the print data generation software 202, if the data output by the drawing application 201 is GDI format data, the OS converts the GDI format data output from the drawing application 201 into XPS format data. Then, it passes the converted XPS format data to the print data generation software 202 as intermediate data. If the data output by the drawing application 201 is XPS format data, the OS passes the XPS format data to the print data generation software 202 as intermediate data. The intermediate data includes drawing data, which is information about the picture to be formed on paper, and print setting information set by the user.
[0020] The print data generation software 202 converts the acquired intermediate data into print data that can be interpreted by the printing device 102 and sends it to the printing device 102. The print data includes drawing data, which is information about the picture to be formed on paper, and print setting attribute information generated based on print setting information set by the user. The print setting attribute information is attribute information that specifies print settings, and will be described in detail below using FIG. 4(b).
[0021] The printing device 102 prints on paper based on the print data sent from the print data generation software 202. At this time, the printing device 102 forms the drawing data included in the print data on paper in accordance with the print setting attribute information included in the print data. The print setting attribute information includes attribute information and its setting values for specifying print quality (priority on image quality, priority on speed, etc.) and double-sided printing. For example, if the print setting attribute information includes attribute information specifying double-sided printing, the printing device 102 executes double-sided printing.
[0022] 2(b) is a diagram showing a configuration when the extension application 204 is associated with the print data generation software 202 and the printing device 102. Note that configurations and processes not specifically mentioned below are the same as those in FIG. 2(a).
[0023] The extension application 204 is software for extending the functions of the print data generation software 202, and is not included (bundled) in advance with the OS. Therefore, the user must operate the host computer 101 to download and install the extension application 204 from a server via the Internet. Alternatively, the extension application 204 may be automatically installed when the printing device 102 is connected to the host computer 101. Specifically, when the printing device 102 is connected to the host computer 101, the OS acquires device identification information from the printing device 102. The OS may download and install the extension application 204 corresponding to the acquired device identification information from a server via the Internet. In other words, the print data generation software 202 and the extension application 204 are stored in the host computer 101 as separate files.
[0024] The print data generation software 202 and the extension application 204 may be updated and upgraded, but these update processes are also performed at different times. That is, the timing at which the host computer 101 acquires the print data generation software 202 is different from the timing at which the extension application 204 is acquired. Furthermore, the trigger at which the host computer 101 acquires the print data generation software 202 is different from the trigger at which the extension application 204 is acquired. When the extension application 204 is installed, the OS associates the extension application 204 with the print data generation software 202 and the printing device 102.
[0025] The extension application 204 described in this embodiment includes a print setting screen extension unit 205, a print setting editing unit 206, a print function extension unit 207, and a print data editing unit 208. The extension application 204 also includes shared information 209 that can be commonly accessed by each unit. The shared information 209 is actually a file saved in the external storage device 114 or information stored in the RAM 113. The extension application 204 writes and reads information to and from the shared information 209 by using an API (Application Program Interface) provided by the OS.
[0026] The extension application 204 may terminate operation each time processing of each unit is completed. In this case, the OS will launch the extension application 204 each time a request to use each unit is received. Another possible configuration is also possible. For example, the OS may terminate operation of the extension application 204 when processing of the print setting screen extension unit 205 is completed, but the OS may keep the extension application 204 running even after processing of the print setting editing unit 206 is completed.
[0027] When the drawing application 201 receives a print request from a user, it issues a print instruction to the OS. In this configuration, as in the configuration of FIG. 2(a), the drawing application 201 can display a print setting screen. In this configuration, the print setting screen provided by the extension application 204 is displayed. Specifically, the print setting screen provided by the print setting screen extension unit 205 included in the extension application 204 is displayed. Whether the print setting screen provided by the print setting screen extension unit 205 is displayed depends on the user's operation. Details of the print setting screen extension unit 205 will be described later using FIG. 10.
[0028] The OS generates intermediate data based on the print instruction output from the drawing application 201 and passes it to the print setting editing unit 206. The print setting editing unit 206 edits the print setting information (PT) included in the generated intermediate data and passes the edited print setting information to the OS. The print setting editing unit 206 can display a screen on the display unit 119 or not. The print setting editing unit 206 can determine whether or not to display a screen provided by the print setting editing unit 206 on the display unit 119, regardless of user operation. Therefore, it is preferable to configure settings and functions that must be specified by the user for each print job to be specifiable on a screen displayed by the print setting editing unit 206. Examples of such functions include secure printing using a personal identification number (PIN) and information related to destinations for fax transmissions (such as destinations and fax numbers). In this example, the print setting editing unit 206 stores the PIN information specified by the user in the print setting information and passes it to the OS. The PIN information specified by the user may also be stored in shared information 209, which is commonly accessible from each unit.
[0029] The OS passes the intermediate data including the edited print setting information to print data generation software 202. The print data generation software 202 converts the intermediate data into print data that can be interpreted by the printing device 102. The OS passes the converted print data to print data editing unit 208. Furthermore, the OS may be configured to pass the print setting information included in the intermediate data to print data editing unit 208.
[0030] The print data editing unit 208 edits the print data generated by the print data generation software 202 and passes the edited print data to the OS. For example, in the case of secure printing, the print data editing unit 208 reads the PIN information specified by the print setting editing unit 206 from the print setting information received from the OS or from the shared information 209, and adds it to the print setting attribute information included in the print data.
[0031] The OS sends the print data edited by the print data editing unit 208 to the printing device 102. The printing device 102 prints on paper based on the print data sent from the print data generation software 202.
[0032] The extension application 204 also includes a print function extension unit 207. The print function extension unit 207 can edit the print function information 203 (PDC) generated by the print data generation software 202 or the OS. This allows the print function extension unit 207 to add functions provided by the extension application 204, add functions supported by the printing device 102 but not by the print data generation software 202, and add exclusive relationships between print function setting values. The OS starts the print function extension unit 207 when the extension application 204 is first associated with the printing device 102 and the print data generation software 202. The OS may also start the print function extension unit 207 at other times, such as when the OS starts up. This allows the print function extension unit 207 to detect the extended function and add it to the print function information 203 in cases where an optional device (e.g., a finisher) is added to the printing device 102 later to extend printing functions.
[0033] The configuration of the extension application 204 for realizing this embodiment is not limited to one having all of the above-mentioned functions (units), but may also have only some of the functions or other functions. The extension application 204 is sometimes simply called print software. As described above, the extension application 204 can be said to have at least one of the following functions: a function for displaying a setting screen (print setting screen extension unit 205), a function for editing intermediate data input to the print data generation software 202 (print setting editing unit 206), a function for editing print data input to the printing device (print data editing unit 208), and a function for expanding functions that can be specified by the print data generation software (print function extension unit 207).
[0034] <Editing process of print function information by the print function extension unit> 3 is a diagram showing the main processing flow of the editing process of print function information by the print function extension unit 207 in this printing system. Hereinafter, the print function extension unit 207 may be described as the main body of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program.
[0035] The flow in FIG. 3 starts when the OS starts the print function extension unit 207, for example, when the extension application 204 is associated for the first time.
[0036] In S301, the print function extension unit 207 issues an IPP (Internet Printing Protocol) Get-Printer-Attributes operation to the printing device. The response received from the printing device in response to this operation is saved in RAM 113. The print function extension unit 207 may issue the IPP Get-Printer-Attributes operation directly, or may have the OS issue the operation using the OS's API. The Get-Printer-Attributes operation allows the requested attributes to be specified. The response received from the printing device is data indicating the attributes of the printing device, and an example of this response will be described later using FIG. 4(a). The print function extension unit 207 may request only the attributes shown in FIG. 4(a) that are required for the processing described later, or it may request all attributes without specifying any particular attributes.
[0037] In S302, the print function expansion unit 207 initializes N to 1. N=1 indicates that processing for function 1, which is the first function, is to be performed.
[0038] In S303, the print function extension unit 207 checks whether function N exists in the extended function list. An example of the extended function list will be described with reference to FIG. 5. The extended function list 501 in FIG. 5 is stored in the external storage device 114 as one of the configuration files of the extended application 204. The extended function list 501 shows a list of functions added by the extended application 204, and indicates the correspondence between the Feature name in PT and the name of the printer attribute in IPP. The printer attribute is attribute information indicating the function that can be specified by the printing device 102 (the capabilities of the printing device 102). Note that the Feature name in the extended function list 501 may be configured to include namespace information as necessary. The same applies to the subsequent process of saving the Feature name in the extended function list 501. In FIG. 5, an item for function 1 exists in the extended function list 501, so the determination in S303 is Yes.
[0039] Next, in step S304, the print function extension unit 207 determines whether the search feature name of function N in the extended function list 501 exists in the PDC (Print Device Capabilities). Note that the print function extension unit 207 can refer to and change the PDC.
[0040] An example of a PDC is shown in Figure 6(a). PDC 601 in Figure 6 includes information on supported features (Features), information on setting values (Options) for certain features, and exclusive information indicating that certain features cannot be selected at the same time. Information 602 indicates that the borderless printing feature (PageBorderless) is supported, and information 603 indicates that two setting values, None and Borderless, can be specified for the borderless printing feature. The "psk:" prefixed to "PageBorderless" is a namespace, indicating who defined the PageBorderless feature and in what specifications. Information 604 indicates exclusive information indicating that the Borderless setting and the North America Letter media size cannot be selected at the same time.
[0041] Return to the processing of S304. Because the search Feature name for function 1 in the extended function list 501 in FIG. 5 is *BorderlessEx*, the print function extension unit 207 checks whether the PDC contains a Feature name (information indicating a function) that includes BorderlessEx. * indicates an arbitrary character string. As described above, the PDC, which is the print function information 203, may be dynamically generated by the OS or print data generation software 202 based on information obtained from the printing device 102. Therefore, the Feature name added for a certain print function depends on the specifications of the OS or print data generation software 202. The print function extension unit 207 can more reliably find the corresponding function by searching for a Feature with a partial match, as described above.
[0042] If S304 is Yes, function N has already been added as a specifiable function to the PDC, which is the print function information 203, by the OS or print data generation software 202. In this case, proceed to S305. On the other hand, if the content is like PDC 601, there is no Feature in PDC 601 that includes the name BorderlessEx. Therefore, in such a case, proceed to S306.
[0043] In S305, the print function extension unit 207 adds the feature name found on the PDC to the function map list. An example of the function map list will be described with reference to FIG. 7. The function map list 701 in FIG. 7 is an example of the function map list. The function map list 701 is stored in the shared information 209, which can be read and written by each unit of the extension application 204. The print function extension unit 207 associates and saves the feature name 703 on the PDC found in the search in S304 with the feature name 702 on the extension function list for the corresponding function. This allows the extension application 204 to determine that the function added by the OS or print data generation software 202 and the function added by the print function extension unit 207 through processing described below indicate the same function. The feature name 703 on the PDC may be saved including the namespace, if necessary.
[0044] After the process in S305, the print function extension unit 207 proceeds to the process in S312, and proceeds to the process of the next function (N=N+1) in the extended function list 501.
[0045] In S306, the print function extension unit 207 determines whether the public printer attributes of function N in the extended function list 501 are included in the response to Get-Printer-Attributes saved in the RAM 113 in S301. Public printer attributes are printer attributes that are standardly defined in the IPP specifications.
[0046] FIG. 4(a) shows a schematic example of a response to Get-Printer-Attributes. In the response 401 to Get-Printer-Attributes, media-supported and cij-print-borderless-expandlevel are printer attributes. In other words, they are attribute information indicating the functions that can be specified by the printing device 102 (the capabilities of the printing device 102). Information 402 is a list of media sizes that can be specified by the printing device 102, and indicates that Letter size (na_letter_8.5x11in) is supported. Information 403 indicates the combinations of print margins that the printing device 102 can take. The fact that top, left, right, and bottom all contain 0 indicates that the printing device 102 supports borderless printing. Information 404 indicates the amount of overflow when printing borderless, and indicates that three levels can be selected: level0, level1, and level2. Note that printer attributes beginning with cij indicate that they are not public printer attributes defined as standard in the IPP specification, but private printer attributes that are uniquely defined by the vendor that develops the printing device 102.
[0047] PDC 601 is an example of a PDC generated by the OS or print data generation software 202 based on response 401. Note that printer attribute 403 included in response 401 is a public printer attribute. Therefore, since it is a standard definition in the IPP specifications, if the OS supports that function (borderless printing function), information 602 related to the borderless printing function is added to PDC 601 by the OS or print data generation software 202 according to the information in printer attribute 403. However, even if the printer attribute is public, the OS may not support that function. In that case, the OS or print data generation software 202 cannot interpret that function. Therefore, PDC 601 does not include a function corresponding to that printer attribute. Furthermore, information in printer attribute 404 included in response 401 is a private printer attribute. Because private printer attributes are vendor-specific attribute information, they cannot be interpreted by the OS or print data generation software 202. Therefore, in this case, PDC 601 also does not include a function corresponding to printer attribute 404. The processing from S306 to S311 of the print function expansion unit 207 is processing for adding such a function to the PDC 601.
[0048] Returning to the explanation of S306, the response 401 to Get-Printer-Attributes does not include print-borderless-expandlevel, which is the public printer attribute of function 1 in the extended function list. Therefore, the determination in S306 is No, and the print function extension unit 207 proceeds to the processing of S309.
[0049] In S309, the print function extension unit 207 checks whether the private printer attribute of function N in the extended function list 501 is included in the Get-Printer-Attributes response saved in RAM 113 in S301. The Get-Printer-Attributes response 401 includes cij-print-borderless-expandlevel, which is the private printer attribute of function 1 in the extended function list (information 404 in Figure 4). Therefore, the determination in S309 is Yes, and the print function extension unit 207 proceeds to processing in S310.
[0050] In S310, the print function extension unit 207 updates the additional function list based on the information on the private printer attribute of function N in the extended function list. An example of the additional function list will be described with reference to FIG. 8A. The additional function list 801 in FIG. 8A is stored in the shared information 209 that can be read and written by each unit of the extension application 204. The print function extension unit 207 associates and saves the feature name of function N with the private printer attribute in the extended function list. Here, the print function extension unit 207 associates and saves the feature name 802 called PageBorderlessExpandLevel of function 1 in the extended function list 501 with the private printer attribute name 803 called cij-print-borderless-expandlevel. Furthermore, the print function extension unit 207 saves the setting values, level0, level1, and level2, of the printer attribute cij-print-borderless-expandlevel in the response 401 as the setting value 805 of the printer attribute of function 1. The print function extension unit 207 also determines the Option 804 of the Feature associated with it, and saves the associated printer attribute setting value of Function 1. The print function extension unit 207 has information in advance about combinations of Options that can be specified for a specific Feature, and determines the Option 804 based on that information. Alternatively, the print function extension unit 207 may set the same value as the printer attribute setting value 805 to the Option 804.
[0051] This process allows the extension application 204 to refer to the correspondence between the function (extension function) extended by the print function extension unit 207 and the print setting attribute information to be notified to the printer when that function is specified.
[0052] In S311, the print function extension unit 207 updates the PDC based on the information on the private printer attribute of function N in the extended function list. An example of the PDC updated in S311 is shown as PDC 605 in FIG. 6B. The print function extension unit 207 references the added function list 801, determines the features and options to add, and updates the PDC. Here, the print function extension unit 207 adds a feature name 802 called PageBorderlessExpandLevel and three options 804, which are its setting values (information related to the function), Level_0, Level_1, and Level_2, to the PDC according to the PDC format. An example of the added information is shown in information 607. Furthermore, the print function extension unit 207 adds namespace information 606 for the added function to the PDC. Note that if the required namespace has already been added to the PDC, the print function extension unit 207 does not add namespace information 606. This process adds a function called PageBorderlessExpandLevel, which indicates the amount of borderless overflow, to the functions that can be specified by the print data generation software 202.
[0053] In S312, the print function extension unit 207 adds 1 to N, returns to the processing of S303, and repeats the processing of S303 to S312 until function N is present in the extended function list. If it is determined in S303 that function N is not present in the extension list, the print function extension unit 207 ends the processing of this flowchart.
[0054] If the determination in step S306 is Yes, the print function expansion unit 207 performs steps S307 and S308. The steps S307 and S308 perform the same processing as steps S310 and S311, which were performed based on the private printer attributes, based on the public printer attributes. Specifically, the public printer attribute name "print-borderless-expandlevel" is stored as the printer attribute of function N in the additional function list 801.
[0055] The above is the print function information editing process of the print function expansion unit 207. Through this process, the functions supported by the printing device 102 can be expanded as the functions of the print data generation software 202. The expanded functions can be specified by the user through the print settings screen in FIG. 10 described later. Also, when the printing device 102 returns different printer attributes for a certain specific function, it can be expanded as the same function. In the flow of FIG. 3, for two types of printer attributes, namely Public printer attributes and Private printer attributes, the process is to add them as the same function, but it is not necessarily limited to these two types. It is applicable to expand two or more types of printer attributes with different names as the same function. Also, in the flow of FIG. 3, if the corresponding function has already been added to the PDC by the OS or the print data generation software 202, the print function expansion unit 207 will not expand the function to the PDC redundantly. That is, for multiple attributes treated as the same function, they are always added to the print data generation software as one function. Furthermore, as its setting value, the setting values that can be specified by the connected printing device 102 will be added. Note that with a mechanism equivalent to this flow, when the OS or the print data generation software 202 has already added a function but the setting values are insufficient, the configuration may be such that only the setting values are added independently.
[0056] <Example of PrintCapabilities (PC)> Here, an example of PrintCapabilities (PC) generated based on the PDC605 expanded by the print function expansion unit 207 will be described using PC901 in FIG. 9. The conversion from PDC to PC is performed by the OS or the print data generation software 202. Or, it may be configured such that the extended application 204 performs the conversion. Based on the Feature607 added to the PDC605 by the print function expansion unit 207, a Feature902 named PageBorderlessExpandLevel is added to the PC901.
[0057] <Example of the screen displayed by the print setting screen expansion unit> Next, a print setting screen displayed based on the generated PC will be described with reference to Fig. 10. Print setting screen 1000 in Fig. 10 is an example of a screen displayed by print setting screen extension unit 205 based on PC 901. Print setting screen extension unit 205 is called by the OS when a user instructs display of the print setting screen on drawing application 201. Print setting screen extension unit 205 displays a screen on which the user can specify print functions that can be specified in print data generation software 202, based on the PC that can be obtained from the OS.
[0058] The print setting screen extension unit 205 provides a print setting screen that adds a control 1001 (setting item) for specifying the amount of overprinting during borderless printing, based on the feature 902 in the PC 901. The control 1001 allows the user to select one of the three options of the feature 902: Level_0, Level_1, or Level_2.
[0059] When generating this print setting screen, the print setting screen expansion unit 205 refers to the function map list 701 in the shared information 209 and configures it so that the same control is added for two associated features. For example, the same control 1001 is added whether the PC 901 includes a feature called PageBorderlessExpandLevel or a feature called PageBorderlessExLevel.
[0060] In this way, the print setting screen extension unit 205 does not distinguish between a function added by the OS or print data generation software 202, a function added by the print function extension unit 207 based on public printer attributes returned by the printing device, and a function added by the print function extension unit 207 based on private printer attributes returned by the printing device. In other words, a single control that the user can specify for that function can be configured on the print setting screen. Furthermore, this embodiment is also applicable when an application that cannot distinguish between the three types of functions directly acquires a PC and configures a print setting screen. In other words, by acquiring a PC to which a certain function has been added, the drawing application 201 can configure a single control that the user can specify for that function.
[0061] <Processing flow of the print data editing unit> Next, a process of editing print data by the print data editing unit 208 after the user has instructed print settings on the print setting screen will be described.
[0062] 11 is a diagram showing the main processing flow of the print data editing process of the print data editing unit 208 in this printing system. Hereinafter, the print data editing unit 208 may be described as the subject of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program.
[0063] The flow of FIG. 11 starts when the print data editing unit 208 is started by the OS.
[0064] In S1101, when the print data generated by the print data generation software 202 is passed to the print data editing unit 208, the print data editing unit 208 first obtains a PrintTicket (PT) from the OS. This PT is information generated by the print setting screen expansion unit 205 and is print setting information that indicates print settings specified by the user based on the PC. The PT may be edited by the print setting editing unit 206. In this case, the print data editing unit 208 can obtain the edited PT. Note that the print data editing unit 208 may perform subsequent processing based on the PT and information equivalent thereto included in the shared information 209, rather than the PT. In this case, the print setting screen expansion unit 205 or the print setting editing unit 206 stores the PT and information equivalent thereto in the shared information 209 so that the print data editing unit 208 can refer to it later.
[0065] In S1102, the print data editing unit 208 initializes N to 1.
[0066] In S1103, the print data editing unit 208 determines whether function N exists in the additional function list 801 in the shared information 209. In this case, function 1 is included in the additional function list 801, so the determination in S1003 is Yes. If function N does not exist, the print data editing unit 208 determines that there are no further functions to be added to the print data and terminates processing. Note that when function N does not exist in the additional function list 801, this means that all print settings specified by the user are standard functions rather than extended functions, and have therefore already been processed by the print data generation software 202.
[0067] If S1103 is Yes, in S1104, the print data editing unit 208 determines whether the Feature name of function N exists in the PT. If not, proceed to processing in S1106. Here, it is assumed that the Feature name of function 1, PageBorderlessExpandLevel, is included in the PT. In that case, proceed to S1105.
[0068] In S1105, the print data editing unit 208 references the additional function list and adds the setting value of the printer attribute corresponding to the Option of the Feature in the PT to the print setting attribute information (attribute information specifying print settings) in the print data. FIG. 4B shows an example of print setting attribute information in IPP print data. Data 1401 is a Validate-Job operation, which indicates an operation issued at the beginning of print data in IPP print data. Data 1401 indicating the Validate-Job operation includes job-attributes-tag 1402 indicating print setting attribute information. Here, it is assumed that Level_1 is specified as the Option of PageBorderlessExpandLevel in the PrintTicket. The print data editing unit 208 references the additional function list 801 in the shared information 209 and adds a setting value of level1, which corresponds to Level_1, as the setting value of the printer attribute name cij-print-borderless-expandlevel. Information 1403 shows the information to be added. If a Print-Job operation is used instead of Validate-Job or a series of operations, add the information to the Print-Job operation.
[0069] In S1106, the print data editing unit 208 adds 1 to N, returns to the processing of S1103, and repeats the processing of S1103 to S1106 until function N exists.
[0070] The above is the print data editing process flow of the print data editing unit. This flow allows the print data to be edited according to the user's designation of a function (extended function) extended by the print function extension unit 207 on the print setting screen. Therefore, the printing device 102 can be correctly instructed to execute the extended function. In this embodiment, when instructing the printing device 102 to use the borderless extension function, if the printing device 102 supports the attribute cij-print-borderless-expandlevel, the attribute information is added to the print data. If the printing device 102 supports the attribute information print-borderless-expandlevel, the attribute information is added to the print data. Furthermore, if the OS or print data generation software 202 adds the function, the attribute information is added to the print data by the print data generation software 202. Therefore, the print data editing unit 208 does not add the attribute information twice.
[0071] As described above, the extension application 204 in this embodiment allows the user to specify functions supported by the printing device 102. In this embodiment, extension is performed based on attribute information in attribute data acquired from the printing device 102. Therefore, if the connected printing device 102 supports a certain function, the function can be specified. If the connected printing device 102 does not support a certain function, the function will not be added. Even if different printer attributes are returned for the same function depending on the type of connected printing device 102, the same control item is displayed on the print setting screen. Therefore, the user can specify these as the same function on the print setting screen. While this embodiment has been described using the borderless extension amount function as an example, the extension application 204 can also be applied to other functions. Furthermore, if multiple functions are added to the extended function list 501, the extension application 204 can add multiple functions.
[0072] <<Embodiment 2>> Next, a second embodiment will be described. In this embodiment, a configuration is shown for adding only the setting values of a function that the extension application 204 adds when that function is already supported by the print data generation software 202. Configurations and processes not mentioned below are the same as those in the first embodiment, and therefore will not be described again.
[0073] 12 is a diagram showing the main processing flow of the editing process of print function information by the print function extension unit 207 in this printing system. Hereinafter, the print function extension unit 207 may be described as the main body of each process, but in reality, the corresponding function is realized by the CPU 111 executing the corresponding program.
[0074] The processing from S1201 to S1212 in FIG. 12 is the same as the processing from S301 to S312 in FIG. 3, except for the points mentioned below, and therefore description thereof will be omitted. The first difference is that in this embodiment, after processing S1205, the print function extension unit 207 proceeds to S1204 instead of S1212. In other words, even if the function to be extended is already supported by the print data generation software 202 (i.e., even if it is a standard attribute defined as standard in the IPP specifications), the extension processing continues from S1206 onwards. The second difference is that the update processing from S1207 and S1208, and S1210 and S1211 differs from that in FIG. 3. Below, the update processing from S1210 to S1211 will be described as an example.
[0075] FIG. 13A shows an example of a PDC before being edited by the print function expansion unit 207 in this embodiment. PDC 1301 includes Feature 1302 called PageBorderlessExLevel, which indicates the borderless expansion amount function. The fact that Feature 1302 indicates the borderless expansion amount function has already been determined in the determination process of S1204 based on the extended function list 501. Furthermore, in PDC 1301, Feature 1302 supports two options: Level_0 and Level_1. Here, it is assumed that the response to Get-Printer-Attributes in S1201 (attribute data acquired from the printing device 102) is the content of response 401 in FIG. 4, as in the first embodiment. cij-print-borderless-expandlevel (information 404), a printer attribute indicating the borderless expansion amount function included in response 401, supports three setting values: level0, level1, and level2. That is, for the borderless print extension amount function, three setting values can be specified on the connected printing device 102, but only two setting values can be specified on the print data generation software 202.
[0076] The additional function list 806 in FIG. 8B is an example of an additional function list updated by the print function extension unit 207 in the processing of S1210. In the processing of S1210, the print function extension unit 207 compares the Option of function N supported by the PDC 1301 with the setting value of function N included in the response 401 to determine whether there is a setting value that is included only in the response 401. In the additional function list 806, the print function extension unit 207 sets the setting value of the printer attribute corresponding to the Option that already existed in the PDC 1301 to "none." For a setting value that did not exist in the PDC 1301 but is included in the response 401, the print function extension unit 207 stores the setting value as a new setting value (information 807) and also determines and stores the corresponding Option name. Note that the print function extension unit 207 stores the Feature name of function N supported by the PDC 1301 as the Feature name of function N.
[0077] In S1211, the print function extension unit 207 updates the PDC. An example of the updated PDC is shown in 1303 in Figure 13(b). The print function extension unit 207 adds an Option 1306 called Level_2 to a Feature 1305 called PageBorderlessExLevel that already exists as function N. The print function extension unit 207 may also add a namespace 1304 as the namespace for this Option.
[0078] As described above, the print function extension unit 207 of this embodiment can extend only the missing setting values for a function when that function is already supported by the print data generation software 202. Note that, in the processes of S1210 and S1211, if function N does not exist in the PDC, the print function extension unit 207 extends the function itself in the same way as the processes of S310 and S311. Also, S1207 and S1208 perform the same processes as S1210 and S1211 based on the information of the public printer attributes.
[0079] The print data editing unit 208 of this embodiment performs the print data editing process shown in FIG. 11 , as in the first embodiment. For example, assume that function N is PageBorderlessExLevel, and the Option for PageBorderlessExLevel in the PT is Level_1. In the additional function list 806 of this embodiment, the setting value of the printer attribute corresponding to Level_1 is "none." In this case, the print data editing unit 208 determines that the setting value for the corresponding Option has already been added by the print data generation software 202, and does not add a setting value in S1105. On the other hand, assume that the Option for PageBorderlessExLevel in the PT is Level_2. In the additional function list 806, the setting value of the printer attribute corresponding to Level_2 is "level2." In this case, the print data editing unit 208 determines that the setting value for the corresponding Option has not been added by the print data generation software 202, and adds a designation of "level2" as the setting value of function N to the print data.
[0080] The extension application 204 of this embodiment can expand the setting values of functions already supported by the print data generation software 202. For example, this embodiment can be applied to cases where a function, such as specifying paper type during printing, is standard in IPP specifications, but the setting value differs depending on the configuration of the printing device 102. In other words, it is possible to add setting values while retaining the functions already supported by the print data generation software 202. Since setting values are added based on attribute information in attribute data acquired by the printing device 102, if the connected printing device 102 supports a certain setting value, that setting value can be specified. Furthermore, if the connected printing device 102 does not support a certain setting value, that setting value will not be added. Taking the borderless print extension amount described in this embodiment as an example, if connected device A allows three levels of extension amount specification, three levels can be specified, and if connected device B allows five levels of extension amount specification, five levels can be specified. Note that, although the present embodiment has been described using the borderless print amount function and paper type as examples, it is also applicable to other print functions supported by the printing device 102. Also, as shown in the flowchart, it is possible to add two or more functions, or to add only the setting values for some of the functions.
[0081] <<Embodiment 3>> Next, a third embodiment will be described. In this embodiment, by adding some processing to the processing of the first embodiment, the extension application 204 can provide functions in some cases where the functions could not be extended in the first embodiment. Portions not mentioned below are the same as those in the first embodiment.
[0082] First, in the process of editing the print function information by the print function extension unit in Figure 3, if the determination in S309 is No, the same process as that performed in S310 and S311 is performed. As a result of this process, the function addition list created by the print function extension unit 207 becomes the added function list 808 in Figure 8(c). The print function extension unit 207 stores information 809 (none) indicating that there is no corresponding printer attribute for the added function and setting value. In this case, even if the function is selected by the user, the printing device 102 does not support that function.
[0083] Furthermore, in the print data editing process of print data editing unit 208 in FIG. 11, if any of the printer attributes for a function in the additional function list includes "none," print data editing unit 208 converts the format of the print data. Taking the IPP Class Driver as an example, if the print data is in IPP format, but the above conditions are met, this indicates that the printing device 102 cannot execute the print function specified by the user in IPP format. In such a case, print data editing unit 208 converts the IPP format print data into different print data that can use the print function specified by the user. For example, the print data format proprietary to the vendor that provides extension application 204 typically allows use of all functions provided by printing device 102. Print data editing unit 208 converts the data into, for example, the vendor-specific print data format described above.
[0084] With the above configuration, it is possible to configure functions that are supported by the printing device 102 but cannot be specified in the print data format generated by the print data generation software 202 to be specified by using the extension application 204. Furthermore, in combination with the configuration of the second embodiment, if a setting value of a print function specified by the user cannot be executed in the IPP format, it may be configured to convert it into different print data. In this way, it is possible to configure functions that are supported by the printing device 102 but cannot be specified in the print data format generated by the print data generation software 202 to be specified by using the extension application 204.
[0085] <<Embodiment 4>> The above-described embodiments can also be implemented by performing the following process. That is, a recording medium storing software program code that realizes the functions of the above-described embodiments is supplied to a system or device. Then, a computer (or a CPU or MPU) of the system or device reads and executes the program code stored on the recording medium. This achieves the above-described object. In this case, the program code read from the storage medium itself realizes the functions of the above-described embodiments, and the storage medium storing the program code constitutes the present invention.
[0086] Examples of storage media that can be used to supply the program code include flexible disks, hard disks, optical disks, magneto-optical disks, CD-ROMs, CD-Rs, magnetic tapes, non-volatile memory cards, ROMs, and DVDs.
[0087] Furthermore, the functions of the above-described embodiments are not only realized by a computer reading and executing the program code, but also include cases where an operating system running on a computer performs some or all of the actual processing based on the instructions of the program code, thereby realizing the functions of the above-described embodiments.
[0088] Furthermore, the program code read from the storage medium may be written to a memory provided on a function expansion board inserted into a computer or a function expansion unit connected to the computer. Then, based on the instructions of the program code, a CPU provided on the function expansion board or function expansion unit may perform some or all of the actual processing. This processing realizes the functions of the above-mentioned embodiments. [Explanation of symbols]
[0089] 102 Printing device 119 Display section 201 Applications 202 Printing data generation software 203 Printing function information 204 Extended Applications 205 Print setting screen expansion unit 206 Print Settings Editing Unit 207 Printing function expansion unit 208 Print Data Editing Unit 209 Shared Information
Claims
[Claim 1] An extension application program for extending the function of print data generation software that generates print data, On the computer, acquiring attribute data of the printing device output from the printing device; obtaining data indicative of printing capabilities; adding information related to the specific function based on attribute information included in the acquired attribute data when information indicating the specific function is not included in the acquired data indicating the printing function; Execute A program characterized in that a setting screen including setting items for the specific function is displayed based on information related to the added specific function.
Citation Information
Patent Citations
program
JP2019074906A