WO2020110992A1 - サポートプログラム、情報処理装置、および印刷方法 - Google Patents

サポートプログラム、情報処理装置、および印刷方法 Download PDF

Info

Publication number
WO2020110992A1
WO2020110992A1 PCT/JP2019/045949 JP2019045949W WO2020110992A1 WO 2020110992 A1 WO2020110992 A1 WO 2020110992A1 JP 2019045949 W JP2019045949 W JP 2019045949W WO 2020110992 A1 WO2020110992 A1 WO 2020110992A1
Authority
WO
WIPO (PCT)
Prior art keywords
printer
print
command
support program
preceding operation
Prior art date
Application number
PCT/JP2019/045949
Other languages
English (en)
French (fr)
Inventor
山田 和孝
Original Assignee
ブラザー工業株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ブラザー工業株式会社 filed Critical ブラザー工業株式会社
Priority to EP19890041.7A priority Critical patent/EP3889757A4/en
Priority to CN201980077438.0A priority patent/CN113168297A/zh
Publication of WO2020110992A1 publication Critical patent/WO2020110992A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00204Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1255Settings incompatibility, e.g. constraints, user requirements vs. device capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1206Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1228Printing driverless or using generic drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/1231Device related settings, e.g. IP address, Name, Identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1259Print job monitoring, e.g. job status
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00567Handling of original or reproduction media, e.g. cutting, separating, stacking
    • H04N1/0062Removing sheets from a stack or inputting media
    • H04N1/00623Selectively inputting media from one of a plurality of input sources, e.g. input trays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00933Timing control or synchronising
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • H04N1/00949Combining applications, e.g. to create workflows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/001Sharing resources, e.g. processing power or memory, with a connected apparatus or enhancing the capability of the still picture apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0034Details of the connection, e.g. connector, interface
    • H04N2201/0046Software interface details, e.g. interaction of operating systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0072Detecting the status of a connected apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0074Arrangements for the control of a still picture apparatus by the connected apparatus
    • H04N2201/0075Arrangements for the control of a still picture apparatus by the connected apparatus by a user operated remote control device, e.g. receiving instructions from a user via a computer terminal or mobile telephone handset
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0082Image hardcopy reproducer

Definitions

  • the technical field disclosed in the present specification relates to a support program that supports printer control, an information processing device, and a printing method.
  • a printer driver As a technique for controlling a printer from an information processing device such as a personal computer (PC), a configuration in which a printer driver is installed in the information processing device, print data is generated by the printer driver, and the print data is transmitted to the printer is widely known.
  • the printer driver is provided by the printer maker, supports various functions of the printer, and can fully use the printer.
  • printing with the OS standard print program may not be able to use all the functions of the printer.
  • the printer's own functions are not supported by the OS standard print program, and the printer's original capabilities may not be fully exerted.
  • the present specification discloses a technique in which an information processing apparatus having an OS standard print program installed therein can exert its own capabilities even when printing by the print program.
  • a support program made for the purpose of solving this problem is a support program that can be executed by a computer of an information processing apparatus, and is a support program corresponding to a printer connected to the information processing apparatus.
  • the printer When a print instruction is accepted, the printer is caused to execute a command output process for outputting a preceding operation command via the communication interface of the information processing device, and the preceding operation command starts printing to the printer.
  • the print operation is a program installed in the operating system of the information processing apparatus, and the print instruction causes the printer connected to the information processing apparatus to perform printing.
  • the feature is that it is an instruction to make.
  • the support program disclosed in this specification executes a preceding operation command for causing a printer, which is a target of the print instruction, to execute a printer-specific preceding operation when there is a print instruction through the OS standard print program. Output.
  • the printer can execute the preceding operation unique to the printer, and the capability of the printer unique to the printer can be exerted.
  • An information processing device incorporating the above program, a computer-readable storage medium storing the program, and a control method for realizing the function of the program are also new and useful.
  • FIG. 1 is a block diagram showing the electrical configuration of the printing system.
  • FIG. 2 is an explanatory diagram showing the order of processing by each program.
  • FIG. 3 is a sequence diagram showing an example of the operation of each program.
  • FIG. 4 is a flowchart showing the procedure of the printing process.
  • FIG. 5 is a flowchart showing the procedure of preprocessing.
  • FIG. 6 is a flowchart showing the procedure of post-processing.
  • This embodiment discloses a specific embodiment of a printing system including a personal computer (hereinafter referred to as “PC”) and a printer.
  • PC personal computer
  • Fig. 1 shows an example of the configuration of a printing system in which the program of this embodiment is executed.
  • the system shown in FIG. 1 includes a PC 1 and a printer 2.
  • the PC 1 is an example of an information processing device.
  • the printer 2 is a device having a printing function, and can communicate with the PC 1 via local communication or network communication.
  • the PC 1 includes, for example, as shown in FIG. 1, a controller 10, a user interface (hereinafter referred to as “UI”) 20, and a communication interface (hereinafter referred to as “communication IF”) 30.
  • the UI 20 and the communication IF 30 are electrically connected to the controller 10.
  • the UI 20 includes hardware that displays various kinds of information and receives user's instruction input.
  • the UI 20 may be a touch panel having both a display function and an input reception function, or may be a combination of a display having a display function and a keyboard or mouse having the input reception function.
  • the communication IF 30 includes hardware for communicating with the printer 2 and hardware for accessing the Internet.
  • the communication IF 30 may include a plurality of interfaces having different communication methods. Examples of communication methods include network communication and USB communication.
  • the controller 10 includes a CPU 11 and a memory 12.
  • the CPU 11 is an example of a computer.
  • the memory 12 includes a ROM, a RAM, and a non-volatile memory, and stores programs such as various application programs (hereinafter referred to as “apps”) and various data. In this specification, details of the memory are not distinguished.
  • the CPU 11 executes various processes according to the program read from the memory 12 and based on a user's instruction. Note that the controller 10 in FIG. 1 is a collective term for hardware and software used for controlling the PC 1, and does not necessarily represent a single hardware that actually exists in the PC 1.
  • An example of the memory 12 may be a computer-readable storage medium.
  • a computer-readable storage medium is a non-transmission medium.
  • the non-transmission medium also includes a recording medium such as a CD-ROM and a DVD-ROM.
  • the non-transmission medium is also a tangible medium.
  • an electric signal that carries a program downloaded from a server or the like on the Internet is a computer-readable signal medium that is a kind of computer-readable medium, but a non-transitory computer-readable storage medium. Not included in the media.
  • the memory 12 stores an operating system (hereinafter referred to as “OS”) 21 including a general-purpose printing program 41, an auxiliary program 42, and an editing application 43.
  • the auxiliary program 42 is an example of a support program.
  • the auxiliary program 42 is, for example, a hardware support application (abbreviation: HSA) published by Microsoft Corporation.
  • the OS 21 is, for example, Microsoft Windows (registered trademark), MacOS (registered trademark), or Linux (registered trademark).
  • the memory 12 stores various data including information of connected devices and various programs such as a browser.
  • the following processing and each processing step in the flowchart basically indicate processing of the CPU 11 according to an instruction described in a program such as the auxiliary program 42. That is, the processes such as “determination”, “extraction”, “selection”, “calculation”, “decision”, “specification”, “acquisition”, “reception”, and “control” in the following description are performed by the CPU 11. It represents.
  • the processing by the CPU 11 also includes hardware control using the API of the OS 21.
  • the operation of each program will be described by omitting the detailed description of the OS 21. That is, in the following description, the description that "the program B controls the hardware C” may mean that "the program B controls the hardware C using the API of the OS 21".
  • processing of the CPU 11 according to the instruction described in the program may be described in abbreviated wording.
  • a program may be abbreviated and described as "to be executed by the CPU 11".
  • processing of the CPU 11 according to the instruction described in the program may be described in a word in which the CPU is omitted, such as “the program A performs”.
  • “acquisition” is used with the concept that the request is not mandatory. That is, the process of receiving data without request from the CPU 11 is also included in the concept of “the CPU 11 acquires data”.
  • “data” in this specification is represented by a computer-readable bit string. Data having substantially the same meaning and different formats are treated as the same data. The same applies to "information" in this specification.
  • “request” and “instruct” are concepts indicating that information indicating a request and information indicating an instruction are output to the other party. Further, the information indicating that the request is made and the information indicating that the instruction is made are also simply referred to as “request” and “instruction”.
  • the processing for determining whether or not the information A indicates the matter B by the CPU 11 should be described conceptually as “determine whether or not the information B is the matter B from the information A”. There is.
  • the CPU 11 executes a process of determining whether the information A indicates the matter B or the matter C, "from information A, determines whether the matter B is the matter B or the matter C.” It may be described conceptually as ".
  • the general-purpose print program 41 is an application for executing printing from the PC 1 to various printers such as the printer 2, and is a standard OS print program pre-installed in the OS 21.
  • the general-purpose print program 41 of the present embodiment is a program that generates print data compatible with a printer based on image data to be printed.
  • the general-purpose print program 41 is an example of a print program.
  • the general-purpose printing program 41 is a general-purpose application that can be applied to printers of multiple types of models provided by each device vendor, and is a program that causes each printer to perform operations common to each model.
  • the general-purpose printing program 41 may be a program provided by the vendor of each device to the vendor of the OS 21 in order to be incorporated in the OS 21 in advance, for example, a kind of printer driver provided to be incorporated in the OS 21 in advance.
  • the program developed by the vendor of each device after providing the general-purpose printing program 41 to be incorporated in the OS 21 to the vendor of the OS 21 can be added to the PC 1 by installing it.
  • the printer driver that can be added by installation instead of the program pre-installed in the OS 21 is simply referred to as “printer driver” or “vendor driver”. That is, the printer driver is not a program installed in the OS 21 in advance, but a program that needs to be installed in the OS 21 according to a predetermined procedure in order to be used. For example, the installer instructed via the UI 20 or the OS 21 installs the printer driver in the OS 21.
  • the printer driver is a program prepared by the printer vendor for each model of the printer individually, and may be a program that can accept an instruction of a function unique to the corresponding model.
  • the printer driver may have higher performance than the general-purpose print program 41 pre-installed in the OS 21.
  • High performance means, for example, that the print data generated by the printer driver can be processed more efficiently by the printer and the print speed is faster than the print data generated by the general-purpose print program 41. is there. Further, high performance may mean that the printer can process print data with less memory. Further, one example of high performance may be that the print data generated by the printer driver can cause the printer to print a printed matter with better color development. In addition, as an example of high performance, the print data generated by the printer driver may cause the printer to print a higher resolution print.
  • one example of high performance may be that the printer driver can instruct the printer of a function specific to the printer driver that cannot be instructed to the printer by the general-purpose print program 41.
  • the unique functions are, for example, a mirror printing function and a negative/positive reverse printing function.
  • the auxiliary program 42 is a program that executes processing based on an instruction from the OS 21 in association with the activation of the general-purpose printing program 41, and is an application that supports control of the target hardware.
  • the auxiliary program 42 is activated by the OS 21, for example.
  • the auxiliary program 42 is an application corresponding to each model of the printer 2 and the like.
  • the auxiliary program 42 is prepared by the vendor of the device such as the printer 2.
  • the device vendor registers the auxiliary program 42 in the platform provided by the OS21 vendor according to the procedure specified by the OS21 vendor.
  • the OS 21 downloads the auxiliary program 42 from the server in which the auxiliary program 42 is stored. Installed in PC1. :
  • the OS 21 stores the identification information of the incorporated auxiliary program 42 in the memory 12 in association with the printer information of the newly connected printer 2.
  • Each of the auxiliary programs corresponding to each model is incorporated in the PC 1 to which the printers of a plurality of models are connected, and the memory 12 stores information associating each printer with each auxiliary program. That is, the memory 12 stores, as printer information of each printer connected to the PC 1, model information and access information of the printer, and information of the corresponding auxiliary program 42.
  • the editing application 43 is, for example, an application for creating and editing image data and document data.
  • the editing application 43 is, for example, Microsoft Word (registered trademark) or PowerPoint (registered trademark).
  • the editing application 43 receives a user operation including an instruction to cause the printer 2 to perform a predetermined operation.
  • the editing application 43 receives a print instruction for causing the printer 2 to execute printing via the UI 20.
  • the PC 1 accepts, via the UI 20, for example, an instruction to specify image data to be printed and an instruction to execute printing in the printer 2 via the general-purpose printing program 41, in the editing application 43. The case will be described.
  • the editing application 43 that has received the print instruction passes a print execution notification to the OS 21 based on the received print instruction.
  • the print execution notification includes, for example, information indicating the printer designated by the print instruction, print parameters, and information indicating the image data designated by the print instruction.
  • the OS 21 executes the auxiliary program 42 before starting the print data generation by the general-purpose print program 41. It instructs the auxiliary program 42 to execute the processing by the program 42.
  • the auxiliary program 42 includes pre-processing executed before the processing by the general-purpose printing program 41 starts and post-processing executed after the processing by the general-purpose printing program 41 ends and before the print data is transmitted to the printer 2. And are included.
  • the processing executed before the processing by the general-purpose printing program 41 is described as the processing by the “preprocessing auxiliary program” 421, and executed after the processing by the general-purpose printing program 41 is completed.
  • the processing to be performed will be described as processing by the “post-processing auxiliary program” 422.
  • the processing of the preprocessing assistance program 421 is executed before the generation of print data by the general-purpose print program 41 is started in response to the reception of the print instruction.
  • the preprocessing auxiliary program 421 can acquire various information included in the print instruction, for example, print parameters and printer information from the OS 21.
  • the preprocessing auxiliary program 421 executes preprocessing based on the acquired information and its own program, and returns an end notification to the OS 21 after the end of the processing. Details of the preprocessing by the preprocessing auxiliary program 421 will be described later.
  • the OS 21 Upon receiving the end notification from the preprocessing assistance program 421, the OS 21 executes the processing by the general-purpose printing program 41.
  • the general-purpose print program 41 generates print data from the image data based on the information included in the print execution notification.
  • the OS 21 instructs the post-processing auxiliary program 422 to execute the post-processing before transmitting the generated print data to the printer 2.
  • the post-processing auxiliary program 422 acquires, from the OS 21, print data that has been generated, in addition to print parameters and printer information.
  • the post-processing auxiliary program 422 executes post-processing based on the acquired information and its own program, and returns an end notification to the OS 21 after the end of the processing. Details of the post-processing by the post-processing auxiliary program 422 will be described later.
  • the OS 21 Upon receiving the end notification from the post-processing auxiliary program 422, the OS 21 sends the print parameters and print data to the printer 2 via the communication IF 30.
  • the print parameters may be changed in the pre-processing auxiliary program 421 or the post-processing auxiliary program 422 from the setting in the editing application 43.
  • the printer 2 executes printing based on the received print parameters and print data.
  • the editing application 43 accepts designation of image data to be printed and input of a print execution instruction via the UI 20 (arrow A). Then, the editing application 43 passes a print execution notification indicating the content of the received instruction to the OS 21 (arrow B).
  • the OS 21 detects the print execution notification output from the editing application 43, the OS 21 identifies the printer designated as the device that executes the printing based on the information included in the print execution notification. For example, when the print execution notification specifies that the printer 2 is to print using the general-purpose print program 41, if the auxiliary program 42 corresponding to the printer 2 is installed in the PC 1, the OS 21 determines that the auxiliary program 42 The execution instruction of the processing of 42 is output. The OS 21 outputs an execution command to the auxiliary program 42 upon the detection of the print execution notification.
  • the output of the execution instruction by the OS 21 is an example of a detection notification notifying that the print instruction has been detected.
  • the auxiliary program 42 executes the processing of the pre-processing auxiliary program 421 or the post-processing auxiliary program 422 when the execution command corresponding to itself is output from the OS 21.
  • the OS 21 outputs an execution command to the auxiliary program 42 to start the processing of the preprocessing auxiliary program 421 before the generation of print data by the general-purpose print program 41 (arrow C).
  • the preprocessing auxiliary program 421 of the present embodiment determines whether or not to cause the printer 2 to perform the preceding operation based on the information and the print parameter of the printer 2 acquired from the OS 21 (arrow D).
  • the preceding operation is an operation for making the printer 2 prepare for printing before transmitting the print data.
  • the printer 2 executes the preceding operation. Then, by the printer 2 performing the preceding operation, the waiting time from when the user inputs the print instruction to when the printing of the first sheet is completed can be shortened.
  • the PC 1 issues, as a preceding operation, a command for instructing, for example, an operation of removing the drying prevention cap of the print head and moving the print head to the print start position (that is, uncapping). Command) to the printer 2.
  • the printer 2 is an electrophotographic printer
  • the PC 1 sends a command to the printer 2 to start preheating of the fixing device or start various motors as a preceding operation.
  • the PC 1 issues a command as a preceding operation, for example, an operation of pulling out a sheet for printing from the paper feed tray and transporting it to a predetermined standby position based on the print parameters. It may be transmitted to the printer 2.
  • the preprocessing auxiliary program 421 determines to cause the printer 2 to perform the preceding operation, it uses the IP address of the printer 2 acquired from the OS 21 to issue the preceding operation command, which is a command for instructing the execution of the preceding operation, to the printer 2. Send (arrow E). As a result, the printer 2 executes the instructed preceding operation (arrow F). After sending the preceding operation command, the preprocessing auxiliary program 421 notifies the OS 21 of the end of processing (arrow G).
  • the OS 21 uses the general-purpose print program 41 to generate print data in response to the receipt of the end notification from the preprocessing auxiliary program 421 (arrow H).
  • the print data generated by the general-purpose print program 41 is general-purpose print data, and is print data that can be used for printing by various printers 2.
  • the OS 21 After the generation of the print data by the general-purpose print program 41 is completed, the OS 21 outputs the execution command of the processing of the auxiliary program 42 again (arrow I). As a result, the auxiliary program 42 starts the processing of the post-processing auxiliary program 422. At this point, the print data has already been generated, and the OS 21 sends the print data to the printer 2 so that the printer 2 can start printing. After finishing the post-processing, the post-processing auxiliary program 422 notifies the OS 21 of the end of the processing (arrow J). The OS 21 transmits the print data to the printer 2 (arrow K) in response to receiving the end notification from the post-processing auxiliary program 422, and the printer 2 executes printing (arrow L).
  • the editing application 43 receives an input of a printing instruction, which is an instruction to cause the printer 2 to perform printing using the general-purpose printing program 41 (arrow A in FIG. 3 ), and the OS 21 notifies the printing execution from the editing application 43. Is received (arrow B in FIG. 3), and is executed by the CPU 11 of the PC 1 according to the OS 21.
  • a procedure when the OS 21 does not support the cancel instruction will be described.
  • the OS 21 first determines whether or not the auxiliary program 42 is installed in the memory 12 (S101). As described above, the auxiliary program 42 corresponding to each printer is prepared by the device vendor, and is incorporated into the PC 1 by the OS 21 when the OS 21 detects the printer. When it is determined that the auxiliary program 42 is not installed in the PC 1 (S101: NO), such as when the auxiliary program 42 corresponding to the printer 2 is not prepared (S101: NO), the OS 21 uses the general-purpose print program 41 included in the OS 21. To generate print data (S102).
  • the OS 21 sends the print data generated in S102 to the printer 2 (S103) and ends the print processing.
  • the printer 2 executes printing according to the print data received from the PC 1. Note that the PC 1 may execute a predetermined error process when transmission of print data fails.
  • auxiliary program 42 If the auxiliary program 42 is not installed in the PC 1, print data is generated by the general-purpose print program 41. Therefore, the user can use various printers 2 with the same usability as when using the auxiliary program 42, without being aware of the setup of the printer 2. However, in the printing using the general-purpose printing program 41, it may take a longer time to print or the quality of the printed matter may be lower than that in printing by a high-performance printer driver (that is, a vendor driver).
  • a high-performance printer driver that is, a vendor driver
  • the OS 21 When it is determined that the auxiliary program 42 is incorporated in the PC 1 (S101: YES), the OS 21 outputs an execution command to the auxiliary program 42 corresponding to the printer 2 to start the processing of the preprocessing auxiliary program 421 ( S105, arrow C in FIG. 3). As a result, the CPU 11 executes the preprocessing according to the preprocessing auxiliary program 421.
  • the OS 21 may input information indicating the preprocessing auxiliary program 421 into the auxiliary program 42.
  • the OS 21 may store information indicating the preprocessing auxiliary program 421 in the memory 12, output an execution instruction to the auxiliary program 42, and the auxiliary program 42 may read the information.
  • the OS 21 may output an execution instruction designating the processing of the preprocessing auxiliary program 421.
  • the auxiliary program 42 acquires the printer information of the printer 2 designated as the device that executes printing, based on the print parameters designated by the print instruction (S201).
  • S201 is an example of an acquisition process.
  • the preprocessing auxiliary program 421 can acquire the printer information of the printer 2 associated with itself and various information set by the print instruction from the OS 21.
  • the auxiliary program 42 acquires the model information of the printer 2 and the access information such as the IP address by inquiring of the OS 21 or by referring to the storage location where the OS 21 stores the information.
  • the auxiliary program 42 communicates with the printer 2 using the acquired IP address and acquires the status information of the printer 2 (S202).
  • S202 is an example of a first state acquisition process.
  • the status information of the printer 2 is, for example, standby, printing, printing preparation, or error.
  • “Waiting” indicates that the printer 2 is waiting for print data to be received.
  • "Preparing for printing” indicates that the printer 2 is in the preparation operation for executing printing. During printing, the printer 2 has received print data and is in the process of printing. If the status information is printing or preparing to print, the printing preparation operation is being executed or completed, and it is not necessary to send the preceding operation command to the printer 2 again. The error indicates that the printer 2 is in a state where printing cannot be executed, for example, when the ink is out or the cover is open. Further, when the communication between the auxiliary program 42 and the printer 2 is impossible, or the power of the printer 2 is not turned on, the auxiliary program 42 cannot acquire the status information from the printer 2.
  • the state information of the printer 2 may be obtained from a status monitor such as the OS 21 instead of being obtained directly from the printer 2.
  • the auxiliary program 42 determines whether or not the status of the printer 2 is waiting (S203, arrow D in FIG. 3). If it is determined that the printer 2 is on standby (S203: YES), the auxiliary program 42 generates a preceding movement command for instructing the printer 2 to perform the preceding movement. Therefore, the auxiliary program 42 acquires the preparation command for each model of the printer 2 (S204).
  • the preparation command is a predetermined command such as an uncap command for an inkjet printer, regardless of print parameters.
  • the auxiliary program 42 stores the preparation command in association with the model name.
  • the auxiliary program 42 acquires print parameters based on the information included in the print execution notification (S205).
  • the auxiliary program 42 of the present embodiment acquires, in particular, the information about the paper size and the information about the setting of the paper feed tray. Then, the auxiliary program 42 determines the paper feed tray to be used as the paper feed source based on the print parameters (S206).
  • the auxiliary program 42 acquires information about the paper feed tray of the printer 2 by communicating with the printer 2, for example. Alternatively, if the information on the paper feed tray of the printer 2 is stored in the memory 12 in advance, the auxiliary program 42 reads the information on the paper feed tray from the memory 12. Then, when the paper feed tray is designated in the print parameter, the auxiliary program 42 determines the designated paper feed tray as the paper feed tray to be used as the paper feed source. Further, for example, when the paper feed tray is set automatically, the auxiliary program 42 determines the paper feed tray set as default as the paper feed tray of the paper feed source.
  • the auxiliary program 42 is based on the paper size information of the print parameter.
  • the paper feed tray used as the paper feed source may be determined.
  • the auxiliary program 42 generates a paper feed command for instructing the operation of starting paper feed from the decided paper feed tray (S207). Further, the auxiliary program 42 synthesizes the preparation command acquired in S204 and the paper feed command generated in S207 to generate a preceding operation command (S208). Furthermore, the auxiliary program 42 uses the IP address acquired in S201 and transmits the generated preceding operation command to the printer 2 (S209, arrow E in FIG. 3). S209 is an example of a command output process. Further, the auxiliary program 42 adds information indicating that the preceding operation command has been transmitted to the print parameter (S210).
  • the auxiliary program 42 After S210, or when it is determined that the printer 2 is not in the standby state (S203: NO), the auxiliary program 42 notifies the end of the preprocessing (S211 and arrow G in FIG. 3) and executes the preprocessing. finish.
  • the end notification is passed from the preprocessing auxiliary program 421 to the OS 21.
  • the OS 21 determines whether or not an end notification has been received from the preprocessing auxiliary program 421 (S107). When the preprocessing ends, the OS 21 receives the end notification from the preprocessing auxiliary program 421. When it is determined that the end notification has not been received (S107: NO), the OS 21 waits until it receives it.
  • the OS 21 uses the general-purpose print program 41 included in the OS 21 to generate print data (S108, arrow H in FIG. 3). S108 is the same process as S102. Then, after generating the print data and before transmitting the generated print data to the printer 2, the OS 21 outputs an execution command to the auxiliary program 42 corresponding to the printer 2 to start the processing of the post-processing auxiliary program 422 ( S109, arrow I in FIG. 3). As a result, the CPU 11 executes post-processing according to the post-processing auxiliary program 422.
  • the auxiliary program 42 determines whether or not there is a predetermined waiting time before starting the transmission of the print data to the printer 2, such as a data check on the print data generated by the general-purpose print program 41 (S301). ).
  • the printer 2 starts the printing operation immediately after receiving the print data.
  • the PC 1 can cause the printer 2 to start the printing operation by transmitting the generated print data to the printer 2. That is, when the print data can be immediately sent from the PC 1 to the printer 2, it is better to send the print data than to send again the preceding operation command for causing the printer 2 to perform the preparatory operation.
  • the preceding operation command may be sent as necessary even in the post-processing.
  • the auxiliary program 42 refers to the print parameters (S302). Then, the auxiliary program 42 determines whether or not the print parameter includes information indicating that the preceding operation command has been transmitted (S303). This information is added to the print parameters in S209 when the preceding operation command is transmitted in the preprocessing.
  • the auxiliary program 42 acquires the status of the printer 2 (S304).
  • S304 is the same process as S202 of the preprocess.
  • S304 is an example of the second state acquisition process.
  • the auxiliary program 42 determines whether or not the status of the printer 2 is waiting (S305). If the printer 2 receives the preceding operation command transmitted in the preprocessing and starts the operation based on the preceding operation command received by the printer 2, the state of the printer 2 is not in the stand-by state and is in the preparation for printing. Should be there. If the printer 2 is in the standby state, it means that the printer 2 has not received the transmitted preceding operation command or that the printer 2 has not started the operation based on the preceding operation command.
  • the auxiliary program 42 When it is determined that the printer 2 is in the standby state (S305: YES), the auxiliary program 42 generates a preceding operation command (S306).
  • S306 is the same process as S208 of the preprocessing, and if the preceding operation command generated in S208 is stored in the memory 12, the auxiliary program 42 may read the stored command in S306. Then, the auxiliary program 42 transmits the generated preceding operation command to the printer 2 (S307).
  • S307 is an example of the retry process. That is, the auxiliary program 42 re-outputs the same preceding operation command as the preprocessing.
  • the auxiliary program 42 After S307, or when it is determined that there is no predetermined waiting time (S301: NO), or when it is determined that the print parameter does not include information indicating that the preceding operation command has been transmitted (S303). : NO), or if it is determined that the printer 2 is not in the standby state (S305: NO), the auxiliary program 42 notifies the end of the post-processing (S308, arrow J in FIG. 3), and performs the post-processing. finish. The end notification is passed from the post-processing auxiliary program 422 to the OS 21.
  • the OS 21 determines whether or not an end notification has been received from the post-processing auxiliary program 422 (S111). When the post-processing ends, the OS 21 receives an end notification from the post-processing auxiliary program 422. When it is determined that the end notification has not been received (S111: NO), the OS 21 waits until it receives it.
  • the OS 21 sends the print data to the printer 2 (S103, arrow K in FIG. 3) and ends the print processing.
  • the printer 2 executes printing according to the print data received from the PC 1 (arrow L in FIG. 3).
  • the printer which is the target of the print instruction by the auxiliary program 42 The preceding operation command for causing the printer 2 to execute the preceding operation unique to the printer is output.
  • the printer 2 can execute the preceding operation unique to the printer, and the capability unique to the printer can be exerted.
  • the auxiliary program 42 of the present embodiment can be read from the OS 21 when a print instruction is given, specify a printer as an output destination, and further acquire print parameters. Since the auxiliary program 42 outputs the preceding operation command in the processing of the preprocessing auxiliary program 421, the preceding operation command is output before the OS 21 completes the generation of print data, particularly before starting the generation of print data. Can be output. Therefore, the printer can start the preceding operation earlier, and the effect of the function unique to the printer is enhanced.
  • the auxiliary program 42 acquires the status information of the printer 2 before outputting the preceding operation command, and transmits the preceding operation command when the status of the printer 2 is printing or preparing for printing. do not do. If the state of the printer 2 is printing or preparing for printing, it is not necessary to execute the preceding operation. When the execution of the preceding operation is unnecessary, the preceding operation command is not output, so that useless processing can be avoided.
  • the preceding operation command has not reached the printer 2 even if the auxiliary program 42 transmits the preceding operation command in the preprocessing.
  • the printer status is checked and the output of the preceding operation command is retried even in the post-processing, it is easier to exert the capability of the printer.
  • the printer can start the preceding operation earlier, and the effect of the function unique to the printer is enhanced.
  • the auxiliary program 42 of the present embodiment can acquire the print parameters before the start of print data generation. Therefore, the convenience of the auxiliary program 42 is improved by acquiring the print parameter and transmitting the preceding operation command corresponding to the print parameter.
  • the auxiliary program 42 can cause the printer 2 to start an appropriate paper feed operation by transmitting different paper feed commands for each paper feed tray, and can accelerate the start of printing.
  • the device connected to the PC 1 is not limited to the printer, but may be any device having a printing function such as a multifunction peripheral, a copying machine, and a FAX device.
  • the number of printers connected to the PC 1 is not limited to one, and a plurality of printers may be connected.
  • the auxiliary program 42 has both pre-processing and post-processing, but it may have only one of them.
  • the auxiliary program 42 may include only the configuration of the pre-processing auxiliary program 421 that is started before generating print data.
  • the pre-processing auxiliary program 421 and the post-processing auxiliary program 422 may be different programs.
  • post-processing need not be executed. That is, the OS 21 does not have to output the execution command to the auxiliary program 42 after generating the print data.
  • the auxiliary program 42 synthesizes the preparation command and the paper feed command as the preceding operation command and transmits them as one command, but they may be transmitted as separate commands. Further, the auxiliary program 42 may send only one of the commands.
  • the auxiliary program 42 does not send the preceding operation command unless the printer 2 is in the standby state, but it may send it. Further, it is not necessary to confirm the status of the printer 2. For example, the pre-processing S202 and S203 may not be executed, and the process may proceed to S204 after S201. Further, in the post-processing, the preceding operation command is not transmitted unless the preceding operation command is transmitted in the pre-processing, but it may be transmitted.
  • the preceding operation command is generated and transmitted from the preparation command and the like, but the print parameter may be transmitted as the preceding operation command.
  • the auxiliary program 42 may transmit the print parameters acquired in S205 in S209 without executing S206 to S208 of the preprocessing.
  • the configuration may be such that the printer 2 executes the preceding operation if it is in the standby state when receiving the print parameter, and does not execute the preceding operation if it is not in the standby state.
  • the printer 2 receives print data together with the print parameter or within a predetermined time after the print parameter is received, printing is executed, and even if the predetermined time is exceeded after the print parameter is received.
  • the printer 2 When the print data is not received, only the preceding operation may be executed. Further, in this case, the printer 2 that has received the print parameter may perform a preceding operation corresponding to the print parameter. For example, the printer 2 may execute the preparation operation for color printing if the print parameter includes the setting for color printing, and may execute the preparation operation for only black if it is the setting for monochrome printing. For example, when the printer 2 is a laser printer, a calibration process for suppressing color misregistration may be performed as a preparatory operation for color printing. When the printer 2 has a finisher and the print parameter includes processing by the finisher, the printer 2 may perform the finisher preparation operation when the print parameter is received.
  • the auxiliary program 42 may have another role. If the auxiliary program 42 is the auxiliary program 42 having another role, for example, processing of another role may be performed before S211 of the preprocessing or before S308 of the postprocessing. For example, if the auxiliary program 42 has the role of customizing the printing mode, the printer 2 or the OS 21 may be notified of the information for customization before step S211. Further, if the auxiliary program 42 is an auxiliary program 42 having a print data processing process, the print data generated by the general-purpose print program 41 may be processed before S308. Further, the auxiliary program 42 may further perform an operation that recommends printing using a printer driver, for example, displaying a message, downloading an installer, switching to a default printer, and the like.
  • a printer driver for example, displaying a message, downloading an installer, switching to a default printer, and the like.
  • the module that executes the pre-processing and the post-processing is not limited to the auxiliary program 42, and may be a program that receives an instruction from the OS 21 when printing is performed by the general-purpose printing program 41 of the OS 21.
  • it may be a print workflow application (Printworkflow) published by Microsoft.
  • the auxiliary program 42 is activated by the execution instruction of the auxiliary program 42 being output from the OS 21, but the activation timing of the auxiliary program 42 is not limited to this.
  • the auxiliary program 42 may be an always-started auxiliary program. In that case, the auxiliary program 42 may receive the execution instruction and perform the above-described operation.
  • the plurality of processes in any plurality of steps can be arbitrarily changed in execution order or executed in parallel as long as the contents of the process are not inconsistent.
  • the processing disclosed in the embodiments may be executed by a single CPU, a plurality of CPUs, hardware such as ASIC, or a combination thereof. Further, the processing disclosed in the embodiments can be realized in various aspects such as a recording medium recording a program for executing the processing or a method.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)

Abstract

PC1のCPU11によって実行可能であり、PC1と接続するプリンタ2に対応する補助プログラム42であって、補助プログラム42は、PC1に、PC1のOS21にあらかじめ組み込まれた汎用印刷プログラム41を介してプリンタ2に印刷を行わせる印刷指示があった場合に、PC1の通信IF30を介して、プリンタ2に対して、印刷を開始する前の先行動作を実行させる先行動作コマンドを出力させる。そして、プリンタ2は、先行動作コマンドに対応する先行動作を行う。

Description

サポートプログラム、情報処理装置、および印刷方法
 本明細書に開示される技術分野は、プリンタの制御をサポートするサポートプログラム、情報処理装置、および印刷方法に関する。
 パーソナルコンピュータ(PC)等の情報処理装置からプリンタを制御する技術として、情報処理装置にプリンタドライバをインストールし、プリンタドライバによって印刷データを生成し、その印刷データをプリンタに送信する構成が広く知られている(例えば、特開2017-134718号公報)。プリンタドライバは、プリンタメーカから提供され、そのプリンタが有する各種の機能に対応しており、そのプリンタを十分に利用することができる。
 近年、前述したプリンタドライバを利用せず、オペレーティングシステム(OS)に標準に組み込まれている印刷プログラムによってプリンタを制御する技術が実用化されている。この技術では、OSがプリンタを検知すると、検知されたプリンタをOS標準の印刷プログラムと関連付ける。以後、そのプリンタに対する印刷指示を受け付けた場合に、プリンタドライバを用いずに、OS標準の印刷プログラムによる印刷が可能になる。
 しかしながら、OS標準の印刷プログラムによる印刷では、プリンタが有する機能を全て利用できるとは限らない。例えば、プリンタが独自に有する機能についてはOS標準の印刷プログラムでサポートされておらず、プリンタが本来有する能力を十分に発揮できていない場合がある。
 本明細書は、OS標準の印刷プログラムが組み込まれた情報処理装置において、その印刷プログラムによる印刷であっても、プリンタ独自に有する能力を発揮させる技術を開示する。
 この課題の解決を目的としてなされたサポートプログラムは、情報処理装置のコンピュータによって実行可能であり、前記情報処理装置と接続するプリンタに対応するサポートプログラムであって、前記コンピュータに、印刷プログラムを介して印刷指示を受け付けた場合に、前記情報処理装置の通信インタフェースを介して、前記プリンタに対して、先行動作コマンドを出力するコマンド出力処理を実行させ、前記先行動作コマンドは、前記プリンタに印刷を開始する前の先行動作を前記プリンタに実行させ、前記印刷プログラムは、前記情報処理装置のオペレーティングシステムに組み込まれたプログラムであり、前記印刷指示は、前記情報処理装置に接続されたプリンタに印刷を実行させる指示である、ことを特徴としている。
 本明細書に開示されるサポートプログラムは、OS標準の印刷プログラムを介する印刷指示があった場合に、その印刷指示の対象となったプリンタに対してプリンタ独自の先行動作を実行させる先行動作コマンドを出力する。これにより、情報処理装置がOS標準の印刷プログラムを介する印刷指示を受け付けた場合でも、プリンタがプリンタ独自の先行動作を実行することができ、プリンタ独自に有する能力を発揮させることができる。
 上記プログラムが組み込まれた情報処理装置、プログラムを格納するコンピュータにて読取可能な記憶媒体、及びプログラムの機能を実現するための制御方法も、新規で有用である。
 本明細書に開示される技術によれば、OS標準の印刷プログラムが組み込まれた情報処理装置において、その印刷プログラムによる印刷であっても、プリンタ独自に有する能力を発揮させる技術が実現される。
図1は、印刷システムの電気的構成を示すブロック図である。 図2は、各プログラムによる処理の順序を示す説明図である。 図3は、各プログラムの動作の例を示すシーケンス図である。 図4は、印刷処理の手順を示すフローチャートである。 図5は、前処理の手順を示すフローチャートである。 図6は、後処理の手順を示すフローチャートである。
 以下、実施の形態のプログラムを利用する印刷システムについて、添付図面を参照しつつ詳細に説明する。本形態は、パーソナルコンピュータ(以下、「PC」とする)とプリンタとを含む印刷システムの具体的な実施の形態を開示するものである。
 本形態のプログラムが実行される印刷システムの構成の例を、図1に示す。図1に示すシステムには、PC1と、プリンタ2と、が含まれる。PC1は、情報処理装置の一例である。プリンタ2は、印刷機能を有する装置であり、ローカル通信またはネットワーク通信を介して、PC1と通信可能である。
 PC1は、例えば、図1に示すように、コントローラ10と、ユーザインタフェース(以下、「UI」とする)20と、通信インタフェース(以下、「通信IF」とする)30と、を備えている。UI20及び通信IF30は、コントローラ10に電気的に接続されている。
 UI20は、各種情報の表示を行い、ユーザの指示入力を受け付けるハードウェアを含む。UI20は、表示機能と入力受付機能との両方の機能を有するタッチパネルであっても良いし、表示機能を有するディスプレイと入力受付機能を有するキーボードやマウス等との組合せであっても良い。
 通信IF30は、プリンタ2との通信を行うためのハードウェアや、インターネットへのアクセスを行うためのハードウェアを含む。通信IF30は、通信方式の異なる複数のインタフェースを含んでいても良い。通信方式としては、例えば、ネットワーク通信、USB通信がある。
 コントローラ10は、CPU11と、メモリ12と、を含む。CPU11は、コンピュータの一例である。メモリ12は、ROMと、RAMと、不揮発性メモリと、を含み、各種のアプリケーションプログラム(以下、「アプリ」とする)などのプログラムや各種のデータなどを記憶する。なお、本明細書では、メモリの詳細を区別しない。CPU11は、メモリ12から読み出したプログラムに従って、また、ユーザの指示に基づいて、各種の処理を実行する。なお、図1中のコントローラ10は、PC1の制御に利用されるハードウェアやソフトウェアを纏めた総称であって、実際にPC1に存在する単一のハードウェアを表すとは限らない。
 メモリ12の一例は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non-transitoryな媒体である。non-transitoryな媒体には、上記の例の他に、CD-ROM、DVD-ROM等の記録媒体も含まれる。また、non-transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non-transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。
 メモリ12には、例えば、図1に示すように、汎用印刷プログラム41を含むオペレーティングシステム(以下、「OS」とする)21と、補助プログラム42と、編集アプリ43と、が記憶されている。補助プログラム42は、サポートプログラムの一例である。補助プログラム42は、例えば、マイクロソフト社が仕様公開した、ハードウェアサポートアプリ(略称、HSA)である。OS21は、例えば、マイクロソフトウィンドウズ(登録商標)、MacOS(登録商標)、Linux(登録商標)である。なお、メモリ12には、図示したもの以外にも、接続されているデバイスの情報を含む各種のデータや、ブラウザ等の各種のプログラムが記憶されている。
 なお、以下の処理およびフローチャートの各処理ステップは、基本的に、補助プログラム42などのプログラムに記述された命令に従ったCPU11の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」等の処理は、CPU11の処理を表している。CPU11による処理は、OS21のAPIを用いたハードウェア制御も含む。本明細書では、OS21の詳細な記載を省略して各プログラムの動作を説明する。すなわち、以下の説明において、「プログラムBがハードウェアCを制御する」という趣旨の記載は、「プログラムBがOS21のAPIを用いてハードウェアCを制御する」ことを指してもよい。また、プログラムに記述された命令に従ったCPU11の処理を、省略した文言で記載することがある。例えば、「CPU11が行う」のようにプログラムを省略して記載することがある。また、プログラムに記述された命令に従ったCPU11の処理を、「プログラムAが行う」のようにCPUを省略した文言で記載することがある。
 なお、「取得」は要求を必須とはしない概念で用いる。すなわち、CPU11が要求することなくデータを受信するという処理も、「CPU11がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「要求する」、「指示する」とは、要求していることを示す情報や、指示していることを示す情報を相手に出力することを示す概念である。また、要求していることを示す情報や指示していることを示す情報のことを、単に、「要求」、「指示」とも記載する。
 また、CPU11による、情報Aは事柄Bであることを示しているか否かを判断する処理を、「情報Aから、事柄Bであるか否かを判断する」のように概念的に記載することがある。CPU11による、情報Aが事柄Bであることを示しているか、事柄Cであることを示しているか、を判断する処理を、「情報Aから、事柄Bであるか事柄Cであるかを判断する」のように概念的に記載することがある。
 汎用印刷プログラム41は、PC1からプリンタ2等の各種のプリンタで印刷を実行させるためのアプリであり、OS21にあらかじめ組み込まれているOS標準の印刷プログラムである。本形態の汎用印刷プログラム41は、印刷対象の画像データに基づいて、プリンタが対応可能な印刷データを生成するプログラムである。汎用印刷プログラム41は、印刷プログラムの一例である。
 汎用印刷プログラム41は、各デバイスのベンダによって提供される複数種類のモデルのプリンタに適用可能な汎用のアプリであり、各モデルに共通する動作を各プリンタに行わせるプログラムである。あるいは、汎用印刷プログラム41は、OS21にあらかじめ組み込むために、各デバイスのベンダによってOS21のベンダに提供されるプログラム、例えば、OS21にあらかじめ組み込むために提供されるプリンタドライバの一種であっても良い。
 一方、OS21に組み込むための汎用印刷プログラム41をOS21のベンダに提供した後に各デバイスのベンダが開発したプログラムは、インストールするという形でPC1に追加することができる。以下では、OS21にあらかじめ組み込まれたプログラムではなく、インストールによって追加できるプリンタドライバを、単に「プリンタドライバ」とする、あるいは、「ベンダドライバ」とする。つまり、プリンタドライバは、OS21にあらかじめ組み込まれているプログラムではなく、使用するためには所定の手順によってOS21にインストールする必要があるプログラムである。例えば、UI20を介して指示されたインストーラ、あるいは、OS21が、プリンタドライバをOS21にインストールする。 プリンタドライバは、プリンタの各モデルに個別に対応してプリンタのベンダによって用意されるプログラムであり、対応するモデルに固有の機能の指示を受け付けることもできるプログラムであってもよい。
 なお、プリンタドライバ、すなわちベンダドライバは、OS21にあらかじめ組み込まれた汎用印刷プログラム41よりも高性能である場合がある。高性能である、とは、例えば、汎用印刷プログラム41にて生成された印刷データよりも、プリンタドライバにて生成された印刷データの方が、プリンタにおいて効率よく処理でき、印刷速度が速いことである。また、高性能である、とは、より少ないメモリで、プリンタが印刷データを処理できることであっても良い。また、高性能であることの一例は、プリンタドライバにて生成された印刷データの方が、より発色の良い印刷物をプリンタに印刷させることができることであっても良い。また、高性能であることの一例は、プリンタドライバにて生成された印刷データの方が、より高解像度の印刷物をプリンタに印刷させることがであっても良い。また、高性能であることの一例は、汎用印刷プログラム41ではプリンタに指示することができないプリンタドライバ固有の機能をプリンタドライバがプリンタに指示できることであっても良い。固有の機能とは、例えば、ミラー印刷機能、ネガポジ反転印刷機能、である。
 補助プログラム42は、汎用印刷プログラム41の起動に付随してOS21からの指示に基づいて処理を実行するプログラムであり、対象のハードウェアの制御をサポートするアプリである。補助プログラム42は、例えば、OS21によって起動される。補助プログラム42は、プリンタ2等の各モデルに対応するアプリである。補助プログラム42は、プリンタ2等のデバイスのベンダによって用意される。デバイスのベンダは、OS21のベンダが指定する手順に従って、補助プログラム42をOS21のベンダが提供するプラットフォームに登録する。OS21は、PC1に新たにプリンタ2が接続され、そのプリンタ2に対応する補助プログラム42がプラットフォームに登録されている場合には、当該補助プログラム42を補助プログラム42が格納されているサーバからダウンロードしてPC1に組み込む。   
 そして、OS21は、組み込んだ補助プログラム42の識別情報を新たに接続されたプリンタ2のプリンタ情報に対応付けて、メモリ12に記憶する。複数のモデルのプリンタが接続されているPC1には、各モデルに対応するそれぞれの補助プログラムが組み込まれ、各プリンタと各補助プログラムとを対応付ける情報がメモリ12に記憶される。つまり、メモリ12には、PC1に接続されている各プリンタのプリンタ情報として、当該プリンタのモデル情報やアクセス情報とともに、対応する補助プログラム42の情報が記憶される。
 編集アプリ43は、例えば、画像データや文書データの作成や編集を行うためのアプリである。編集アプリ43は、例えば、マイクロソフトワード(登録商標)、パワーポイント(登録商標)である。編集アプリ43は、プリンタ2に所定の動作を行わせる指示を含むユーザ操作を受け付ける。例えば、編集アプリ43は、UI20を介して、プリンタ2に印刷を実行させる印刷指示を受け付ける。
 次に、各プログラムによる処理の順序について、図2を参照して説明する。以下では、PC1がUI20を介して、例えば、編集アプリ43にて、印刷対象の画像データを指定する指示と、汎用印刷プログラム41を介してのプリンタ2での印刷実行の指示と、を受け付けた場合について説明する。
 印刷指示を受け付けた編集アプリ43は、受け付けた印刷指示に基づいて、印刷実行通知をOS21に渡す。印刷実行通知には、例えば、印刷指示にて指定されたプリンタを示す情報、印刷パラメータ、印刷指示にて指定された画像データを示す情報が含まれる。次に、OS21は、印刷指示にて指定されたプリンタであるプリンタ2に対応する補助プログラム42がメモリ12に記憶されていれば、汎用印刷プログラム41による印刷データの生成を開始する前に、補助プログラム42による処理の実行を補助プログラム42に指示する。
 補助プログラム42には、汎用印刷プログラム41による処理の開始前に実行される前処理と、汎用印刷プログラム41による処理の終了後であってプリンタ2に印刷データを送信する前に実行される後処理と、が含まれる。以下では、補助プログラム42の処理のうち、汎用印刷プログラム41による処理の開始前に実行される処理を、「前処理補助プログラム」421による処理として説明し、汎用印刷プログラム41による処理の終了後に実行される処理を、「後処理補助プログラム」422による処理として説明する。
 本形態のPC1では、印刷指示を受け付けたことに応じて、汎用印刷プログラム41による印刷データの生成が開始される前に、前処理補助プログラム421の処理が実行される。前処理補助プログラム421は、印刷指示に含まれる各種の情報、例えば、印刷パラメータやプリンタの情報を、OS21から取得できる。前処理補助プログラム421は、取得した情報と自身のプログラムとに基づいて前処理を実行し、処理の終了後に終了通知をOS21に返す。前処理補助プログラム421による前処理の詳細については後述する。
 前処理補助プログラム421から終了通知を受け取ると、OS21は、汎用印刷プログラム41による処理を実行する。汎用印刷プログラム41は、印刷実行通知に含まれる情報に基づいて、画像データから印刷データを生成する。
 印刷データの生成が完了したら、OS21は、生成した印刷データをプリンタ2に送信する前に、後処理補助プログラム422に後処理の実行を指示する。後処理補助プログラム422は、印刷パラメータやプリンタの情報に加え、生成が終了している印刷データもOS21から取得する。後処理補助プログラム422は、取得した情報と自身のプログラムとに基づいて後処理を実行し、処理の終了後に終了通知をOS21に返す。後処理補助プログラム422による後処理の詳細については後述する。
 OS21は、後処理補助プログラム422から終了通知を受け取ると、通信IF30を介して、印刷パラメータと印刷データをプリンタ2に送信する。なお、印刷パラメータは、編集アプリ43における設定から、前処理補助プログラム421や後処理補助プログラム422にて変更されている場合もある。プリンタ2は、受信した印刷パラメータと印刷データとに基づいて、印刷を実行する。
 次に、本形態の補助プログラム42の動作を含む印刷手順の概略について図3のシーケンス図を参照して説明する。まず、編集アプリ43は、UI20を介して、印刷対象の画像データの指定と、印刷実行の指示入力を受け付ける(矢印A)。そして、編集アプリ43は、受け付けた指示の内容を示す印刷実行通知をOS21に渡す(矢印B)。
 OS21は、編集アプリ43から出力される印刷実行通知を検知すると、印刷実行通知に含まれる情報に基づいて、印刷を実行させる装置として指定されているプリンタを特定する。例えば、汎用印刷プログラム41を用いてプリンタ2にて印刷させることが印刷実行通知で指定されている場合、当該プリンタ2に対応する補助プログラム42がPC1に組み込まれていれば、OS21は、補助プログラム42の処理の実行命令を出力する。OS21は、印刷実行通知を検知したことを契機に補助プログラム42へ実行命令を出力する。このOS21による実行命令の出力は、印刷指示を検知したことを通知する検知通知の一例である。
 補助プログラム42は、自身に対応する実行命令がOS21から出力された場合、前処理補助プログラム421または後処理補助プログラム422の処理を実行する。図3に示される例では、OS21は、汎用印刷プログラム41による印刷データの生成開始前に、補助プログラム42に実行命令を出力して前処理補助プログラム421の処理を開始させる(矢印C)。
 本形態の前処理補助プログラム421は、OS21から取得したプリンタ2の情報や印刷パラメータに基づいて、プリンタ2に先行動作をさせるか否かを判断する(矢印D)。先行動作は、印刷データの送信前にプリンタ2に印刷のための準備を行わせる動作である。PC1が先行動作を指示するコマンドをプリンタ2に送信することで、プリンタ2が先行動作を実行する。そして、プリンタ2が先行動作を行うことで、ユーザが印刷指示を入力してから1枚目の印刷が完了するまでの待ち時間を短くできる。
 先行動作には、例えば、プリンタ2のモデルごとに複数の種類がある。プリンタ2がインクジェット方式のプリンタである場合、PC1は、先行動作として、例えば、印刷ヘッドの乾燥防止用キャップを外して、印刷開始位置まで印刷ヘッドを移動させる動作を指示するコマンド(すなわち、アンキャップコマンド)をプリンタ2に送信する。また、プリンタ2が電子写真方式のプリンタである場合、PC1は、先行動作として、例えば、定着装置の予熱の開始や、各種モータの起動を行わせるコマンドをプリンタ2に送信する。さらに、プリンタ2の印刷方式に関わらず、PC1は、先行動作として、例えば、印刷パラメータに基づいて、印刷用の用紙を給紙トレイから引き出して所定の待機位置まで搬送する動作を指示するコマンドをプリンタ2に送信してもよい。
 前処理補助プログラム421は、プリンタ2に先行動作をさせると判断した場合、OS21から取得したプリンタ2のIPアドレスを使用して、先行動作の実行を指示するコマンドである先行動作コマンドをプリンタ2に送信する(矢印E)。これにより、プリンタ2は、指示された先行動作を実行する(矢印F)。先行動作コマンドの送信後、前処理補助プログラム421は、処理終了をOS21に通知する(矢印G)。
 OS21は、前処理補助プログラム421から終了通知を受け取ったことに応じて、汎用印刷プログラム41を使用して印刷データを生成する(矢印H)。汎用印刷プログラム41によって生成される印刷データは、汎用の印刷データであり、各種のプリンタ2にて印刷に使用できる印刷データである。
 汎用印刷プログラム41による印刷データの生成の終了後、OS21は、再度、補助プログラム42の処理の実行命令を出力する(矢印I)。これにより、補助プログラム42は、後処理補助プログラム422の処理を開始する。この時点では、既に印刷データが生成済みであり、OS21が印刷データをプリンタ2に送信することでプリンタ2が印刷を開始できる。後処理補助プログラム422は、後処理を終了すると、処理終了をOS21に通知する(矢印J)。OS21は、後処理補助プログラム422から終了通知を受け取ったことに応じて、印刷データをプリンタ2に送信し(矢印K)、プリンタ2は印刷を実行する(矢印L)。
 続いて、上述した本形態の印刷システムによる動作を実現する印刷処理の手順について、図4のフローチャートを参照して説明する。印刷処理は、編集アプリ43が、汎用印刷プログラム41を使用してプリンタ2に印刷を実行させる指示である印刷指示の入力を受け付け(図3の矢印A)、OS21が編集アプリ43から印刷実行通知を受け付けたこと(図3の矢印B)を契機に、OS21に従って、PC1のCPU11により実行される。本形態では、OS21がキャンセル指示に対応していない場合の手順について説明する。
 印刷処理では、OS21は、まず、メモリ12に補助プログラム42が組み込まれているか否かを判断する(S101)。補助プログラム42は、前述したように、各プリンタに対応するものがデバイスのベンダによって用意され、OS21がプリンタを検出した場合にOS21によってPC1に組み込まれる。プリンタ2に対応する補助プログラム42が用意されていない場合など、補助プログラム42がPC1に組み込まれていないと判断された場合(S101:NO)、OS21は、OS21に含まれる汎用印刷プログラム41を用いて、印刷データを生成する(S102)。
 OS21は、S102にて生成された印刷データをプリンタ2に送信し(S103)、印刷処理を終了する。プリンタ2は、PC1から受信した印刷データに従った印刷を実行する。なお、PC1は、印刷データの送信に失敗した場合には、所定のエラー処理を実行してもよい。
 PC1に補助プログラム42が組み込まれていない場合には、汎用印刷プログラム41によって印刷データが生成される。そのため、ユーザは、プリンタ2のセットアップを意識することなく、各種のプリンタ2を、補助プログラム42を用いる場合と同じ使い勝手で使用できる。ただし、汎用印刷プログラム41を用いた印刷では、高性能なプリンタドライバ(すなわち、ベンダドライバ)による印刷よりも、印刷に長時間を要する、または、印刷物の品質が下がる可能性がある。
 補助プログラム42がPC1に組み込まれていると判断された場合(S101:YES)、OS21は、プリンタ2に対応する補助プログラム42に実行命令を出力し、前処理補助プログラム421の処理を開始させる(S105、図3の矢印C)。これにより、CPU11は、前処理補助プログラム421に従って前処理を実行する。例えば、OS21が前処理補助プログラム421を示す情報を補助プログラム42に入力しても良い。あるいは、OS21が前処理補助プログラム421を示す情報をメモリ12に記憶させてから補助プログラム42に実行命令を出力し、補助プログラム42がその情報を読み出しても良い。あるいは、OS21が、前処理補助プログラム421の処理を指定した実行命令を出力しても良い。
 前処理の手順について、図5のフローチャートを参照して説明する。前処理では、補助プログラム42は、印刷指示にて指定された印刷パラメータに基づいて、印刷を実行させる装置として指定されているプリンタ2のプリンタ情報を取得する(S201)。S201は、取得処理の一例である。前処理補助プログラム421は、自身に対応付けられているプリンタ2のプリンタ情報や、印刷指示にて設定されている各種の情報を、OS21から取得できる。具体的には、補助プログラム42は、OS21に問い合わせるか、OS21が情報を記憶している記憶場所を参照して、プリンタ2のモデル情報や、IPアドレス等のアクセス情報を取得する。
 補助プログラム42は、取得したIPアドレスを使用してプリンタ2と通信を行い、プリンタ2の状態情報を取得する(S202)。S202は、第1状態取得処理の一例である。プリンタ2の状態情報は、例えば、待機中、印刷中、印刷準備中、エラー中である。
 待機中は、プリンタ2が印刷データの受信を待っている状態であることを示す。印刷準備中は、プリンタ2が印刷を実行するための準備動作中であることを示す。印刷中は、プリンタ2が印刷データを受け取っており、その印刷を実行中であることを示す。状態情報が印刷中、または印刷準備中であれば、印刷の準備動作は実行中または終了しており、改めて先行動作コマンドをプリンタ2に送信する必要はない。エラー中は、例えば、インク切れ、カバーオープン中など、プリンタ2が印刷を実行できない状態であることを示す。また、補助プログラム42とプリンタ2との通信が不可能である、または、プリンタ2の電源が投入されていない、等の場合には、補助プログラム42は、プリンタ2から状態の情報を取得できない。なお、プリンタ2の状態情報は、プリンタ2から直接取得する代わりに、OS21等のステータスモニタから取得してもよい。
 そして、補助プログラム42は、プリンタ2の状態が待機中であるか否かを判断する(S203、図3の矢印D)。待機中であると判断した場合(S203:YES)、補助プログラム42は、プリンタ2に先行動作を指示するための先行動作コマンドを生成する。そのために、補助プログラム42は、プリンタ2のモデルごとの準備コマンドを取得する(S204)。準備コマンドは、インクジェット方式のプリンタのアンキャップコマンドなど、印刷パラメータに関わらずあらかじめ決まっているコマンドである。補助プログラム42は、準備コマンドをモデル名に対応付けて記憶している。
 次に、補助プログラム42は、印刷実行通知に含まれる情報に基づいて、印刷パラメータを取得する(S205)。本形態の補助プログラム42は、印刷パラメータのうち、特に、用紙サイズの情報や給紙トレイの設定に関する情報を取得する。そして、補助プログラム42は、印刷パラメータに基づいて、給紙元として使用する給紙トレイを決定する(S206)。
 補助プログラム42は、例えば、プリンタ2と通信することで、プリンタ2の給紙トレイの情報を取得する。あるいは、あらかじめプリンタ2の給紙トレイの情報がメモリ12に記憶されていれば、補助プログラム42は、メモリ12から給紙トレイの情報を読み出す。そして、補助プログラム42は、印刷パラメータにおいて給紙トレイが指定されている場合は、指定されている給紙トレイを給紙元として使用する給紙トレイに決定する。また、例えば、給紙トレイが自動設定となっている場合には、補助プログラム42は、デフォルトとして設定されている給紙トレイを給紙元の給紙トレイに決定する。また、例えば、プリンタ2が複数の給紙トレイを有し、給紙トレイごとに異なる用紙サイズの用紙が収容されている場合には、補助プログラム42は、印刷パラメータの用紙サイズの情報に基づいて、給紙元として使用する給紙トレイを決定しても良い。
 そして、補助プログラム42は、決定した給紙トレイから給紙を開始する動作を指示する給紙コマンドを生成する(S207)。さらに、補助プログラム42は、S204にて取得した準備コマンドと、S207にて生成した給紙コマンドとを合成し、先行動作コマンドを生成する(S208)。さらに、補助プログラム42は、S201にて取得したIPアドレスを使用し、生成した先行動作コマンドをプリンタ2に送信する(S209、図3の矢印E)。S209は、コマンド出力処理の一例である。さらに、補助プログラム42は、先行動作コマンドを送信済みであることを示す情報を印刷パラメータに追加する(S210)。
 S210の後、または、プリンタ2の状態が待機中ではないと判断した場合(S203:NO)、補助プログラム42は、前処理の終了を通知し(S211、図3の矢印G)、前処理を終了する。終了通知は、前処理補助プログラム421からOS21に渡される。
 図4の印刷処理の説明に戻り、OS21は、前処理補助プログラム421から終了通知を受け取ったか否かを判断する(S107)。前処理が終了すると、OS21は、前処理補助プログラム421から終了通知を受け取る。終了通知を受け取っていないと判断した場合(S107:NO)、OS21は、受け取るまで待機する。
 終了通知を受け取ったと判断された場合(S107:YES)、OS21は、OS21に含まれる汎用印刷プログラム41を用いて、印刷データを生成する(S108、図3の矢印H)。S108は、S102と同様の処理である。そして、印刷データの生成後、生成した印刷データをプリンタ2に送信する前に、OS21は、プリンタ2に対応する補助プログラム42に実行命令を出力し、後処理補助プログラム422の処理を開始させる(S109、図3の矢印I)。これにより、CPU11は、後処理補助プログラム422に従って後処理を実行する。
 後処理の手順について、図6のフローチャートを参照して説明する。後処理では、補助プログラム42は、汎用印刷プログラム41にて生成された印刷データに対するデータチェック等、プリンタ2への印刷データの送信開始までに所定の待ち時間が有るか否かを判断する(S301)。
 プリンタ2は、印刷データを受信すれば直ちに印刷動作を開始する。この時点では、印刷データが生成済みであることから、PC1は、生成した印刷データをプリンタ2に送信することで、プリンタ2に印刷動作を開始させることができる。つまり、PC1からプリンタ2に直ちに印刷データを送信できる場合には、プリンタ2に準備動作を行わせる先行動作コマンドを改めて送信するより、印刷データを送信した方がよい。ただし、印刷データのチェック等、生成後の印刷データに対してプリンタ2への送信前に何らかの処理が必要である場合は、後処理でも必要に応じて先行動作コマンドを送信してもよい。
 待ち時間が有ると判断した場合(S301:YES)、補助プログラム42は、印刷パラメータを参照する(S302)。そして、補助プログラム42は、印刷パラメータに先行動作コマンドを送信済みであることを示す情報が含まれているか否かを判断する(S303)。この情報は、前処理にて先行動作コマンドを送信した場合、S209にて印刷パラメータに追加される。
 印刷パラメータに先行動作コマンドを送信済みであることを示す情報が含まれていると判断した場合(S303:YES)、補助プログラム42は、プリンタ2の状態を取得する(S304)。S304は、前処理のS202と同じ処理である。S304は、第2状態取得処理の一例である。
 そして、補助プログラム42は、プリンタ2の状態が待機中であるか否かを判断する(S305)。前処理にて送信した先行動作コマンドをプリンタ2が受信し、プリンタ2が受信した先行動作コマンドに基づく動作を開始していれば、プリンタ2の状態は待機中ではなく、印刷準備中となっているはずである。もし、プリンタ2の状態が待機中であれば、送信した先行動作コマンドをプリンタ2が受信していない、または、プリンタ2が先行動作コマンドに基づく動作を開始していないことを示している。
 プリンタ2の状態が待機中であると判断した場合(S305:YES)、補助プログラム42は、先行動作コマンドを生成する(S306)。S306は、前処理のS208と同じ処理であり、S208にて生成した先行動作コマンドがメモリ12に記憶されていれば、補助プログラム42は、S306ではその記憶されているコマンドを読み出せばよい。そして、補助プログラム42は、生成した先行動作コマンドをプリンタ2に送信する(S307)。S307は、リトライ処理の一例である。つまり、補助プログラム42は、前処理と同じ先行動作コマンドを再出力する。
 S307の後、または、所定の待ち時間が無いと判断した場合(S301:NO)、または、印刷パラメータに先行動作コマンドを送信済みであることを示す情報が含まれていないと判断した場合(S303:NO)、または、プリンタ2の状態が待機中ではないと判断した場合(S305:NO)、補助プログラム42は、後処理の終了を通知し(S308、図3の矢印J)、後処理を終了する。終了通知は、後処理補助プログラム422からOS21に渡される。
 図4の印刷処理の説明に戻り、OS21は、後処理補助プログラム422から終了通知を受け取ったか否かを判断する(S111)。後処理が終了すると、OS21は、後処理補助プログラム422から終了通知を受け取る。終了通知を受け取っていないと判断した場合(S111:NO)、OS21は、受け取るまで待機する。
 終了通知を受け取ったと判断した場合(S111:YES)、OS21は、印刷データをプリンタ2に送信し(S103、図3の矢印K)、印刷処理を終了する。プリンタ2は、PC1から受信した印刷データに従った印刷を実行する(図3の矢印L)。
 以上、詳細に説明したように、本形態の補助プログラム42によれば、OS21に標準の汎用印刷プログラム41を介する印刷指示があった場合に、補助プログラム42がその印刷指示の対象となったプリンタ2に対してプリンタ独自の先行動作を実行させる先行動作コマンドを出力する。これにより、PC1が汎用印刷プログラム41を介する印刷指示を受け付けた場合でも、プリンタ2がプリンタ独自の先行動作を実行することができ、プリンタ独自に有する能力を発揮させることができる。
 さらに、本形態の補助プログラム42は、印刷指示があった際にOS21から読み出されて、出力先のプリンタを特定し、さらに印刷パラメータを取得できる。そして、補助プログラム42は、前処理補助プログラム421の処理にて先行動作コマンドを出力するので、OS21が印刷データの生成を完了させる前、特に、印刷データの生成を開始する前に、先行動作コマンドを出力することができる。従って、プリンタがより早期に先行動作を開始でき、プリンタ独自に有する機能の効果が高まる。
 また、本形態では、補助プログラム42は、先行動作コマンドの出力前に、プリンタ2の状態情報を取得し、プリンタ2の状態が印刷中または印刷準備中である場合には、先行動作コマンドを送信しない。プリンタ2の状態が印刷中または印刷準備中であれば、先行動作の実行が不要である。先行動作の実行が不要な場合は先行動作コマンドの出力を行わないことで、無駄な処理を回避できる。
 また、補助プログラム42が前処理にて先行動作コマンドを送信しても、先行動作コマンドがプリンタ2に到達していない場合も想定される。本形態では、後処理でもプリンタの状態を確認し、先行動作コマンドの出力のリトライを行うので、よりプリンタ独自に有する能力を発揮させ易い。特に、印刷データの送信が完了する前に先行動作コマンドの出力のリトライが行われるので、プリンタがより早期に先行動作を開始でき、プリンタ独自に有する機能の効果が高まる。
 また、本形態では、プリンタ2のモデルごとの準備動作に対応した先行動作コマンドを送信するので、補助プログラム42の利便性が向上する。
 また、本形態の補助プログラム42では、印刷データの生成開始前に印刷パラメータを取得できる。そのため、印刷パラメータを取得し、印刷パラメータに対応した先行動作コマンドを送信することで、補助プログラム42の利便性が向上する。例えば、補助プログラム42が、給紙トレイごとに異なる給紙コマンドを送信することにより、プリンタ2に適切な給紙動作を開始させることができ、印刷開始を早めることができる。
 なお、本明細書に開示される実施の形態は単なる例示にすぎず、本発明を何ら限定するものではない。したがって本明細書に開示される技術は当然に、その要旨を逸脱しない範囲内で種々の改良、変形が可能である。例えば、PC1に接続されるデバイスは、プリンタに限らず、複合機、複写機、FAX装置など、印刷機能を有する装置であれば、適用可能である。また、PC1に接続されるプリンタは、1台に限らず、複数台でもよい。
 また、例えば、実施の形態では、補助プログラム42は前処理と後処理との両方を備えているとしたが、いずれか一方のみを備えていても良い。例えば、補助プログラム42は印刷データの生成前に起動される前処理補助プログラム421の構成のみを含んでもよい。また、前処理補助プログラム421と後処理補助プログラム422とは、別のプログラムであっても良い。
 また、前処理にて先行動作コマンドを送信した場合、後処理を実行しなくても良い。つまり、OS21は、印刷データの生成後に補助プログラム42に実行命令を出力しなくても良い。
 また、本形態では、補助プログラム42は、先行動作コマンドとして、準備コマンドと給紙コマンドとを合成して1つのコマンドとして送信しているが、別々のコマンドとしてそれぞれ送信してもよい。また、補助プログラム42は、いずれか一方のコマンドのみを送信してもよい。
 また、本形態では、補助プログラム42は、プリンタ2の状態が待機中でなければ先行動作コマンドを送信しないとしたが、送信してもよい。また、プリンタ2の状態確認は、しなくても良い。例えば、前処理のS202とS203とが実行されず、S201の後、S204に進むとしても良い。また、後処理では、前処理にて先行動作コマンドを送信済みでなければ、先行動作コマンドを送信しないとしたが、送信してもよい。
 また、本形態では、準備コマンド等から先行動作コマンドが生成されて送信されるとしたが、先行動作コマンドとして、印刷パラメータが送信されてもよい。例えば、補助プログラム42は、前処理のS206~S208を実行せず、S209では、S205にて取得した印刷パラメータを送信してもよい。この場合、例えば、プリンタ2が、印刷パラメータを受信した際に待機中であれば先行動作を実行し、待機中でなければ先行動作を実行しない、構成であればよい。また、例えば、プリンタ2が、印刷パラメータと共に、あるいは、印刷パラメータの受信から所定時間以内に、印刷データを受信した場合には、印刷を実行し、印刷パラメータを受信後、所定時間を超えても印刷データを受信しなかった場合には、先行動作のみを実行する、構成であってもよい。さらに、この場合、印刷パラメータを受信したプリンタ2は、印刷パラメータに対応する先行動作を行っても良い。プリンタ2は、例えば、印刷パラメータにカラー印刷の設定が含まれていればカラー印刷の準備動作を実行し、モノクロ印刷の設定であれば黒色のみの準備動作を実行しても良い。例えば、プリンタ2がレーザプリンタである場合、カラー印刷の準備動作として、色ずれ抑制のためのキャリブレーション処理を行ってもよい。また、プリンタ2がフィニッシャを備え、印刷パラメータにフィニッシャでの処理が含まれている場合、プリンタ2は、印刷パラメータを受信した場合にフィニッシャの準備動作を行うとしても良い。
 また、実施の形態では、補助プログラム42の動作として、先行動作コマンドを送信する役割のみを記載しているが、補助プログラム42は、さらに他の役割を有していても良い。補助プログラム42が他の役割を有する補助プログラム42であれば、例えば、前処理のS211の前や後処理のS308の前に他の役割の処理を行っても良い。例えば、補助プログラム42が印刷態様をカスタマイズする役割を有する補助プログラム42であれば、S211の前に、プリンタ2あるいはOS21にカスタマイズのための情報を通知しても良い。また、補助プログラム42が印刷データの加工処理を有する補助プログラム42であれば、S308の前に、汎用印刷プログラム41にて生成された印刷データの加工を行っても良い。また、補助プログラム42は、さらに、プリンタドライバを使用した印刷を推奨する動作、例えば、メッセージの表示、インストーラのダウンロード、デフォルトのプリンタへの切り替え等を行っても良い。
 また、前処理と後処理とを実行するモジュールは、補助プログラム42に限らず、OS21の汎用印刷プログラム41にて印刷を行う際に、OS21から指示を受け付けるプログラムであればよい。例えば、マイクロソフト社が仕様公開した印刷ワークフロー アプリ(Print workflow)でも良い。
 また、実施の形態では、OS21から補助プログラム42の実行命令が出力されることで、補助プログラム42が起動されるとしているが、補助プログラム42の起動タイミングはこれに限らない。例えば、補助プログラム42は、常時起動されている補助プログラムであってもよく、その場合には、補助プログラム42は、実行命令を受けて前述した動作を行うとすれば良い。
 また、実施の形態に開示されている任意のフローチャートにおいて、任意の複数のステップにおける複数の処理は、処理内容に矛盾が生じない範囲で、任意に実行順序を変更できる、または並列に実行できる。
 また、実施の形態に開示されている処理は、単一のCPU、複数のCPU、ASICなどのハードウェア、またはそれらの組み合わせで実行されてもよい。また、実施の形態に開示されている処理は、その処理を実行するためのプログラムを記録した記録媒体、または方法等の種々の態様で実現することができる。

 

Claims (17)

  1.  情報処理装置のコンピュータによって実行可能であり、前記情報処理装置と接続するプリンタに対応するサポートプログラムであって、
     前記コンピュータに、
      印刷プログラムを介して印刷指示を受け付けた場合に、前記情報処理装置の通信インタフェースを介して、前記プリンタに対して、先行動作コマンドを出力するコマンド出力処理を実行させ、前記先行動作コマンドは、前記プリンタに印刷を開始する前の先行動作を前記プリンタに実行させ、前記印刷プログラムは、前記情報処理装置のオペレーティングシステムに組み込まれたプログラムであり、前記印刷指示は、前記情報処理装置に接続されたプリンタに印刷を実行させる指示である、
     ことを特徴とするサポートプログラム。
  2. 請求項1に記載するサポートプログラムにおいて、
     前記コンピュータに、
      前記情報処理装置のメモリに記憶されているプリンタ情報を取得する取得処理を実行させ、
     前記コマンド出力処理では、
      前記コンピュータに、前記取得処理によって取得した前記プリンタ情報を用いて、前記通信インタフェースを介して、前記プリンタに対して前記先行動作コマンドを出力させる、
     ことを特徴とするサポートプログラム。
  3. 請求項2に記載するサポートプログラムにおいて、
     前記先行動作コマンドには、複数の種類があり、
     前記プリンタ情報には、前記プリンタのモデルを示すモデル情報が含まれ、
     前記コマンド出力処理では先行動作コマンドが前記プリンタに出力され、前記先行動作コマンドは、前記複数の種類の先行動作コマンドのうち前記取得処理によって取得されたコマンドであり、前記先行動作コマンドは、前記プリンタ情報の前記モデル情報に示されるモデルに対応する、
     ことを特徴とするサポートプログラム。
  4. 請求項2または請求項3に記載するサポートプログラムにおいて、
     前記プリンタ情報には、前記プリンタへのアクセスに用いるアクセス情報が含まれ、
     前記コマンド出力処理では、
      前記コンピュータに、前記アクセス情報を用いて、前記通信インタフェースを介して、前記プリンタに対して前記先行動作コマンドを出力させる、
     ことを特徴とするサポートプログラム。
  5. 請求項2から請求項4のいずれか1つに記載するサポートプログラムにおいて、
     前記オペレーティングシステムは、前記プリンタと異なるプリンタに対応するサポートプログラムをインストール可能であり、前記情報処理装置が、インストールされているサポートプログラムごとに、サポートプログラムの識別情報と前記プリンタ情報とを対応付けて前記メモリに記憶している場合に、
     前記オペレーティングシステムは、前記印刷指示の対象となった前記プリンタの前記プリンタ情報と対応付けられた識別情報によって示される前記サポートプログラムの処理を実行する、
     ことを特徴とするサポートプログラム。
  6. 請求項1から請求項5のいずれか1つに記載するサポートプログラムにおいて、
     前記コマンド出力処理では、
      前記コンピュータに、前記印刷プログラムによって前記オペレーティングシステムが印刷データの生成を完了させる前に、前記先行動作コマンドを出力させる、
     ことを特徴とするサポートプログラム。
  7. 請求項1から請求項5のいずれか1つに記載するサポートプログラムにおいて、
     前記コマンド出力処理では、
      前記コンピュータに、前記印刷プログラムによって前記オペレーティングシステムが印刷データの生成を開始する前に、前記先行動作コマンドを出力させる、
     ことを特徴とするサポートプログラム。
  8. 請求項1から請求項7のいずれか1つに記載するサポートプログラムにおいて、
     前記コンピュータに、さらに、
      前記印刷プログラムを介して前記プリンタに印刷を行わせる前記印刷指示があった後に第1状態取得処理を実行させ、前記第1状態取得処理は、前記コマンド出力処理にて前記先行動作コマンドを出力させる前に、前記プリンタの状態を示す状態情報を取得する処理であり、
     前記コンピュータに、
      前記第1状態取得処理において、前記先行動作の実行が不要である状態を示す前記状態情報を取得しなかった場合に、前記コマンド出力処理を実行させ、前記先行動作の実行が不要である状態を示す前記状態情報を取得した場合に、前記コマンド出力処理を実行させない、
     ことを特徴とするサポートプログラム。
  9. 請求項1から請求項8のいずれか1つに記載するサポートプログラムにおいて、
     前記コンピュータに、さらに、
      前記コマンド出力処理にて前記先行動作コマンドを出力させた後に第2状態取得を実行させ、前記第2状態取得処理は、前記プリンタの状態を示す状態情報を取得する処理であり、
      前記第2状態取得処理において、前記先行動作の実行が不要である状態を示す前記状態情報が取得されなかった場合にリトライ処理を実行させ、前記リトライ処理は、前記プリンタに対して前記先行動作コマンドを再出力させる処理である、
     ことを特徴とするサポートプログラム。
  10. 請求項9に記載するサポートプログラムにおいて、
     前記コマンド出力処理では、
      前記コンピュータに、前記印刷プログラムによって前記オペレーティングシステムが印刷データの生成を開始する前に、前記先行動作コマンドを出力させ、
     前記リトライ処理では、
      前記コンピュータに、前記印刷プログラムによって前記オペレーティングシステムが印刷データの生成を開始した後であって、前記印刷データの前記プリンタへの送信が完了する前に、前記先行動作コマンドを出力させる、
     ことを特徴とするサポートプログラム。
  11. 請求項1から請求項10のいずれか1つに記載するサポートプログラムにおいて、
     前記先行動作コマンドには、複数の種類があり、
     前記コマンド出力処理では、
      前記コンピュータに、前記印刷指示に含まれる印刷パラメータを取得させ、先行動作コマンドを出力させ、前記先行動作コマンドは、複数種類の前記先行動作コマンドのうち前記印刷パラメータに対応している、
     ことを特徴とするサポートプログラム。
  12. 請求項11に記載するサポートプログラムにおいて、
     前記先行動作コマンドには、前記プリンタの給紙を開始する給紙コマンドが含まれ、
     前記コマンド出力処理では、
      前記コンピュータに、取得した前記印刷パラメータによって指定される給紙トレイからの給紙を開始する前記給紙コマンドを出力させる、
     ことを特徴とするサポートプログラム。
  13. 請求項12に記載するサポートプログラムにおいて、
     前記コマンド出力処理では、
      前記コンピュータに、前記印刷プログラムによって前記オペレーティングシステムが印刷データの生成を完了させる前に給紙コマンドを出力させ、前記給紙コマンドは、前記印刷指示に含まれる印刷パラメータによって指定される給紙トレイからの給紙を開始するコマンドである、
     ことを特徴とするサポートプログラム。
  14. 請求項1に記載するサポートプログラムにおいて、
     前記オペレーティングシステムが、前記印刷プログラムを介して前記プリンタに印刷を行わせる印刷指示を検知し、前記印刷指示を検知した後、前記印刷指示に対応する印刷データを前記プリンタに送信する前までに、前記印刷指示を検知したことを通知する検知通知を出力するものである場合に、前記サポートプログラムは、
     前記コンピュータに、
      前記検知通知が出力された場合に、前記コマンド出力処理を実行させる、
     ことを特徴とするサポートプログラム。
  15. 請求項14に記載するサポートプログラムにおいて、
     前記オペレーティングシステムは、前記印刷指示に対応する印刷データの生成を開始する前に、前記検知通知を出力し、
     前記コマンド出力処理では、
      前記コンピュータに、前記検知通知が出力された場合に、前記オペレーティングシステムが印刷データの生成を開始する前に、前記先行動作コマンドを出力させる、
     ことを特徴とするサポートプログラム。
  16.  通信インタフェースと、
     コンピュータと、
    を備える情報処理装置であって、
     前記情報処理装置と接続するプリンタに対応するサポートプログラムが組み込まれ、前記プリンタは、印刷を開始する前の先行動作を行う機能を有し、
     印刷プログラムが、前記情報処理装置のオペレーティングシステムに組み込まれており、
     前記コンピュータは、
      前記印刷プログラムを介して前記プリンタに印刷を行わせる印刷指示を受け付けた場合に、前記サポートプログラムを用いてコマンド出力処理を実行し、前記コマンド出力処理は、前記通信インタフェースを介して、前記プリンタに対して先行動作コマンドを出力する処理であり、前記先行動作コマンドは、前記プリンタに前記先行動作を実行させるコマンドであり、前記印刷指示は、前記情報処理装置に接続されたプリンタに印刷を実行させる指示である、
     ことを特徴とする情報処理装置。
  17.  情報処理装置にプリンタが接続され、
     前記情報処理装置には、前記プリンタに対応するサポートプログラムが組み込まれ、前記プリンタは、印刷を開始する前の先行動作を行う機能を有し、
     印刷プログラムが、前記情報処理装置のオペレーティングシステムに組み込まれており、
     前記情報処理装置で生成された印刷データに基づく印刷を、前記プリンタに実行させる印刷方法において、
      前記情報処理装置が前記印刷プログラムを介して印刷指示を受け付けた場合に、前記サポートプログラムを用いて、前記情報処理装置から前記プリンタに対して先行動作コマンドを出力させるコマンド出力ステップを含み、前記先行動作コマンドは、前記プリンタに前記先行動作を実行させ、前記印刷指示は、前記情報処理装置に接続されたプリンタに印刷を実行させる指示である、
     ことを特徴とする印刷方法。

     
PCT/JP2019/045949 2018-11-30 2019-11-25 サポートプログラム、情報処理装置、および印刷方法 WO2020110992A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP19890041.7A EP3889757A4 (en) 2018-11-30 2019-11-25 SUPPORT PROGRAM, INFORMATION PROCESSING DEVICE AND PRINTING METHOD
CN201980077438.0A CN113168297A (zh) 2018-11-30 2019-11-25 支持程序、信息处理装置及打印方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018224996A JP7225738B2 (ja) 2018-11-30 2018-11-30 サポートプログラム、情報処理装置、および印刷方法
JP2018-224996 2018-11-30

Publications (1)

Publication Number Publication Date
WO2020110992A1 true WO2020110992A1 (ja) 2020-06-04

Family

ID=70848700

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/045949 WO2020110992A1 (ja) 2018-11-30 2019-11-25 サポートプログラム、情報処理装置、および印刷方法

Country Status (5)

Country Link
US (2) US11474763B2 (ja)
EP (1) EP3889757A4 (ja)
JP (2) JP7225738B2 (ja)
CN (1) CN113168297A (ja)
WO (1) WO2020110992A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7433981B2 (ja) * 2020-02-28 2024-02-20 キヤノン株式会社 情報処理装置、情報処理方法、印刷装置、制御方法、及びプログラム
JP2022169095A (ja) * 2021-04-27 2022-11-09 ブラザー工業株式会社 サポートプログラムおよび印刷システム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163225A (ja) * 1998-11-26 2000-06-16 Canon Inc 情報処理装置、印刷制御装置、印刷システムおよびそれらの制御方法、および印刷装置および記憶媒体
JP2005182486A (ja) * 2003-12-19 2005-07-07 Nec Soft Ltd 印刷管理システム、印刷管理方法および印刷管理用プログラム
JP2015191645A (ja) * 2014-03-31 2015-11-02 株式会社沖データ 印刷システム
JP2017134718A (ja) 2016-01-29 2017-08-03 ブラザー工業株式会社 ドライバプログラム、及びドライバプログラムとプリンタとのセット
JP2017134720A (ja) * 2016-01-29 2017-08-03 ブラザー工業株式会社 ドライバプログラム、及びドライバプログラムとプリンタとのセット

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002091745A (ja) * 2000-09-11 2002-03-29 Canon Inc 印刷制御装置及びシステム及びその制御方法と印刷装置とプリンタドライバ
JP2005081599A (ja) 2003-09-05 2005-03-31 Fuji Photo Film Co Ltd 印刷制御装置及び方法並びにプログラム
JP2008012832A (ja) * 2006-07-07 2008-01-24 Ricoh Printing Systems Ltd 印刷制御装置
JP2008130060A (ja) * 2006-11-27 2008-06-05 Oki Data Corp 画像処理装置制御プログラムのインストール方法、通信プログラム、及び、画像処理装置
JP4967913B2 (ja) * 2007-08-06 2012-07-04 ブラザー工業株式会社 通信システムと通信装置
JP2009116595A (ja) * 2007-11-06 2009-05-28 Canon Inc 印刷システム、及び印刷システムの制御方法
JP2012198674A (ja) 2011-03-18 2012-10-18 Ricoh Co Ltd プリンタドライバ、情報処理装置、及び記録媒体
JP6834402B2 (ja) 2016-11-24 2021-02-24 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP2018094733A (ja) * 2016-12-08 2018-06-21 ブラザー工業株式会社 通信装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163225A (ja) * 1998-11-26 2000-06-16 Canon Inc 情報処理装置、印刷制御装置、印刷システムおよびそれらの制御方法、および印刷装置および記憶媒体
JP2005182486A (ja) * 2003-12-19 2005-07-07 Nec Soft Ltd 印刷管理システム、印刷管理方法および印刷管理用プログラム
JP2015191645A (ja) * 2014-03-31 2015-11-02 株式会社沖データ 印刷システム
JP2017134718A (ja) 2016-01-29 2017-08-03 ブラザー工業株式会社 ドライバプログラム、及びドライバプログラムとプリンタとのセット
JP2017134720A (ja) * 2016-01-29 2017-08-03 ブラザー工業株式会社 ドライバプログラム、及びドライバプログラムとプリンタとのセット

Also Published As

Publication number Publication date
EP3889757A4 (en) 2022-04-27
US20200174727A1 (en) 2020-06-04
US11474763B2 (en) 2022-10-18
EP3889757A1 (en) 2021-10-06
JP7456527B2 (ja) 2024-03-27
JP2023059889A (ja) 2023-04-27
CN113168297A (zh) 2021-07-23
JP7225738B2 (ja) 2023-02-21
US20230033459A1 (en) 2023-02-02
JP2020087274A (ja) 2020-06-04

Similar Documents

Publication Publication Date Title
JP7355147B2 (ja) アプリケーションプログラム
JP7456527B2 (ja) サポートプログラム、情報処理装置、および印刷方法
JP7456529B2 (ja) サポートプログラム、情報処理装置、および印刷方法
WO2020110991A1 (ja) サポートプログラム、情報処理装置、および印刷方法
WO2020195329A1 (ja) サポートプログラム、情報処理装置、および印刷方法
JP2023073347A (ja) サポートプログラム、情報処理装置、および印刷方法
EP2538317B1 (en) Print control software program, information processing apparatus, and printing apparatus
WO2020158715A1 (ja) サポートプログラム、情報処理装置、および印刷方法
CN114450929A (zh) 支持程序、信息处理装置及打印方法
WO2021230349A1 (ja) サポートプログラム、情報処理装置、プログラムセット、および、印刷方法
US11604613B2 (en) Support program for driverless general-purpose print program, information processing device, and printing method for aggregate printing
US11064088B2 (en) Non-transitory computer-readable recording medium, information processing apparatus and printing method
JP7200632B2 (ja) 印刷システム、プリンタ、およびサポートプログラム
JP2021179912A (ja) サポートプログラム、情報処理装置、および印刷方法
JP2020129221A (ja) サポートプログラム、情報処理装置、および印刷方法
JP2021179913A (ja) サポートプログラム、プログラムセット、情報処理装置、および印刷方法
JP2022116555A (ja) サポートプログラム

Legal Events

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

Ref document number: 19890041

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019890041

Country of ref document: EP

Effective date: 20210630