Information processing program

The information processing program ensures user-specific print settings in driverless printing systems, addressing the issue of shared virtual printers by managing and applying individual user preferences, enhancing convenience.

JP2026046117APending Publication Date: 2026-03-13BROTHER KOGYO KK
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-08-30
Publication Date
2026-03-13

AI Technical Summary

Technical Problem

Conventional driverless printing systems do not allow for user-specific print settings, leading to potential interference and inconvenience when multiple users share a virtual printer.

Method used

An information processing program that manages and applies user-specific print settings by acquiring and transmitting print data according to individual user settings, ensuring each user's preferences are respected.

Benefits of technology

Enables user-specific print settings, improving convenience by allowing seamless switching to the current user's preferences even when multiple users share a virtual printer.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026046117000001_ABST
    Figure 2026046117000001_ABST
Patent Text Reader

Abstract

This allows for user-specific print settings when printing via a virtual printer. [Solution] The printer application 170 performs the following steps: S240 to obtain a PPD file that manages the print setting range, which is the range of print settings that can be set on the printer 200, for each user; S250 to send an attribute to the CUPS 160 to identify the print setting range of the user using the terminal device 100 based on the obtained PPD file; S430 to obtain print data from the CUPS 160 that matches the print setting range corresponding to the user identified by the attribute; and S480 to control the transmission of print data based on the print data obtained in step S430 to the printer 200.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information processing program executed by an information processing device capable of communicating with a printing device.

Background Art

[0002] Conventionally, an operating system (OS) having a so-called driverless printing function that performs printing without using a printer driver provided by a printer vendor according to a predetermined printing standard has been becoming common. In this case, printing can be performed without installing a printer driver.

[0003] As an example of utilizing the function of such driverless OS standard printing software and corresponding to printers not supported by driverless or expanding the function of normal driverless printing, as described in Patent Document 1, a virtual printing device that receives a print job from the OS standard printing software and transmits the received print job to a printer is configured in an information processing device.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] In the above prior art, by registering a virtual printing device in the OS standard printing software, print data from the OS standard printing software is output to the virtual printing device, and printing based on the print data is executed. A user can execute various printing settings at the time of printing on the virtual printing device.

[0006] However, the above-mentioned conventional technology does not take into account the ability to configure print settings on a per-user basis. Therefore, when multiple users share a single virtual printer, there is a possibility that the print settings used by the previous user may remain, or that the settings may revert to the default settings, indicating room for improvement.

[0007] The objective of the present invention is to provide an information processing program that enables user-specific print settings when printing is performed via a virtual printing device, thereby improving convenience. [Means for solving the problem]

[0008] To achieve the above objective, the information processing program of the present invention is executable by the arithmetic 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, 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 a virtual printing device, it is configured to execute the following processes: a print setting range management information acquisition process to acquire print setting range management information for managing the print setting range, which is the range of print settings that can be set in the printing device, for each user; a setting range identification information transmission process to send print setting range identification information to the printing software to identify the print setting range of a specific user using the information processing device based on the acquired print setting range management information; a print data acquisition process to acquire first print data from the printing software that matches the print setting range corresponding to the specific user identified by the print setting range identification information; and a print data output process to control the transmission of second print data based on the first print data acquired in the print data acquisition process toward the printing device.

[0009] The arithmetic unit that executes the information processing program of the present invention acquires print setting range management information for managing the print setting range of the printing device for each user in the print setting range management information acquisition process. The arithmetic unit transmits print setting range identification information to the printing software for identifying the print setting range of a specific user using the information processing device, based on the acquired print setting range management information. The arithmetic unit acquires first print data from the printing software in the print data acquisition process, which has print settings that match the print setting range corresponding to the specific user identified by the print setting range identification information. The arithmetic unit controls the transmission of second print data based on the first print data acquired in the print data acquisition process to the printing device in the print data output process. As a result of the above, the present invention makes it possible to perform printing according to the individual print settings of each user. Therefore, for example, when multiple users share a virtual printer, even if the print settings of the previous user remain, it is possible to switch to the print settings specific to that user, thereby improving convenience. [Effects of the Invention]

[0010] According to the present invention, when printing is performed via a virtual printing device, user-specific print settings can be enabled, thereby improving convenience. [Brief explanation of the drawing]

[0011] [Figure 1] This is a block diagram showing the system configuration of a printing system according to one embodiment of the present invention, as well as user-specific configuration examples of the printer application and CUPS. [Figure 2] This is an explanatory diagram illustrating an example of whether or not the print settings range for each user's printer application can be edited. [Figure 3] This flowchart illustrates an example of the control procedures performed by the operating system when a user logs in. [Figure 4] This flowchart illustrates an example of the control procedures performed by the operating system when a user logs in. [Figure 5]This is an explanatory diagram illustrating an example of whether or not an attribute request from a printer application can be accepted. [Figure 6] This flowchart illustrates an example of the control procedure executed by a printer application when it receives an attribute request. [Figure 7] This flowchart illustrates an example of the control procedure that a printer application executes when it receives a print request from CUPS. [Figure 8] This block diagram shows an example configuration of a printer application in a modified case where a single printer application remembers the print settings range for multiple users. [Figure 9] This flowchart illustrates an example of the control procedure the OS performs when a user logs in, in a modified case where a single printer application remembers the print settings range for multiple users. [Figure 10] This flowchart illustrates an example of the control procedure the OS performs when a user logs in, in a modified case where a single printer application remembers the print settings range for multiple users. [Figure 11] This diagram illustrates an example of whether or not the print settings range for each user can be edited in a modified case where a single printer application stores the print settings range for multiple users. [Figure 12] This flowchart illustrates an example of the control procedure that a single printer application executes when it receives access from a browser, in a modified case where the single printer application stores the print settings range for multiple users. [Figure 13] This is an explanatory diagram illustrating an example of how a printer application receives attribute requests in a modified case where a single printer application stores print settings for multiple users. [Figure 14] This flowchart illustrates an example of the control procedure that a printer application executes when it receives an attribute request, in a modified case where a single printer application stores the print settings range for multiple users. [Figure 15]A flowchart showing an example of a control procedure executed by a printer application when a print request is received from CUPS in a modified example of switching print settings when print data is not within the print setting range of an application. [Figure 16] A block diagram showing an example of the hardware configuration of a terminal device and a printer.

Embodiments for Carrying Out the Invention

[0012] <Embodiment> An embodiment of the present invention will be described with reference to the drawings.

[0013] <Overview of the 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 includes a terminal device 100 and a printer 200. The terminal device 100 and the printer 200 are communicably connected via, for example, the Internet, a wired LAN, or a wireless LAN. Note that 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 the 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, a tablet computer, etc., but may also be a mobile terminal such as a smartphone. Although details will be described 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). By the processor 110 executing various print processing programs, the terminal device 100 has the functional configuration shown in FIG. 1. In the following description, there may be descriptions such as a program ***. This means that the program is executed by the processor 110 to execute the *** process.

[0015] The terminal device 100 includes an OS (Operating System; not shown), an application corresponding to the OS's printing function (not shown), multiple printer applications 170, and a settings editor (not shown). These are included in the program 131 shown in Figure 16, which will be described later. In this embodiment, as shown in Figure 1, we will describe the case where the multiple printer applications 170 are, for example, three printer applications 170A, 170B, and 170C, each corresponding to three users A, B, and C. The three printer applications 170A, 170B, and 170C may be implemented by a common information processing program or by separate information processing programs. The three printer applications 170A, 170B, and 170C each have equivalent functional configurations. In this embodiment, when the three printer applications 170A, 170B, and 170C are not distinguished, they are simply referred to as "printer application 170".

[0016] The OS has a so-called driverless printing function that performs printing according to a predetermined printing standard without using a printer driver provided by the printer vendor. As an example, the OS has multiple CUPS (Common Unix Printing System) 160, which are modularized printing systems for the OS. This embodiment describes a case where the multiple CUPS 160s are three CUPS 160A, 160B, and 160C, each corresponding to three users A, B, and C (three printer applications 170A, 170B, and 170C). The three CUPS 160A, 160B, and 160C may be implemented by a common information processing program or by separate information processing programs. The three CUPS 160A, 160B, and 160C each have equivalent functional configurations. In this embodiment, when the three CUPS 160A, 160B, and 160C are not distinguished, they are simply referred to as "CUPS 160". Note that OS is an example of an operating system, and CUPS 160 is an example of printing software. Printing software can be one that is built into the operating system as standard.

[0017] <Printer Application> The printer application 170 can be registered with the CUPS 160 as a virtual printer corresponding to the connected printer 200. In this embodiment, printer application 170A can be registered with CUPS 160A, printer application 170B with CUPS 160B, and printer application 170C with CUPS 160C. Each CUPS 160 treats the corresponding printer application 170 as a real printer and performs various printing-related processes. These processes include, for example, capacity information acquisition processing and print data transmission processing. The printer application 170 is controlled using the print setting storage unit 175. In this embodiment, printer application 170A uses the print setting storage unit 175A, printer application 170B uses the print setting storage unit 175B, and printer application 170C uses the print setting storage unit 175C. The printer application 170 is an example of an information processing program.

[0018] The print setting storage unit 175 stores PPD files that manage the print setting range, which is the range of print settings that can be set on the printer 200, for each user, or for each user and each application. The PPD files include the print setting range for users corresponding to the printer application 170, or the print setting range for applications that require print function restrictions for users corresponding to the printer application 170. In this embodiment, the print setting storage unit 175A of 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 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 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 portion of the data storage area 132 of the non-volatile storage device 130 of the storage device 115 of the terminal device 100 (see Figure 16 below). The print setting storage units 175A, 175B, and 175C each have their own separate storage areas. A PPD file is an example of print setting range management information.

[0019] Furthermore, the print setting storage unit 175 only needs to store the print settings for each user; print settings for applications are not necessarily required. If application-specific print settings are to be reflected, for example, the application-specific print settings should be added to the user-specific print settings.

[0020] The print settings range includes settings such as paper size, print mode, and paper type. The print settings range is set per user, or per user and per application, by a settings application used to edit the above PPD file. The settings application is launched, for example, by the settings application launch process of the printer application 170.

[0021] Furthermore, the PPD file may be edited on an external terminal, not just the terminal device 100. The PPD file may also be obtained from data installed during the installation of the printer application 170. Alternatively, the PPD file may be obtained from data imported from outside the terminal device 100. Furthermore, the PPD file may be obtained from capability information acquired from the printer 200 using protocols such as IPP attributes and PJL. The PPD file stores a general, user-independent configuration provided externally, 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] The printer application 170 converts the user-specific print setting range stored in the print setting storage unit 175 into IPP attributes (hereinafter simply referred to as "attributes") corresponding to the printing functions that the CUPS 160 can handle. In this embodiment, the printer application 170A converts the user A's print setting range stored in the print setting storage unit 175A into attributes corresponding to the printing functions that the CUPS 160A can handle. The printer application 170B converts the user B's print setting range stored in the print setting storage unit 175B into attributes corresponding to the printing functions that the CUPS 160B can handle. The printer application 170C converts the user C's print setting range stored in the print setting storage unit 175C into attributes corresponding to the printing functions that the CUPS 160C can handle.

[0023] The printer application 170 outputs attributes converted according to the user as described above to the CUPS 160 in response to the CUPS 160's capability information acquisition process. The CUPS 160 outputs print data corresponding to the attributes output from the printer application 170. The printer application 170 acquires the print data output from the CUPS 160. The printer application 170 acquires user information from the OS or CUPS 160 to identify the user using the terminal device 100. User information is, for example, the login username. The printer application 170 also acquires application information from CUPS 160 to identify the application used on the terminal device 100. Application information is, for example, the name of the application included in the print job. The printer application 170 acquires a PPD file from the print setting storage unit 175 and determines the print setting range according to the user using the terminal device 100 and the application being used, based on the acquired PPD file and the above user information and application information. The printer application 170 converts the print data acquired from CUPS 160 into print data based on the determined print setting range. The print data obtained by the printer application 170 from the CUPS 160 is an example of the first print data, and the print data converted based on the print setting range is an example of the second print data. The second print data may be the first print data as is. The printer application 170 sends the converted print data to the printer 200.

[0024] <Features of this embodiment> In conventional printing systems 1, one printer application 170 is installed on 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 settings range of the printer 200 for each user using the terminal device 100 is pre-stored. The user-specific print settings range contained in the PPD file can be edited using a settings application. The print settings range can be edited by each user themselves, or, for example, by an administrator who sets it for all users.

[0026] In this embodiment, the terminal device 100 has multiple printer applications 170, each corresponding to a multiple user who shares the terminal device 100, and multiple CUPS 160s, each corresponding to a multiple printer application 170, installed on it. Each printer application 170 stores a PPD file related to the print settings range of the corresponding user.

[0027] Each printer application 170, in response to a request from the corresponding CUPS 160, outputs attributes converted according to the user's print settings range based on the PPD file to the CUPS 160. Each printer application 170 receives print data corresponding to the above attributes output from the corresponding CUPS 160. Each printer application 170 converts the print data obtained from the corresponding CUPS 160 into print data based on the print settings range corresponding to the user name as needed, and sends the converted print data to the printer 200. If print settings ranges are managed for each application, for example, each printer application 170 converts the print data obtained from the corresponding CUPS 160 into print data based on the print settings range corresponding to the user name and the print settings 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 each user's individual print settings. Therefore, even if multiple users share terminal device 100, for example, the print settings of the previous user can be switched to the current user's specific print settings, improving convenience. The details of this will be explained below.

[0029] <Example of User-Specific Configuration of Printer Applications and CUPS> Figure 1 shows an example of user-specific configuration of printer application 170 and CUPS 160. In the example shown in Figure 1, terminal device 100 is used by three users: A, B, and C. Terminal device 100 has three printer applications 170A, 170B, and 170C, and three CUPS 160A, 160B, and 160C installed. 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 CUPS 160A, 160B, and 160C are implemented by CUPS, which is common printing software. CUPS 160A is the mode of CUPS corresponding to user A, and the HTTP server functions as a local server corresponding to user A. CUPS160B is the mode for CUPS user B, and it makes the HTTP server function as a local server for user B. CUPS160C is the mode for CUPS user C, and it makes the HTTP server function as a local server for user C.

[0030] The printer application 170A stores a PPD file corresponding to the print settings range of user A in the print setting storage unit 175A, and outputs attributes generated based on the PPD file to the CUPS 160A upon request from the CUPS 160A. The CUPS 160A then sends the print data corresponding to the above attributes to the printer 200 via the printer application 170A.

[0031] The printer application 170B stores a PPD file corresponding to the print settings range of user B in the print setting storage unit 175B, and outputs attributes generated based on the PPD file to the CUPS 160B upon request from the CUPS 160B. The CUPS 160B then sends the print data corresponding to the above attributes to the printer 200 via the printer application 170B.

[0032] The printer application 170C stores a PPD file corresponding to the user C's print settings range in the print settings storage unit 175C, and outputs attributes generated based on the PPD file to the CUPS 160C upon request from the CUPS 160C. The CUPS 160C then sends the print data corresponding to the above attributes to the printer 200 via the printer application 170C.

[0033] <Example of a user who can edit the print settings range of a printer application> Figure 2 shows an example of whether or not the print settings range of the printer application 170 can be edited for each user. In Figure 2, the case of printer application 170A corresponding to user A is shown as an example. As shown in Figure 2, the print setting storage unit 175A of printer application 170A stores a PPD file corresponding to the print settings range of user A. This PPD file is pre-configured, for example, by an administrator (shown as Administrator in Figure 2).

[0034] As shown in Figure 2, for example, if user A accesses the HTTP server 176 of the printer application 170A via browser 104 and requests to edit a PPD file stored in the print setting storage unit 175A, the printer application 170A determines the user who accessed it and determines that it is user A. In this case, the printer application 170A allows editing of the PPD file. As a result, user A can edit the PPD file in the printer application 170A. Note that it is also possible to configure the system so that only the administrator can modify the print setting storage unit 175A. In this case, the request from user A will be rejected.

[0035] Furthermore, if, for example, user B accesses the HTTP server 176 of the printer application 170A via browser 104 and requests to edit the PPD file stored in the print settings storage unit 175A, the printer application 170A determines the user who made the access and determines that it is user B. In this case, the printer application 170A refuses to edit the PPD file. As a result, user B cannot edit the PPD file in the printer application 170A. Although not shown in Figure 2, user C is also unable to edit the PPD file in the same way.

[0036] Furthermore, if, for example, an administrator (shown as Administrator in Figure 2) accesses the HTTP server 176 of the printer application 170A via the browser 104 and requests to edit the PPD file stored in the print settings storage unit 175A, the printer application 170A will determine who the user is and will determine that it is an administrator. In this case, the printer application 170A will allow the editing of the PPD file. This allows the administrator to edit the PPD file in the printer application 170A.

[0037] The above example illustrates the case of printer application 170A, but the same applies to printer applications 170B and 170C. As described above, the PPD file for each printer application 170 can only be edited by users and administrators who are compatible with that printer application 170, and users who are not compatible with that printer application 170 cannot edit it.

[0038] <Control Procedure> The control procedures performed by the OS or printer application 170 to execute printing according to the individual print settings range for each user are explained by the flowcharts in Figures 3-4 and 6-7.

[0039] Figures 3 and 4 show an example of the control procedure that the OS performs when a user logs in.

[0040] Figure 3 shows the process when user A logs in to the OS of terminal device 100. As shown in Figure 3, in step S10, the OS accepts user A's login operation and executes default processing related to login.

[0041] In step S20, the OS starts CUPS160A. That is, the OS starts CUPS in a mode corresponding to user A, with the HTTP server set as the local server corresponding to user A. This startup process is executed as an OS function because it is registered with the OS in advance as a process to be executed when logging in.

[0042] In step S30, the OS launches the printer application 170A. Similarly, this is executed as an OS function because it is pre-registered with the OS as a process to be executed upon login. With this, the OS completes the login process for user A.

[0043] Figure 4 shows the process when user B logs in. As shown in Figure 4, in step S110, the OS accepts user B's login operation and executes default processing related to login.

[0044] In step S120, the OS starts CUPS160B. That is, the OS starts CUPS in a mode corresponding to user B, with the HTTP server set as the local server corresponding to user B.

[0045] In step S130, the OS launches the printer application 170B. With this, the OS terminates the login process for user B.

[0046] Although not shown in the diagram, the same process is executed when user C logs in.

[0047] Figure 5 shows an example of whether an attribute request by the printer application 170 is accepted or rejected. In Figure 5, the case of printer application 170A corresponding to user A is shown as an example.

[0048] As shown in Figure 5, for example, if CUPS160A requests attributes from printer application 170A, printer application 170A determines the user who made the request and determines that it is user A, which corresponds to CUPS160A. In this case, printer application 170A accepts the attribute request, converts the capability information obtained from printer 200 based on the print setting range of the PPD file corresponding to user A to generate attributes, and sends the attributes to CUPS160A. On the other hand, for example, if CUPS160B requests attributes from printer application 170A, printer application 170A determines the user who made the request and determines that it is user B, which corresponds to CUPS160B. In this case, printer application 170A rejects the attribute request and does not send the attributes to CUPS160B.

[0049] The above example illustrates the case of printer application 170A, but the same principles apply to printer applications 170B and 170C.

[0050] Figure 6 shows an example of the control procedure executed by the printer application 170 when it receives an attribute request. Figure 6 shows the control procedure for printer application 170A corresponding to user A as an example. When printer application 170A receives an attribute request, it starts the flowchart shown in Figure 6.

[0051] As shown in Figure 6, in step S210, the printer application 170A determines who the user who made the attribute request is. In other words, the printer application 170A identifies the user corresponding to the attribute request. For example, the printer application 170A determines that if the source of the attribute request is CUPS160A, it is user A; if it is CUPS160B, it is user B; and if it is C, it is user C. Step S210 is an example of the first authentication process. Note that, for example, if the source of the attribute request is such that other users cannot be identified, the user may be determined to be unknown.

[0052] The method for determining the user in step S210 is not particularly limited, but for example, it may be determined by referring to items such as the User-Agent of the IPP protocol. Alternatively, a dummy job may be sent to the CUPS160's HTTP server using user impersonation technology, the job submission information at that time may be stored, and when an attribute request is received, the user information may be determined by comparing it with the stored job submission information.

[0053] In step S220, the printer application 170A determines whether the result of the determination in step S210 corresponds to user A, which is the user of the printer application 170A. If the result of the determination in step S210 is not user A (including unknown user) (step S220: No), the printer application 170A proceeds to the next step S230. Step S220 is an example of the first determination process.

[0054] In step S230, the printer application 170A sends an error to the CUPS 160 that sent the attribute request. In other words, the printer application 170A performs error handling. Step S230 is an example of first error handling. After that, this flowchart ends.

[0055] On the other hand, in step S220 above, if the printer application 170A is user A (step S220: Yes), the process proceeds to the next step S240.

[0056] In step S240, the printer application 170A obtains a PPD file corresponding to user A from the print setting storage unit 175A, and generates attributes by converting the capability information obtained from the printer 200 based on the PPD file. For example, even if the printer capability information includes paper size: A3 and paper type: glossy paper, if 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 above 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 the print setting range management information acquisition process and an example of the first information generation process.

[0057] In step S250, the printer application 170A sends the attribute generated in step S240 to the CUPS 160A that sent the attribute request. This attribute is information for identifying user A using the terminal device 100 and the print setting range of application A used on the terminal device 100. User A is an example of a specific user, and step S250 is an example of the setting range identification information transmission process. After that, this flowchart ends.

[0058] The above describes the control procedure for printer application 170A, but the control procedures for printer applications 170B and 170C are similar. As described above, each printer application 170 accepts attribute requests from the CUPS 160 corresponding to that printer application 170 and rejects attribute requests from CUPS 160s that are not compatible with that printer application 170.

[0059] Figure 7 shows an example of the control procedure that printer application 170A executes when it receives a print request from CUPS 160A. Here, we will explain the case of printer application 170A corresponding to user A as an example, but the same applies to printer applications 170B and 170C.

[0060] As shown in Figure 7, in step S410, the printer application 170A obtains the print job name output from CUPS 160A. The print job name is a name that combines the application name used for printing and the print file name according to a rule, and the application name can be identified from this name. The application name consists of, for example, a string of half-width alphabet characters. The application name is an example of application information. In other words, in step S410, the printer application 170A obtains application information from the OS CUPS 160A to identify the application used on the terminal device 100. Note that the application information and the application identification information may be the same or different. For example, the application identification information may include the name of an application installed on the terminal device 100 consisting of a full-width string of characters such as kanji or katakana, or other information that can identify the application. Step S410 is an example of application identification processing.

[0061] In step S420, the printer application 170A obtains the username of the user who owns the print job. This is usually the login name of the user who launched the application used for printing. The username consists of, for example, a string of half-width alphanumeric characters. The login username is an example of user information. In other words, in step S420, the printer application 170A obtains user information from the OS or CUPS 160A to identify the user using the terminal device 100. Note that user information and user identification information may be the same or different. For example, user identification information may include a username consisting 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, the printer application 170A acquires print data from the CUPS 160A. The CUPS 160A has previously made an attribute request to the printer application 170A and has received the attributes sent from the printer application 170A in step S250 in Figure 6. This print data is print data with print settings that match the print setting range identified by these attributes. At this stage, however, the print data may not yet correspond to the print settings that are restricted by the application combination. The print data acquired in step S430 is an example of first print data, and step S430 is an example of the print data acquisition process.

[0063] In step S440, the printer application 170A reads the PPD file from the print setting storage unit 175A and identifies the print setting range to be set using the application name obtained in step S410 and the user name obtained in step S420. In other words, in step S440, based on the PPD file, the application name obtained in step S410, and the user name obtained in step S420, the print setting range corresponding to the user using the terminal device 100 and the application used by the terminal device 100 is determined.

[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 corresponding to 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 corresponding to the application (step S445: No), it determines it to be an error and terminates this flowchart. For example, if Nin1 is not included in the print setting range for the identified application in order to maintain visibility, and print data with a 2in1 print setting is acquired, it is determined to be 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 corresponding to the application (step S445: Yes), it proceeds to the next step S450.

[0065] In step S450, the 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 includes only the energy-saving mode and not the normal mode regarding the amount of printing material consumed, the energy-saving mode cannot be handled by CUPS160A and is therefore not included in the attributes returned in step S250. Consequently, the print data acquired in step S430 does not reflect the energy-saving mode. The energy-saving mode is determined as the print setting range in step S440, and in step S450, the print data is converted to reduce the amount of printing material consumed. This conversion can be done, for example, by reducing the number of dots to print or by lowering the density of each dot. The print data converted in step S450 is an example of the second print data. If the print setting data in the print data and the print setting range determined in S440 are inconsistent and the conversion cannot be performed, an error will occur in step S470, which will be described later.

[0066] In step S460, the printer application 170A determines whether the username obtained in step S420 corresponds to user A of the printer application 170A. If the username does not satisfy the determination (step S460: No), the printer application 170A performs error handling and terminates this flowchart without executing step S480, which will be described later. On the other hand, if the username satisfies the determination (step S460: Yes), the printer application 170A proceeds to the next step S470.

[0067] In step S470, the printer application 170A determines whether or not the conversion of the print data in step S450 was successful. If the printer application 170A is unable to convert the print data (step S470: Yes), it performs error handling and terminates this flowchart without executing step S480, which will be described later. On the other hand, if the printer application 170A is able to convert the print data (step S470: No), it proceeds to the next step, S480.

[0068] In step S480, the printer application 170A controls the transmission of the print data converted in step S450 to the printer 200. Step S480 is an example of the print data output process. This concludes this flowchart.

[0069] <Effects of the Embodiment> In this embodiment, the printer application 170 obtains a PPD file in step S240 for managing the print setting range of the printer 200 for each user. In step S240, the printer application 170 further generates an attribute to identify the print setting range of a user using the terminal device 100 by converting the capability information obtained from the printer 200 based on the PPD file. Then, in step S250, it sends the generated attribute to the CUPS 160. In step S430, the printer application 170 obtains print data from the CUPS 160 that matches the print setting range corresponding to the user identified by the attribute. In step S480, the printer application 170 controls the printer so that the print data converted based on the print data obtained in step S430 is sent to the printer 200.

[0070] As a result of the above, according to this embodiment, printing can be performed according to the individual print settings of each user. Therefore, for example, when multiple users share the terminal device 100, even if the print settings of the previous user remain, it is possible to switch to the print settings specific to that user, thereby improving convenience.

[0071] Furthermore, in this embodiment, in particular, in step S420, user information is acquired to identify the user using the terminal device 100. This eliminates the need for each user to enter user information in the application when performing a print job, thereby improving convenience.

[0072] Furthermore, in this embodiment, when the printer application 170 receives an attribute request from the CUPS 160, the user corresponding to the request is identified, and it is determined whether the identified user is the corresponding user. If it is determined that the user is the corresponding user, the attribute is generated based on the PPD file and sent to the CUPS 160; if it is determined that the user is not the corresponding user, error handling is performed. In this way, the printer application 170 can be configured to process attribute requests from the corresponding user and reject attribute requests from other users.

[0073] Furthermore, in this embodiment, in particular, in step S410, application information is acquired to identify the application being used by the terminal device 100. In step S445, if the print settings of the print data are not within the range of print settings corresponding to the application identified in the PPD file, an error is determined. This makes it possible to prevent printing of print data with settings outside the range corresponding to the application.

[0074] Furthermore, in this embodiment, the printer application 170 obtains the PPD file created by the configuration application launched in the configuration application launch process in step S240. This allows the administrator to efficiently and smoothly execute the print settings for multiple users using the configuration application, for example, when one administrator wants to manage the print settings for multiple users or multiple applications all at once.

[0075] <Variation> It should be noted that the present invention is not limited to the embodiments described above, and various modifications are possible without departing from its spirit and technical concept. Such modifications will be described in order below.

[0076] (1) When a single printer application remembers the print settings range for multiple users In the above embodiment, a case in which three printer applications 170A, 170B, and 170C are installed on the terminal device 100 has been described, but the embodiment is not limited to this. For example, one printer application 170 may be installed on the terminal device 100, and the print setting ranges of 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. In Figure 8, the same reference numerals are used for parts that are the same as those in Figure 1 described above, and explanations are omitted as appropriate.

[0077] As shown in Figure 8, the terminal device 100 of this modified example has one printer application 170 and three CUPS units 160A, 160B, and 160C installed. The printer application 170 stores the PPD file corresponding to user A's print setting range in the print setting storage unit 175A, the PPD file corresponding to user B's print setting range in the print setting storage unit 175B, and the PPD file corresponding to user C's print setting range in the print setting storage unit 175C. The CUPS units 160A, 160B, and 160C are the same as in Figure 2.

[0078] The printer application 170, in response to a request from the CUPS 160A, outputs attributes generated based on the PPD file stored in the print setting storage unit 175A to the CUPS 160A. The CUPS 160A then sends print data corresponding to the above attributes to the printer 200 via the printer application 170.

[0079] The printer application 170, in response to a request from the CUPS 160B, outputs attributes generated based on the PPD file stored in the print setting storage unit 175B to the CUPS 160B. The CUPS 160B then sends the print data corresponding to the above attributes to the printer 200 via the printer application 170.

[0080] The printer application 170, in response to a request from the CUPS 160C, outputs attributes generated based on the PPD file stored in the print setting storage unit 175C to the CUPS 160C. The CUPS 160C then sends the print data corresponding to the above attributes to the printer 200 via the printer application 170.

[0081] Figures 9 and 10 show an example of the control procedure executed by the OS when a user logs in in this modified example. It is assumed that the printer application 170 is running separately.

[0082] Figure 9 shows the process when user A logs in. As shown in Figure 9, in step S510, the OS accepts user A's login operation and executes default processing related to login.

[0083] In step S520, the OS starts CUPS160A. That is, the OS starts CUPS in a mode corresponding to user A, with the HTTP server set as the local server corresponding to user A. With this, the OS terminates the login process for user A.

[0084] Figure 10 shows the process when user B logs in. As shown in Figure 10, in step S610, the OS accepts user B's login operation and executes default processing related to login.

[0085] In step S620, the OS starts CUPS160B. That is, the OS starts CUPS in a mode corresponding to user B, with the HTTP server set as the local server corresponding to user B. With this, the OS finishes the login process for user B.

[0086] Although not shown in the diagram, the same process is executed when user C logs in.

[0087] Figure 11 shows an example of whether or not an attribute request by the printer application 170 is accepted. In Figure 11, the same reference numerals are used for parts that are the same as those in Figure 2, and explanations are omitted as appropriate. As shown in Figure 11, the 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. These PPD files are pre-configured, for example, by an administrator (shown as Administrator in Figure 11).

[0088] As shown in Figure 11, for example, if user A accesses the HTTP server 176 of the printer application 170 via browser 104 and requests to edit a PPD file, the printer application 170 determines the user who made the access and determines that it is user A. In this case, the printer application 170 selects the PPD file in the print setting storage unit 175A corresponding to user A and enables editing. As a result, user A can edit the PPD file in the print setting storage unit 175A.

[0089] Similarly, if, for example, user B accesses the HTTP server 176 of the printer application 170 via browser 104 and requests to edit a PPD file, the printer application 170 determines the user who made the access and determines that it is user B. In this case, the printer application 170 selects the PPD file in the print setting storage unit 175B corresponding to user B and enables editing. As a result, user B can edit the PPD file in the print setting storage unit 175B.

[0090] Similarly, if, for example, an administrator (shown as Administrator in Figure 11) accesses the HTTP server 176 of the printer application 170 via a browser 104 and requests to edit a PPD file, the printer application 170 determines the user who accessed it and determines that it is an administrator. In this case, the printer application 170 selects the PPD files of 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 corresponding to all users.

[0091] Although the illustration for User C was omitted above, the same applies to User C.

[0092] Figure 12 shows an example of the control procedure executed by the printer application 170 when it receives access from the browser 104. When the printer application 170 receives access from the browser 104, it starts the flowchart shown in Figure 12.

[0093] In step S710, the printer application 170 determines the user who accessed it via the browser 104.

[0094] In step S720, the printer application 170 selects the PPD file in the print settings 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 according to the user's actions. This concludes this flowchart.

[0096] Figure 13 shows an example of how the printer application 170 receives attribute requests.

[0097] As shown in Figure 13, for example, if CUPS160A 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 CUPS160A. Printer application 170 converts the capability information obtained from printer 200 based on the PPD file corresponding to user A stored in print setting storage unit 175A to generate attributes and sends the attributes to CUPS160A. Similarly, for example, if CUPS160B 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 CUPS160B. Printer application 170 converts the capability information obtained from printer 200 based on the PPD file corresponding to user B stored in print setting storage unit 175B to generate attributes and sends the attributes to CUPS160B.

[0098] Figure 14 shows an example of the control procedure executed by the printer application 170 when it receives an attribute request. When the printer application 170 receives an attribute request, it starts the flowchart shown in Figure 14.

[0099] As shown in Figure 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, the printer application 170 determines that if the source of the attribute request is CUPS160A, it is user A; if it is CUPS160B, it is user B; and if it is C, it is user C. Step S810 is an example of the second authentication process.

[0100] In step S820, the printer application 170 obtains a PPD file corresponding to the user determined in step S810 from the print setting storage unit 175, and converts the capability information obtained from the printer 200 based on the PPD file to generate attributes. 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 S820 is an example of the print setting range management information acquisition process and an example of the second information generation process.

[0101] In step S830, the printer application 170 sends the attribute generated in step S820 to the CUPS 160 that sent the attribute request. This attribute is information for identifying the user using the terminal device 100 and the print setting range of the application used on the terminal device 100. The user using the terminal device 100 is an example of a specific user, and step S830 is an example of the setting range identification information transmission process. After that, this flowchart ends.

[0102] In the modified example described above, when the printer application 170 receives an attribute request from any of the CUPS 160A, 160B, or 160C, the user corresponding to the request is identified, and based on the PPD file, attributes corresponding to the identified user are generated and sent to the CUPS 160. In this way, printing can be smoothly performed according to the individual print settings of each user.

[0103] (2) When managing print settings range for each user or application In the above embodiment, we described a case where the print setting range is managed individually for combinations including both the user and the application, but it is also possible to manage the print setting range individually for the user only.

[0104] For example, if you want to manage the print settings range for each user, in the flowchart shown in Figure 9 above, you can delete step S410, in step S440 identify the print settings range set by the user name obtained in step S420, and in step S460 determine whether or not it 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) When switching print settings if the print data is outside the range of the app's settings. In the above embodiment, an error is detected and printing is not performed if the print settings of the print data are outside the range of the application's print settings, but the embodiment is not limited to this. For example, if the print settings of the print data are outside the range of the application's print settings, the print settings may be switched to match the print settings within the range of the application's print settings.

[0107] Figure 15 shows an example of the control procedure that printer application 170A executes when a print request is received from CUPS 160A in this modified example. Here, we will explain the case of printer application 170A corresponding to user A as an example, but the same applies to printer applications 170B and 170C. In Figure 15, the same reference numerals are used for the same procedures as in Figure 7, and their explanations are omitted.

[0108] Steps S410 to S440 are the same as in Figure 7, so their explanation is omitted.

[0109] 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 corresponding to the application identified in step S410. If the 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 the 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, the printer application 170A switches the print settings so that the print settings of the print data fall within the range of print settings corresponding to the application. Then, the process proceeds to step S450. For example, if the print settings corresponding to the specified application do not include double-sided printing to make it easier to view multiple printed sheets side by side, and if print data with double-sided printing settings is obtained in step 430, the print settings of the print data are switched to single-sided printing in step S447. Step S447 is an example of the print setting switching process.

[0111] Steps S450 to S480 are the same as in Figure 7, so their explanation is omitted.

[0112] According to this modified example, if the print data has settings outside the range of print settings corresponding to the application, the print settings can be forcibly switched to bring it within the range of settings corresponding to the application.

[0113] (4) Others Furthermore, the flowcharts shown in Figures 3-4, 6-7, 9-10, 12, and 14-15 above do not limit the present invention to the procedures shown in the flowcharts, and additional or deleted procedures or changes in order are permitted without departing from the spirit and technical idea of ​​the invention.

[0114] In addition to what has already been described above, the methods described in the above embodiments and their respective modifications may be used in appropriate combinations.

[0115] Furthermore, although not to be exemplified individually, the present invention may be implemented with various modifications without departing from its spirit.

[0116] <Hardware configuration of terminal devices and printers> An example of the hardware configuration of the terminal device 100 and printer 200 will be explained using Figure 16.

[0117] <Terminal device> As shown in Figure 16, the terminal device 100 includes a processor 110, a storage device 115, a display unit 140, an operation unit 150, and a communication interface 190. These components—the processor 110, the storage device 115, the display unit 140, the operation unit 150, and the communication interface 190—are connected to each other via a bus 105, enabling them to send and receive data.

[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 has a program storage area 131 and a data storage area 132.

[0119] The program storage area 131 stores various programs. These programs include the printer application 170, operating system (OS), and printing processing programs such as CUPS 160, based on the flowcharts in Figures 3-4, 6-7, 9-10, 12, and 14-15. The data storage area 132 stores data necessary for the execution of various programs. The aforementioned PPD file is also included in the data stored in the data storage area 132.

[0120] The processor 110 is a data processing device, 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 an arithmetic unit.

[0121] The display unit 140 is, for example, a liquid crystal display and can display various information. The operation unit 150 is, for example, a mouse or keyboard and accepts user input. The user can input various instructions to the terminal device 100 by operating the operation unit 150.

[0122] Communication interface 190 is an interface for communicating with other devices and is connected to 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, with RAM, ROM, EEPROM, HDD, a portable recording medium such as a USB memory that can be attached to or detached from the terminal device 100, a buffer provided by the processor 110, or a combination thereof. The storage device 115 may also be a computer-readable storage medium. A computer-readable storage medium is a non-transitory medium. In addition to the examples above, non-transitory media include recording media such as CD-ROMs and DVD-ROMs. Furthermore, non-transitory media are also tangible media. The same applies to the storage device 215 of the printer 200, which will be described later.

[0124] <Printer> As shown in Figure 16, the printer 200 includes a processor 210, a storage device 215, a display unit 240, an operation unit 250, a communication interface 270, and a printing unit 290. These components—the processor 210, storage device 215, display unit 240, operation unit 250, communication interface 270, and printing unit 290—are connected to each other via a bus 205, enabling data transmission and reception.

[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, DRAM and includes an image data storage area 222 for storing image data to be printed. The non-volatile storage device 230 is, for example, NVRAM, flash memory, etc. and includes a program storage area 231 and a data storage area 232. Various programs are stored in the program storage area 231. These programs include firmware such as print processing programs. Various data for executing the above programs are stored in the data storage area 232.

[0126] The processor 210 is a device that performs data processing, such as a CPU. The processor 210 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 information. The operation unit 250 is a device that accepts user input. By operating the operation unit 250, the user can input various instructions to the printer 200. The communication interface 270 is a wired or wireless network interface for communicating with other devices and is connected to network NT.

[0128] The printing unit 290 prints images onto printing paper transported by the transport device. The printing unit 290 prints images onto printing paper based on print data transmitted from the terminal device 100, or print data it generates itself based on operations performed on the operation unit 250. [Explanation of symbols]

[0129] 1. Printing System 100 Terminal device (an example of an information processing device) 110 processors 160 CUPS (an example of printing software) 160A CUPS (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 Printers (an example of a printing device)

Claims

1. An information processing program that is executable by the arithmetic 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. When the information processing program is registered as the virtual printing device in the printing software, it directs the arithmetic unit of the information processing device to: A process for acquiring print setting range management information that acquires print setting range management information for managing the print setting range, which is the range of print settings that can be set in the aforementioned printing device, for each user, Based on the acquired print setting range management information, a setting range identification information transmission process is performed to transmit print setting range identification information to the printing software for identifying the print setting range of a specific user using the information processing device. A print data acquisition process that acquires first print data with print settings that match the print setting range corresponding to the specific user identified by the print setting range identification information from the print software, A print data output process that controls the transmission of a second print data, based on the first print data acquired in the print data acquisition process, toward the printing device, An information processing program configured to perform the following.

2. Furthermore, to the aforementioned calculation unit, A user identification process that obtains user information for identifying the user using the information processing device from the printing software of the information processing device, The information processing program according to claim 1, configured to perform the following:

3. The aforementioned information processing program further provides the arithmetic unit with the following: When the printing software receives a request for the print setting range identification information, a first authentication process is performed to identify the user corresponding to the request. A first determination process that determines whether the user identified in the first authentication process is the specific user, If the first determination process determines that the user is a specific user, a first information generation process generates the print setting range identification information based on the print setting range management information, If the first determination process determines that the user is not the specified user, a first error process is performed to execute an error process, Make it run, In the above setting range identification information transmission process, The print setting range identification information generated in the first information generation process is transmitted to the print software. An information processing program according to claim 1, configured in such a way.

4. The aforementioned information processing program further provides the arithmetic unit with the following: When the printing software receives a request for the print setting range specification information, a second authentication process is performed to identify the user corresponding to the request. A second information generation process generates print setting range identification information corresponding to the user identified in the second authentication process based on the print setting range management information, Make it run, In the above setting range identification information transmission process, The print setting range identification information generated in the second information generation process is transmitted to the print software. An information processing program according to claim 1, configured in such a way.

5. The print setting range management information obtained in the print setting range management information acquisition process further manages the print setting range in the printing device for each application. Furthermore, to the aforementioned calculation unit, An application identification process that obtains application information from the operating system of the information processing device to identify the application used by the information processing device, An error determination process determines that an error occurs 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. The information processing program according to claim 1, configured to perform the following:

6. The print setting range management information obtained in the print setting range management information acquisition process further manages the print setting range in the printing device for each application. Furthermore, to the aforementioned calculation unit, An application identification process that obtains application information from the operating system of the information processing device to identify the application used by the information processing device, If the print settings of the first print data are not within the print settings range corresponding to the application identified by the application identification process in the print setting range management information, a print setting switching process is performed to switch the print settings so that the print settings of the second print data become print settings within the print setting range corresponding to the application. The information processing program according to claim 1, configured to perform the following:

7. Furthermore, to the aforementioned calculation unit, A settings application startup process that launches a settings application for editing the aforementioned print setting range management information. Make it run, In the aforementioned process for obtaining print setting range management information, The print setting range management information edited by the setting application launched during the setting application startup process is obtained. An information processing program according to any one of claims 1 to 6, configured in such a way.

8. In the aforementioned process for obtaining print setting range management information, The print setting range management information is obtained from the data installed when the aforementioned information processing program is installed. An information processing program according to claim 1, configured in such a way.

9. In the aforementioned process for obtaining print setting range management information, The print setting range management information is obtained from data imported from outside the information processing device. An information processing program according to claim 1, configured in such a way.

10. In the aforementioned process for obtaining print setting range management information, The print setting range management information is obtained from the capability information acquired from the printing device. An information processing program according to claim 1, configured in such a way.

Citation Information

Patent Citations

  • Application program

    JP2019175313A