Information processing program
The information processing program addresses the issue of inconsistent print settings in driverless printing systems by managing and applying individual user settings, ensuring consistent and convenient printing across multiple users.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-07-01
- Publication Date
- 2026-03-05
AI Technical Summary
Conventional driverless printing systems do not consider individual user settings, leading to inconsistent print settings when multiple users share a virtual printing device, which affects convenience.
An information processing program that manages and applies individual print settings for each user by utilizing a print setting range management system, including a print setting range management information acquisition process, a setting range identification information transmission process, and a print data acquisition process to ensure that print data is sent according to the specific user's settings.
Enables printing to be performed according to the contents of individual print settings for each user, improving convenience by allowing seamless switching between users and preventing unintended changes to print settings.
Smart Images

Figure JP2025023622_05032026_PF_FP_ABST
Abstract
Description
Information Processing Program
[0001] The present invention relates to an information processing program executed by an information processing device capable of communicating with a printing device.
[0002] In the past, operating systems (OS) with so-called driverless printing capabilities, which allow printing according to a predetermined printing standard without using a printer driver provided by a printer vendor, have become commonplace. In this case, printing can be performed without installing a printer driver.
[0003] As a way to utilize the functions of such driverless OS standard printing software and support printers that do not support driverless printing or to expand the functions of normal driverless printing, for example, as described in Patent Document 1, a virtual printing device is configured within an information processing device that receives print jobs from the OS standard printing software and sends the received print jobs to a printer.
[0004] Japanese Patent Application Laid-Open No. 2019-175313
[0005] In the above-mentioned conventional technology, a virtual printing device is registered in the OS standard printing software, and print data from the OS standard printing software is output to the virtual printing device, and printing is performed based on the print data. The user can set various print settings for the virtual printing device when printing is performed.
[0006] However, the above-mentioned conventional technology does not take into consideration the fact that the print settings are configured for each user. Therefore, when multiple users share a single virtual printing device, the print settings used by the previous user may remain or may revert to the default settings, which leaves room for improvement.
[0007] An object of the present invention is to provide an information processing program that enables print settings for each user to be configured when printing is performed via a virtual printing device, thereby improving convenience.
[0008] In order to achieve the above object, the information processing program of the present invention is an information processing program that can be executed by a calculation unit of an information processing device and is compatible with a printing device that can communicate with the information processing device, wherein the information processing device is equipped with an operating system having printing software, and the information processing program can be registered with the printing software as a virtual printing device, and when the information processing program is registered with the printing software as the virtual printing device, the information processing program is configured to execute, on the calculation unit of the information processing device, the following: a print setting range management information acquisition process that acquires print setting range management information that manages, for each user, a print setting range that is the range that can be set for the printing device; a setting range identification information transmission process that sends to the printing software print setting range identification information for identifying the print setting range of a specific user who is using the information processing device based on the acquired print setting range management information; a print data acquisition process that acquires from the printing software first print data with print settings that are compatible with the print setting range that corresponds to the specific user identified by the print setting range identification information; and a print data output process that controls so that second print data based on the first print data acquired in the print data acquisition process is sent to the printing device.
[0009] A calculation unit executing the information processing program of the present invention acquires print setting range management information for managing the print setting range of a printing device for each user in a print setting range management information acquisition process. In a setting range identification information transmission process, the calculation unit transmits print setting range identification information for identifying the print setting range of a specific user using the information processing device based on the acquired print setting range management information to the printing software. In a print data acquisition process, the calculation unit acquires first print data from the printing software with print settings that match the print setting range corresponding to the specific user identified by the print setting range identification information. In a print data output process, the calculation unit controls transmission of second print data based on the first print data acquired in the print data acquisition process to the printing device. As a result, the present invention enables printing to be performed according to the contents of individual print settings for each user. Therefore, for example, when multiple users share a virtual printing device, even if the contents of the previous user's print settings remain, the print settings specific to that user can be switched to, improving convenience.
[0010] According to the present invention, when printing is performed via a virtual printing device, print settings can be set for each user, thereby improving convenience.
[0011] FIG. 1 is a block diagram showing a system configuration of a printing system according to an embodiment of the present invention, and an example configuration of a printer application and a CUPS for each user. FIG. 2 is an explanatory diagram showing an example of whether the print setting range of the printer application can be edited for each user. FIG. 3 is a flowchart showing an example of a control procedure executed by an OS when a user logs in. FIG. 4 is a flowchart showing an example of a control procedure executed by an OS when a user logs in. FIG. 5 is an explanatory diagram showing an example of whether an attribute request can be accepted by a printer application. FIG. 6 is a flowchart showing an example of a control procedure executed by a printer application when an attribute request is accepted. FIG. 7 is a flowchart showing an example of a control procedure executed by a printer application when a print request is received from a CUPS. FIG. 8 is a block diagram showing an example configuration of a printer application in a modified example in which a single printer application stores print setting ranges for multiple users. FIG. 9 is a flowchart showing an example of a control procedure executed by an OS when a user logs in in a modified example in which a single printer application stores print setting ranges for multiple users. FIG. 1 is an explanatory diagram showing an example of whether the print setting range of the printer application for each user can be edited in a modified example in which a single printer application stores print setting ranges for multiple users. FIG. 2 is a flowchart showing an example of a control procedure executed by the printer application when access from a browser is accepted in a modified example in which a single printer application stores print setting ranges for multiple users. FIG. 3 is an explanatory diagram showing an example of an attribute request accepted by the printer application in a modified example in which a single printer application stores print setting ranges for multiple users. FIG. 4 is a flowchart showing an example of a control procedure executed by the printer application when an attribute request is accepted in a modified example in which a single printer application stores print setting ranges for multiple users.10 is a block diagram showing an example of a hardware configuration of a terminal device and a printer, according to a modified example in which print settings are switched when print data is outside the print setting range of the application, and FIG.
[0012] <Embodiment> An embodiment of the present invention will be described with reference to the drawings.
[0013] <Outline of Printing System> Fig. 1 shows an example of the system configuration of a printing system 1 according to this embodiment. In Fig. 1, the printing system 1 has a terminal device 100 and a printer 200. The terminal device 100 and the printer 200 are connected to each other so as to be able to communicate with each other via, for example, the Internet, a wired LAN, or a wireless LAN. The terminal device 100 is an example of an information processing device, and the printer 200 is an example of a printing device.
[0014] <Functional Configuration of Terminal Device> The terminal device 100 transmits print data to the printer 200 to execute printing. The terminal device 100 is, for example, a desktop PC, a notebook PC, or a tablet computer, but may also be a mobile terminal such as a smartphone. As will be described in detail later, the terminal device 100 has a processor 110 and a storage device 115 that stores various print processing programs (see FIG. 16 described later). When the processor 110 executes the various print processing programs, the terminal device 100 has the functional configuration shown in FIG. 1. Note that in the following description, it may be stated that a program does ***, but this means that the process of *** is executed when the program is executed by the processor 110.
[0015] The terminal device 100 has an OS (Operating System, not shown), an application (not shown) corresponding to the printing function of the OS, multiple printer applications 170, and a settings editor (not shown). These are included in the program 131 in FIG. 16 , which will be described later. In this embodiment, as shown in FIG. 1 , the multiple printer applications 170 are, for example, three printer applications 170A, 170B, and 170C corresponding to three users A, B, and C, respectively. The three printer applications 170A, 170B, and 170C may be implemented by a common information processing program, or may be implemented by separate information processing programs. The three printer applications 170A, 170B, and 170C each have the same functional configuration. In this embodiment, when there is no need to distinguish between the three printer applications 170A, 170B, and 170C, they will simply be referred to as "printer applications 170."
[0016] The OS has a so-called driverless printing function that prints according to a predetermined printing standard without using a printer driver provided by a printer vendor. The OS, as an example, has multiple CUPSs (Common Unix Printing Systems) 160, which are modularized printing systems for the OS. In this embodiment, the multiple CUPSs 160 are three CUPSs 160A, 160B, and 160C that respectively correspond to three users A, B, and C (three printer applications 170A, 170B, and 170C). The three CUPSs 160A, 160B, and 160C may be implemented using a common information processing program or different information processing programs. Each of the three CUPSs 160A, 160B, and 160C has the same functional configuration. In this embodiment, when there is no need to distinguish between the three CUPSs 160A, 160B, and 160C, they will simply be referred to as "CUPS 160." Note that the OS is an example of an operating system, and the CUPSs 160 are an example of printing software. The printing software may be built into the OS as standard.
[0017] <Printer Application> Printer application 170 can be registered in CUPS 160 as a virtual printer corresponding to connected printer 200. In this embodiment, printer application 170A can be registered in CUPS 160A, printer application 170B can be registered in CUPS 160B, and printer application 170C can be registered in CUPS 160C. Each CUPS 160 treats the corresponding printer application 170 as if it were a real printer and executes various processes related to printing. These various processes include, for example, capability information acquisition processing and print data transmission processing. Printer application 170 performs control using print setting storage unit 175. In this embodiment, printer application 170A performs control using print setting storage unit 175A, printer application 170B performs control using print setting storage unit 175B, and printer application 170C performs control using print setting storage unit 175C. Printer application 170 is an example of an information processing program.
[0018] The print setting storage unit 175 stores a PPD file that manages the print setting range, which is the range of print settings available on the printer 200, for each user, or for each user and application. The PPD file includes the print setting range for the user corresponding to the printer application 170, or the print setting range for an application that requires print function restrictions for the user corresponding to the printer application 170. In this embodiment, the print setting storage unit 175A of the printer application 170A stores a PPD file corresponding to the print setting range of user A, or a PPD file containing the print setting range for each application of user A. The print setting storage unit 175B of the printer application 170B stores a PPD file corresponding to the print setting range of user B, or a PPD file containing the print setting range for each application of user B. The print setting storage unit 175C of the printer application 170C stores a PPD file corresponding to the print setting range of user C, or a PPD file containing the print setting range for each application of user C. The print setting storage unit 175 is, for example, a partial area of the data storage area 132 of the non-volatile storage device 130 of the storage device 115 of the terminal device 100 (see FIG. 16 described later). The print setting storage units 175A, 175B, and 175C each have a separate storage area. A PPD file is an example of print setting range management information.
[0019] It should be noted that print settings for each user only need to be stored in the print setting storage unit 175, and print settings for each application are not necessarily required. To reflect print settings for each application, for example, it is sufficient if the print settings for each application are added to the print settings for each user.
[0020] The print setting range includes setting items such as paper size, print mode, and paper type. The print setting range is set for each user, or for each user and application, by a setting application for editing the PPD file. The setting application is started, for example, by a setting application start-up process by the printer application 170.
[0021] The PPD file may be edited not only in the terminal device 100 but also in an external terminal. The PPD file may be acquired from data installed when the printer application 170 is installed. The PPD file may also be acquired from data imported from outside the terminal device 100. The PPD file may also be acquired from capability information acquired from the printer 200 using a protocol such as IPP attributes or PJL. The PPD file stores overall settings provided from outside and independent of the user, or is automatically generated based on capability information acquired from the printer 200 via a communication unit (not shown) with user-specific restrictions added.
[0022] Printer application 170 converts IPP attributes (hereinafter simply referred to as attributes) corresponding to the print functions that CUPS 160 can handle based on the print setting range for each user stored in print setting storage unit 175. In this embodiment, printer application 170A converts IPP attributes corresponding to the print functions that CUPS 160A can handle based on the print setting range of user A stored in print setting storage unit 175A. Printer application 170B converts IPP attributes corresponding to the print functions that CUPS 160B can handle based on the print setting range of user B stored in print setting storage unit 175B. Printer application 170C converts IPP attributes corresponding to the print functions that CUPS 160C can handle based on the print setting range of user C stored in print setting storage unit 175C.
[0023] In response to the capability information acquisition process of CUPS 160, printer application 170 outputs attributes converted according to the user as described above to CUPS 160. CUPS 160 outputs print data corresponding to the attributes output from printer application 170. Printer application 170 acquires the print data output from CUPS 160. Printer application 170 acquires user information for identifying the user using terminal device 100 from the OS or CUPS 160. The user information is, for example, a login user name. Furthermore, printer application 170 acquires app information for identifying the application being used by terminal device 100 from CUPS 160. The app information is, for example, an app name included in the print job. Printer application 170 acquires a PPD file from print setting storage unit 175 and, based on the acquired PPD file, the user information, and the app information, determines a print setting range according to the user using terminal device 100 and the application being used. Printer application 170 converts the print data acquired from CUPS 160 into print data based on the print setting range determined above. The print data acquired by printer application 170 from CUPS 160 is an example of first print data, and the print data converted based on the print setting range is an example of second print data. Note that the second print data may be the first print data as is. Printer application 170 sends the converted print data to printer 200.
[0024] <Features of this embodiment> In the conventional printing system 1, one printer application 170 is installed in one terminal device 100. Therefore, when multiple users share the terminal device 100, i.e., one printer application 170, the print settings used by the previous user remain.
[0025] In this embodiment, a PPD file for managing the print setting range of the printer 200 for each user of the terminal device 100 is stored in advance. The print setting range for each user included in the PPD file can be edited using a setting application. The print setting range can be edited by each user themselves, or, for example, an administrator can set the print setting range for all users.
[0026] In this embodiment, a plurality of printer applications 170 corresponding to a plurality of users who share the terminal device 100, and a plurality of CUPSs 160 corresponding to each of the plurality of printer applications 170, are installed in the terminal device 100. Each printer application 170 stores a PPD file related to the print setting range of the corresponding user.
[0027] In response to a request from the corresponding CUPS 160, each printer application 170 outputs attributes converted based on the PPD file in accordance with the user's print setting range to the CUPS 160. Each printer application 170 receives print data corresponding to the attributes output from the corresponding CUPS 160. Each printer application 170 converts the print data acquired from the corresponding CUPS 160 into print data based on the print setting range corresponding to the user name as needed, and sends the converted print data to the printer 200. When managing the print setting range for each application, for example, each printer application 170 converts the print data acquired from the corresponding CUPS 160 into print data based on the print setting range corresponding to the user name and the print setting range corresponding to the application name included in the print job as needed, and sends the converted print data to the printer 200.
[0028] This allows printing to be performed according to the contents of the print settings that are individual to each user. Therefore, even if multiple users share the terminal device 100, the contents of the print settings of the previous user can be switched to the print settings specific to the current user, improving convenience. This will be described in detail below.
[0029] <Example of Configuration of Printer Application and CUPS for Each User> FIG. 1 shows an example of the configuration of printer application 170 and CUPS 160 for each user. In the example shown in FIG. 1, three users, user A, user B, and user C, use terminal device 100. Three printer applications 170A, 170B, and 170C and three CUPSs 160A, 160B, and 160C are installed on terminal device 100. Printer application 170A and CUPS 160A correspond to user A. Printer application 170B and CUPS 160B correspond to user B. Printer application 170C and CUPS 160C correspond to user C. In this embodiment, the three CUPSs 160A, 160B, and 160C are implemented by CUPS, which is a common printing software. CUPS 160A is in a mode corresponding to CUPS user A, and causes the HTTP server to function as a local server corresponding to user A. CUPS 160B is a mode corresponding to CUPS user B, and causes the HTTP server to function as a local server corresponding to user B. CUPS 160C is a mode corresponding to CUPS user C, and causes the HTTP server to function as a local server corresponding to user C.
[0030] Printer application 170A stores a PPD file corresponding to the print setting range of user A in print setting storage unit 175A, and outputs attributes generated based on the PPD file to CUPS 160A in response to a request from CUPS 160A. CUPS 160A transmits print data corresponding to the attributes to printer 200 via printer application 170A.
[0031] Printer application 170B stores a PPD file corresponding to the print setting range of user B in print setting storage unit 175B, and outputs attributes generated based on the PPD file to CUPS 160B in response to a request from CUPS 160B. CUPS 160B transmits print data corresponding to the attributes to printer 200 via printer application 170B.
[0032] Printer application 170C stores a PPD file corresponding to the print setting range of user C in print setting storage unit 175C, and outputs attributes generated based on the PPD file to CUPS 160C in response to a request from CUPS 160C. CUPS 160C transmits print data corresponding to the attributes to printer 200 via printer application 170C.
[0033] <Example of Users Who Can Edit the Print Setting Range of a Printer Application> Figure 2 shows an example of whether the print setting range of printer application 170 can be edited for each user. Figure 2 shows the case of printer application 170A corresponding to user A as an example. As shown in Figure 2, a PPD file corresponding to the print setting range of user A is stored in print setting storage unit 175A of printer application 170A. The PPD file is set in advance by, for example, an administrator (shown as "Administrator" in Figure 2).
[0034] 2, for example, if user A accesses HTTP server 176 of printer application 170A via browser 104 and requests editing of the PPD file stored in print setting storage unit 175A, printer application 170A determines the user who has made the access and determines that it is user A. In this case, printer application 170A enables editing of the PPD file. This allows user A to edit the PPD file of printer application 170A. Note that it is also possible to configure print setting storage unit 175A so that only an administrator can change it. In this case, the request from user A will be denied.
[0035] Furthermore, for example, if user B accesses HTTP server 176 of printer application 170A via browser 104 and requests editing of the PPD file stored in print setting storage unit 175A, printer application 170A determines the user who made the access and determines that it is user B. In this case, printer application 170A denies editing of the PPD file. As a result, user B cannot edit the PPD file of printer application 170A. Although not shown in FIG. 2, user C also cannot edit the PPD file.
[0036] Furthermore, for example, when an administrator (shown as "Administrator" in FIG. 2) accesses the HTTP server 176 of the printer application 170A via the browser 104 and requests editing of the PPD file stored in the print setting storage unit 175A, the printer application 170A determines the user who has made the access and determines that the user is the administrator. In this case, the printer application 170A enables editing of the PPD file. This allows the administrator to edit the PPD file of the printer application 170A.
[0037] The above describes the case of printer application 170A, but the same applies to printer applications 170B and 170C. As described above, the PPD file of each printer application 170 can be edited only by users and administrators who are compatible with that printer application 170, and cannot be edited by users who are not compatible with that printer application 170.
[0038] <Control Procedure> The control procedure executed by the OS or printer application 170 to execute printing according to the individual print setting range for each user will be described with reference to the flowcharts in FIGS. 3-4 and 6-7.
[0039] 3 and 4 show an example of a control procedure executed by the OS when a user logs in. FIG.
[0040] 3 shows the process when user A logs in to the OS of the terminal device 100. As shown in FIG. 3, in step S10, the OS accepts a login operation by user A and executes default processing related to the login.
[0041] In step S20, the OS starts up the CUPS 160A. That is, the OS starts up the CUPS in a mode corresponding to user A, with the HTTP server being the local server corresponding to user A. This start-up process is registered in advance in the OS as a process to be executed at login, and is executed as a function of the OS.
[0042] In step S30, the OS starts up printer application 170A. This is also executed as a function of the OS by being registered in advance in the OS as a process to be executed at login. With this, the OS completes the login process for user A.
[0043] 4 shows the process when user B logs in. As shown in FIG. 4, in step S110, the OS accepts the login operation of user B and executes default processing related to the login.
[0044] In step S120, the OS starts up the CUPS 160B. That is, the OS starts up the CUPS in a mode corresponding to user B, with the HTTP server being the local server corresponding to user B.
[0045] In step S130, the OS starts up the printer application 170 B. With this, the OS completes the login process for user B.
[0046] Although not shown in the figure, the same process as above is executed when user C logs in.
[0047] 5 shows an example of whether an attribute request can be accepted by the printer application 170. In FIG. 5, the case of the printer application 170A corresponding to the user A is shown as an example.
[0048] 5, for example, when CUPS 160A requests attributes from printer application 170A, printer application 170A determines the user who made the request and determines that it is user A corresponding to CUPS 160A. In this case, printer application 170A accepts the attribute request, converts the capability information acquired from printer 200 based on the print setting range of the PPD file corresponding to user A to generate attributes, and transmits the attributes to CUPS 160A. On the other hand, for example, when CUPS 160B requests attributes from printer application 170A, printer application 170A determines the user who made the request and determines that it is user B corresponding to CUPS 160B. In this case, printer application 170A rejects the attribute request and does not transmit attributes to CUPS 160B.
[0049] Although the above describes the case of the printer application 170A, the same applies to the printer applications 170B and 170C.
[0050] Fig. 6 shows an example of a control procedure executed by the printer application 170 when an attribute request is received. Fig. 6 shows, as an example, the control procedure of the printer application 170A corresponding to user A. When the printer application 170A receives an attribute request, it starts the flowchart shown in Fig. 6.
[0051] As shown in FIG. 6, in step S210, printer application 170A determines who the user who made the attribute request is. In other words, printer application 170A identifies the user corresponding to the attribute request. For example, if the sender of the attribute request is CUPS 160A, printer application 170A determines that the sender is user A; if the sender is CUPS 160B, printer application 170A determines that the sender is user B; and if the sender is CUPS 160C, printer application 170A determines that the sender is user C. Step S210 is an example of a first authentication process. Note that, for example, if the sender of the attribute request is such that it is not possible to identify other users, it may be determined that the user is unknown.
[0052] The method for determining the user in step S210 is not particularly limited, and may be determined by referring to an item such as User-Agent in the IPP protocol. Alternatively, the user information may be determined by sending a dummy job to the HTTP server of CUPS 160 using user impersonation (user impersonation technology), storing the job submission information at that time, and comparing it with the stored job submission information when an attribute request is received.
[0053] In step S220, printer application 170A determines whether the determination result of step S210 above is user A corresponding to printer application 170A. If the user is not user A (including an unknown user) (step S220: No), printer application 170A proceeds to the next step S230. Step S220 is an example of a first determination process.
[0054] In step S230, printer application 170A sends an error to CUPS 160, which sent the attribute request. In other words, printer application 170A executes error processing. Step S230 is an example of first error processing. Thereafter, this flowchart ends.
[0055] On the other hand, in step S220, if the user is User A (step S220: Yes), printer application 170A proceeds to the next step S240.
[0056] In step S240, printer application 170A obtains a PPD file corresponding to user A from print setting storage unit 175A and converts the capability information obtained from printer 200 based on the PPD file to generate attributes. For example, if the printer capability information includes paper size: A3 and paper type: glossy paper, but the PPD file corresponding to user A does not include paper size: A3 or paper type: glossy paper, the generated attributes will not include paper size: A3 or paper type: glossy paper. The PPD file is an example of print setting range management information, and the generated attributes are an example of print setting range identification information. Furthermore, step S240 is an example of print setting range management information acquisition processing and an example of first information generation processing.
[0057] In step S250, the printer application 170A transmits the attribute generated in step S240 to the CUPS 160A that transmitted the attribute request. The attribute is information for identifying user A who is using the terminal device 100 and the print setting range of application A being used by the terminal device 100. User A is an example of a specified user, and step S250 is an example of setting range specification information transmission processing. Then, this flowchart ends.
[0058] The control procedure for printer application 170A has been described above, but the control procedures for printer applications 170B and 170C are similar. As described above, each printer application 170 accepts attribute requests from a CUPS 160 that corresponds to that printer application 170, and rejects attribute requests from an incompatible CUPS 160, etc.
[0059] 7 shows an example of a control procedure that printer application 170A executes when a print request is received from CUPS 160A. Here, the case of printer application 170A corresponding to user A will be described as an example, but the same applies to printer applications 170B and 170C.
[0060] As shown in FIG. 7 , in step S410, the printer application 170A obtains the print job name output from the CUPS 160A. The print job name is typically a rule-based combination of the app name used for printing and the print file name, and the app name can be identified from this name. The app name is, for example, a half-width alphabetic character string. The app name is an example of app information. That is, in step S410, the printer application 170A obtains app information for identifying the app used in the terminal device 100 from the CUPS 160A of the OS. Note that the app information and the app identification information may be the same or different. For example, the app identification information may include the name of an app installed on the terminal device 100, which is a full-width character string such as kanji or katakana, or information that can identify other apps. Step S410 is an example of app identification processing.
[0061] In step S420, the printer application 170A acquires the user name of the owner of the print job. This is typically the login name of the user who launched the application used for printing. The user name is, for example, a string of half-width alphabetic characters. A user name such as a login user name is an example of user information. That is, in step S420, the printer application 170A acquires user information from the OS or CUPS 160A to identify the user using the terminal device 100. Note that the user information and the user identification information may be the same or different. For example, the user identification information may include a user name consisting of a string of full-width characters such as kanji or katakana, or other information that can identify the user. Step S420 is an example of user identification processing.
[0062] In step S430, printer application 170A acquires print data from CUPS 160A. CUPS 160A has previously sent an attribute request to printer application 170A and received the attributes sent in step S250 of FIG. 6 from printer application 170A. This print data is print data with print settings that match the print setting range specified by this attribute. Note that at this stage, the print data may not be in accordance with the print settings that are limited by the combination with the application. The print data acquired in step S430 is an example of first print data, and step S430 is an example of print data acquisition processing.
[0063] In step S440, the printer application 170A reads the PPD file from the print setting storage unit 175A and specifies the print setting range to be set by the application name acquired in step S410 and the user name acquired in step S420. That is, in step S440, the print setting range corresponding to the user using the terminal device 100 and the application being used by the terminal device 100 is determined based on the PPD file, the application name acquired in step S410, and the user name acquired in step S420.
[0064] In step S445, the printer application 170A determines, based on the print setting range determined in step S440, whether the print settings of the print data acquired in step S430 are within the print setting range for the application identified in step S410. If the printer application 170A determines that the print settings of the print data are not within the print setting range for the application (step S445: No), it determines an error and terminates this flowchart. For example, if print data with 2-in-1 print settings is acquired when the print setting range for the identified application does not include N-in-1 to maintain visibility, it determines an error. Step S445 is an example of error determination processing. On the other hand, if the printer application 170A determines that the print settings of the print data are within the print setting range for the application (step S445: Yes), it proceeds to the next step S450.
[0065] In step S450, printer application 170A converts the print data acquired in step S430 into print data that conforms to the print setting range determined in step S440. For example, if user A's PPD file does not include a normal mode related to printing material consumption but only a saving mode, the saving mode cannot be handled by CUPS 160A and is therefore not included in the attributes returned in step S250. Therefore, the print data acquired in step S430 does not reflect the saving mode. The saving mode is determined as the print setting range in step S440, and in step S450, the print data is converted to reduce printing material consumption. This conversion may involve, for example, reducing the number of dots to be printed or the density per dot. The print data converted in step S450 is an example of second print data. Note that if the print setting data in the print data and the print setting range determined in S440 are inconsistent and conversion is not possible, an error is generated in step S470, described below.
[0066] In step S460, printer application 170A determines whether the user name acquired in step S420 is user A corresponding to printer application 170A. If the user name does not satisfy the determination (step S460: No), printer application 170A performs error processing without executing step S480 described below, and ends this flowchart. On the other hand, if the user name satisfies the determination (step S460: Yes), printer application 170A proceeds to the next step S470.
[0067] In step S470, printer application 170A determines whether or not the print data conversion in step S450 was successful. If the print data conversion was unsuccessful (step S470: Yes), printer application 170A performs error processing and terminates this flowchart without executing step S480, which will be described later. On the other hand, if the print data conversion was successful (step S470: No), printer application 170A proceeds to the next step S480.
[0068] In step S480, printer application 170A controls the print data converted in step S450 to be sent to printer 200. Step S480 is an example of print data output processing. This completes the process of this flowchart.
[0069] <Effects of the Embodiment> In step S240, the printer application 170 of this embodiment acquires a PPD file for managing the print setting range of the printer 200 for each user. In step S240, the printer application 170 further converts the capability information acquired from the printer 200 based on the PPD file to generate attributes for identifying the print setting range of the user using the terminal device 100. Then, in step S250, the printer application 170 transmits the generated attributes to the CUPS 160. In step S430, the printer application 170 acquires print data from the CUPS 160 with print settings that match the print setting range corresponding to the user identified by the attributes. In step S480, the printer application 170 controls the transmission of the print data converted based on the print data acquired in step S430 to the printer 200.
[0070] As a result, according to the present embodiment, printing can be performed according to the contents of the print settings that are individual to each user. Therefore, for example, when multiple users share the terminal device 100, even if the contents of the print settings of the previous user remain, the print settings that are specific to that user can be switched to, thereby improving convenience.
[0071] Particularly in this embodiment, in step S420, user information is acquired to identify the user using the terminal device 100. This eliminates the need for each user to input user information into an application when executing printing, thereby improving convenience.
[0072] Furthermore, particularly in this embodiment, when printer application 170 receives a request for attributes from CUPS 160, it identifies the user corresponding to the request and determines whether the identified user is the corresponding user. If it is determined that the user is the corresponding user, attributes are generated based on the PPD file and sent to CUPS 160, and if it is determined that the user is not the corresponding user, error processing is executed. In this way, printer application 170 can be configured to process attribute requests from the corresponding user and to reject attribute requests from other users.
[0073] Particularly in this embodiment, in step S410, application information for identifying the application being used by the terminal device 100 is acquired. In step S445, if the print settings of the print data are not within the print setting range corresponding to the application identified in the PPD file, an error is determined. This makes it possible to prevent print data with settings outside the setting range corresponding to the application from being printed.
[0074] In particular, in this embodiment, the printer application 170 acquires the PPD file created by the setting application launched in the setting application launch process in step S240. This allows the administrator to efficiently and smoothly execute print settings for multiple users using the setting application, for example, in cases where a single administrator wants to collectively manage the print settings of multiple users or multiple applications.
[0075] <Modifications> The present invention is not limited to the above-described embodiment, and various modifications are possible within the scope of the spirit and technical concept of the present invention. Such modifications will be described below in order.
[0076] (1) Case where a single printer application stores print setting ranges for multiple users In the above embodiment, a case where three printer applications 170A, 170B, and 170C are installed in the terminal device 100 has been described, but this is not limited to this. For example, one printer application 170 may be installed in the terminal device 100, and print setting ranges for multiple users may be stored in this printer application 170. Figure 8 shows an example of the configuration of the printer application 170 in this modified example. Note that in Figure 8, parts that are the same as those in Figure 1 described above are designated by the same reference numerals, and descriptions thereof will be omitted where appropriate.
[0077] 8, one printer application 170 and three CUPSs 160A, 160B, and 160C are installed in terminal device 100 of this modified example. Printer application 170 stores a PPD file corresponding to the print setting range of user A in print setting storage unit 175A, a PPD file corresponding to the print setting range of user B in print setting storage unit 175B, and a PPD file corresponding to the print setting range of user C in print setting storage unit 175C. CUPSs 160A, 160B, and 160C are the same as those in FIG. 2.
[0078] In response to a request from CUPS 160A, printer application 170 outputs attributes generated based on the PPD file stored in print setting storage unit 175A to CUPS 160A. CUPS 160A transmits print data corresponding to the attributes to printer 200 via printer application 170.
[0079] In response to a request from CUPS 160B, printer application 170 outputs attributes generated based on the PPD file stored in print setting storage unit 175B to CUPS 160B. CUPS 160B transmits print data corresponding to the attributes to printer 200 via printer application 170.
[0080] In response to a request from CUPS 160C, printer application 170 outputs attributes generated based on the PPD file stored in print setting storage unit 175C to CUPS 160C. CUPS 160C transmits print data corresponding to the attributes to printer 200 via printer application 170.
[0081] 9 and 10 show an example of a control procedure executed by the OS when a user logs in in this modified example. It is assumed that the printer application 170 is started separately.
[0082] 9 shows the process when user A logs in. As shown in Fig. 9, in step S510, the OS accepts the login operation of user A and executes default processing related to the login.
[0083] In step S520, the OS starts up the CUPS 160A. That is, the OS starts up the CUPS in a mode corresponding to user A, with the HTTP server being the local server corresponding to user A. With the above, the OS ends the login process for user A.
[0084] Fig. 10 shows the process when user B logs in. As shown in Fig. 10, in step S610, the OS accepts the login operation of user B and executes default processing related to the login.
[0085] In step S620, the OS starts up CUPS 160B. That is, the OS starts up CUPS in a mode corresponding to user B, with the HTTP server being the local server corresponding to user B. With the above, the OS ends the login process for user B.
[0086] Although not shown in the figure, the same process as above is executed when user C logs in.
[0087] Fig. 11 shows an example of whether an attribute request can be accepted by the printer application 170. Note that in Fig. 11, parts that are the same as those in Fig. 2 described above are given the same reference numerals, and descriptions thereof will be omitted where appropriate. As shown in Fig. 11, print setting storage units 175A and 175B of the printer application 170 store PPD files corresponding to the print setting ranges of user A and user B, respectively. Each of these PPD files has been set in advance by, for example, an administrator (illustrated as "Administrator" in Fig. 11).
[0088] 11 , for example, when user A accesses HTTP server 176 of printer application 170 via browser 104 and requests editing of a PPD file, printer application 170 determines the user who has made the access and determines that it is user A. In this case, printer application 170 selects the PPD file in print setting storage unit 175A corresponding to user A and enables editing. This allows user A to edit the PPD file in print setting storage unit 175A.
[0089] Similarly, for example, if user B accesses HTTP server 176 of printer application 170 via browser 104 and requests editing of a PPD file, printer application 170 determines the user who has made the access and determines that it is user B. In this case, printer application 170 selects the PPD file in print setting storage unit 175B that corresponds to user B and enables editing. This allows user B to edit the PPD file in print setting storage unit 175B.
[0090] Similarly, for example, if an administrator (shown as "Administrator" in FIG. 11 ) accesses the HTTP server 176 of the printer application 170 via the browser 104 and requests editing of the PPD file, the printer application 170 determines the user who has made the access and determines that the user is the administrator. In this case, the printer application 170 selects the PPD files in the print setting storage units 175A and 175B that correspond to all users and enables editing of the PPD files. This allows the administrator to edit the PPD files that correspond to all users.
[0091] Although the illustration of user C has been omitted above, the same applies to user C.
[0092] 12 shows an example of a control procedure executed by the printer application 170 when an access from the browser 104 is accepted. When an access from the browser 104 is accepted, the printer application 170 starts the flowchart shown in FIG.
[0093] In step S710, the printer application 170 determines the user who has accessed the printer application 170 via the browser 104.
[0094] In step S720, the printer application 170 selects a PPD file from the print setting storage unit 175 that corresponds to the user determined in step S710.
[0095] In step S730, the printer application 170 edits the PPD file selected in step S720 in accordance with the user's operation. This completes the process of this flowchart.
[0096] FIG. 13 shows an example of the reception of an attribute request by the printer application 170. In FIG.
[0097] 13 , for example, when CUPS 160A requests attributes from printer application 170, printer application 170 determines the user who made the request and determines that it is user A corresponding to CUPS 160A. Printer application 170 converts the capability information acquired from printer 200 based on the PPD file corresponding to user A stored in print setting storage unit 175A to generate attributes and transmits the attributes to CUPS 160A. Similarly, for example, when CUPS 160B requests attributes from printer application 170, printer application 170 determines the user who made the request and determines that it is user B corresponding to CUPS 160B. Printer application 170 converts the capability information acquired from printer 200 based on the PPD file corresponding to user B stored in print setting storage unit 175B to generate attributes and transmits the attributes to CUPS 160B.
[0098] 14 shows an example of a control procedure executed by the printer application 170 when an attribute request is received. When the printer application 170 receives an attribute request, it starts the flowchart shown in FIG.
[0099] 14, in step S810, the printer application 170 determines who the user who made the attribute request is. In other words, the printer application 170 identifies the user corresponding to the attribute request. For example, if the sender of the attribute request is CUPS 160A, the printer application 170 determines that the sender is user A; if the sender is CUPS 160B, the printer application 170 determines that the sender is user B; and if the sender is CUPS 160C, the printer application 170 determines that the sender is user C. Step S810 is an example of second authentication processing.
[0100] In step S820, printer application 170 obtains from print setting storage unit 175 a PPD file corresponding to the user determined in step S810, and generates attributes by converting the capability information obtained from printer 200 based on the PPD file. The PPD file is an example of print setting range management information, and the generated attributes are an example of print setting range identification information. Step S820 is an example of print setting range management information acquisition processing and an example of second information generation processing.
[0101] In step S830, the printer application 170 transmits the attribute generated in step S820 to the CUPS 160 that transmitted the attribute request. The attribute is information for identifying the user using the terminal device 100 and the print setting range of the application being used on the terminal device 100. The user using the terminal device 100 is an example of a specified user, and step S830 is an example of setting range specification information transmission processing. Thereafter, this flowchart ends.
[0102] In the modified example described above, when printer application 170 receives a request for attributes from any of CUPS 160A, 160B, and 160C, the user corresponding to the request is identified, and attributes corresponding to the identified user are generated based on the PPD file and sent to CUPS 160. In this way, printing can be smoothly performed according to the contents of the individual print settings for each user.
[0103] (2) When managing the print setting range for each user or each application In the above embodiment, a case where the print setting range is managed individually for a combination including both a user and an application is described, but the print setting range may also be managed individually for only a user.
[0104] For example, if the print setting range is managed for each user, step S410 can be deleted from the flowchart shown in Figure 9, and step S440 can identify the print setting range set by the user name acquired in step S420, and step S460 can determine whether the user is user A corresponding to printer application 170A. In this case, step S445 is unnecessary.
[0105] In this modified example, the same effects as those of the above embodiment can be obtained.
[0106] (3) Switching print settings when print data is outside the application's setting range In the above embodiment, if the print settings of the print data are outside the application's print setting range, an error is detected and printing is not performed. However, this is not limited to this. For example, if the print settings of the print data are outside the application's print setting range, the print settings may be switched to be within the application's print setting range.
[0107] 15 shows an example of a control procedure that printer application 170A executes when a print request is received from CUPS 160A in this modified example. Here, the case of printer application 170A corresponding to user A will be described as an example, but the same applies to printer applications 170B and 170C. In FIG. 15, procedures that are the same as those in FIG. 7 are designated by the same reference numerals, and descriptions thereof will be omitted.
[0108] Steps S410 to S440 are the same as those in FIG. 7, and therefore the description thereof will be omitted.
[0109] In step S445, printer application 170A determines, based on the print setting range determined in step S440, whether the print settings of the print data acquired in step S430 are within the print setting range corresponding to the application identified in step S410. If printer application 170A determines that the print settings of the print data are within the print setting range corresponding to the application (step S445: Yes), it proceeds to the next step S450. On the other hand, if printer application 170A determines that the print settings of the print data are not within the print setting range corresponding to the application (step S445: No), it proceeds to the next step S447.
[0110] In step S447, printer application 170A switches the print settings so that the print settings of the print data are within the print setting range corresponding to the application. Then, the process proceeds to step S450. For example, if the print settings corresponding to the identified application do not include double-sided printing, which allows multiple printed sheets to be easily viewed side by side, and print data with double-sided printing settings is acquired in step S430, the print settings of the print data are switched to single-sided printing in step S447. Step S447 is an example of a print setting switching process.
[0111] Steps S450 to S480 are the same as those in FIG. 7, and therefore the description thereof will be omitted.
[0112] According to this modification, when print data has settings outside the range of print settings compatible with the application, the print settings can be forcibly changed so as to be within the range of settings compatible with the application.
[0113] (4) Others: The flowcharts shown in Figures 3 to 4, 6 to 7, 9 to 10, 12, and 14 to 15 do not limit the present invention to the procedures shown in the above flows, and steps may be added or deleted or the order may be changed within the scope that does not deviate from the spirit and technical concept of the invention.
[0114] In addition to the above, the methods according to the above embodiments and modifications may be used in appropriate combination.
[0115] Although not specifically illustrated, the present invention can be implemented with various modifications within the scope of the invention.
[0116] <Hardware Configuration of Terminal Device and Printer> An example of the hardware configuration of the terminal device 100 and the printer 200 will be described with reference to FIG.
[0117] 16, the terminal device 100 has a processor 110, a storage device 115, a display unit 140, an operation unit 150, and a communication interface 190. The processor 110, the storage device 115, the display unit 140, the operation unit 150, and the communication interface 190 are connected via a bus 105 so as to be able to transmit and receive data to and from each other.
[0118] The storage device 115 includes a volatile storage device 120 and a non-volatile storage device 130. The volatile storage device 120 is, for example, a DRAM, and stores various programs and data to be processed. The non-volatile storage device 130 is, for example, a hard disk drive or a solid state drive, and includes a program storage area 131 and a data storage area 132.
[0119] Various programs are stored in the program storage area 131. The various programs include the above-mentioned printer application 170, the operating system (OS), and print processing programs such as CUPS 160 based on the flowcharts in Figures 3 to 4, 6 to 7, 9 to 10, 12, and 14 to 15. The data storage area 132 stores data necessary for executing the various programs. The above-mentioned PPD file is also included in the data stored in the data storage area 132.
[0120] The processor 110 is a device that performs data processing, such as a CPU, and executes various programs stored in the program storage area 131. The processor 110 performs various processes including data communication with the printer 200 connected to the network NT. The processor 110 and the programs stored in the program storage area 131 are an example of a calculation unit.
[0121] The display unit 140 is, for example, a liquid crystal display and is capable of displaying various types of information. The operation unit 150 is, for example, a mouse, a keyboard, etc. and accepts operations by a user. The user can input various instructions to the terminal device 100 by operating the operation unit 150.
[0122] The communication interface 190 is an interface for communicating with other devices, and is connected to the network NT.
[0123] The storage device 115 is not limited to the configuration of the device elements described above, and may be configured, for example, by RAM, ROM, EEPROM, HDD, portable recording medium such as a USB memory detachable from the terminal device 100, a buffer provided in the processor 110, or a combination thereof. The storage device 115 may be a computer-readable storage medium. A computer-readable storage medium is a non-transitory medium. In addition to the above examples, non-transitory media also include recording media such as CD-ROMs and DVD-ROMs. A non-transitory medium is also a tangible medium. The same applies to the storage device 215 of the printer 200 described below.
[0124] 16, the printer 200 has a processor 210, a storage device 215, a display unit 240, an operation unit 250, a communication interface 270, and a printing unit 290. The processor 210, the storage device 215, the display unit 240, the operation unit 250, the communication interface 270, and the printing unit 290 are connected via a bus 205 so as to be able to send and receive data to and from each other.
[0125] The storage device 215 includes a volatile storage device 220 and a non-volatile storage device 230. The volatile storage device 220 is, for example, a DRAM, and includes an image data storage area 222 that stores image data to be printed. The non-volatile storage device 230 is, for example, an NVRAM, a flash memory, or the like, and includes a program storage area 231 and a data storage area 232. Various programs are stored in the program storage area 231. The various programs include firmware such as a print processing program. The data storage area 232 stores various data and the like for executing the various programs.
[0126] The processor 210 is a device that performs data processing, such as a CPU, and executes various programs stored in the program storage area 231.
[0127] The display unit 240 is, for example, a liquid crystal display, and is capable of displaying various types of information. The operation unit 250 is a device that accepts operations by the user. The user can input various instructions to the printer 200 by operating the operation unit 250. The communication interface 270 is a wired or wireless network interface for communicating with other devices, and is connected to the network NT.
[0128] The printing unit 290 prints an image on a printing sheet conveyed by a conveying device. The printing unit 290 prints an image on the printing sheet based on print data transmitted from the terminal device 100 or print data generated by the printing unit 290 itself based on an operation on the operation unit 250.
[0129] 1 Printing system 100 Terminal device (an example of an information processing device) 110 Processor 160 CUPS (an example of printing software) 160A CUPS (an example of printing software) 160B CUPS (an example of printing software) 160C CUPS (an example of printing software) 170 Printer application (an example of an information processing program) 170A Printer application (an example of an information processing program) 170B Printer application (an example of an information processing program) 170C Printer application (an example of an information processing program) 200 Printer (an example of a printing device)
Claims
1. An information processing program that is executable by the calculation unit of an information processing device and compatible with a printing device that can communicate with the information processing device, wherein the information processing device is equipped with an operating system having printing software, and the information processing program is registerable with the printing software as a virtual printing device, and when the information processing program is registered with the printing software as the virtual printing device, the information processing program is configured to execute, on the calculation unit of the information processing device, the following: a print setting range management information acquisition process that acquires print setting range management information that manages, for each user, the print setting range that is the range of print settings available on the printing device; a setting range identification information transmission process that sends to the printing software print setting range identification information for identifying the print setting range of a specific user who is using the information processing device based on the acquired print setting range management information; a print data acquisition process that acquires from the printing software first print data with print settings that match the print setting range that corresponds to the specific user identified by the print setting range identification information; and a print data output process that controls so that second print data based on the first print data acquired in the print data acquisition process is sent to the printing device.
2. An information processing program as described in claim 1, further configured to cause the calculation unit to execute a user identification process for acquiring user information for identifying a user using the information processing device from the printing software of the information processing device.
3. The information processing program according to claim 1, further configured to cause the calculation unit to execute: a first authentication process for identifying a user corresponding to the request when a request for the print setting range identification information is received from the printing software; a first determination process for determining whether the user identified in the first authentication process is the specified user; a first information generation process for generating the print setting range identification information based on the print setting range management information when the first determination process determines that the user is the specified user; and a first error process for executing error processing when the first determination process determines that the user is not the specified user; and in the setting range identification information transmission process, the print setting range identification information generated in the first information generation process is transmitted to the printing software.
4. The information processing program according to claim 1, further configured to cause the calculation unit to execute a second authentication process for identifying a user corresponding to the request when a request for the print setting range identification information is received from the printing software, and a second information generation process for generating the print setting range identification information corresponding to the user identified in the second authentication process based on the print setting range management information, and to transmit the print setting range identification information generated in the second information generation process to the printing software in the setting range identification information transmission process.
5. The information processing program of claim 1, wherein the print setting range management information acquired by the print setting range management information acquisition process further manages the print setting range in the printing device for each application, and the calculation unit is further configured to execute: an application identification process that acquires application information for identifying the application used in the information processing device from the operating system of the information processing device; and an error determination process that determines that an error has occurred if the print settings of the first print data are not within the print setting range corresponding to the application identified by the application identification process in the print setting range management information.
6. The information processing program of claim 1, wherein the print setting range management information acquired by the print setting range management information acquisition process further manages the print setting range in the printing device for each application, and the calculation unit is further configured to execute: an application identification process that acquires application information for identifying the application used in the information processing device from the operating system of the information processing device; and a print setting switching process that, when the print settings of the first print data are not within the print setting range corresponding to the application identified by the application identification process in the print setting range management information, switches the print settings so that the print settings of the second print data are within the print setting range corresponding to the application.
7. An information processing program according to any one of claims 1 to 6, further configured to cause the calculation unit to execute a setting application launch process that launches a setting application for editing the print setting range management information, and in the print setting range management information acquisition process, the print setting range management information edited by the setting application launched in the setting application launch process is acquired.
8. The information processing program according to claim 1, wherein the print setting range management information acquisition process is configured to acquire the print setting range management information from data installed when the information processing program is installed.
9. An information processing program according to claim 1, wherein the print setting range management information acquisition process is configured to acquire the print setting range management information from data imported from outside the information processing device.
10. An information processing program according to claim 1, wherein the print setting range management information acquisition process is configured to acquire the print setting range management information from capability information acquired from the printing device.
Citation Information
Patent Citations
Program and information processor
JP2021124738A
Support program and printing system
JP2022168524A