Print control program, print control device, and control method

JP2026085482APending Publication Date: 2026-05-25SEIKO EPSON CORP
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
SEIKO EPSON CORP
Filing Date
2024-11-13
Publication Date
2026-05-25

AI Technical Summary

Technical Problem

Existing print extension applications take a long time to complete processing due to sequential execution of editing processes for print data.

Method used

A print control program that functions as a print extension application, acquiring multiple print data from a general-purpose printer driver and executing editing processes in parallel using multiple threads to reduce processing time.

Benefits of technology

Significantly reduces the total time required to execute multiple editing processes by allowing simultaneous execution on different print data sets, enhancing processing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026085482000001_ABST
    Figure 2026085482000001_ABST
Patent Text Reader

Abstract

The present invention provides a print control program, a print control device, and a control method that reduce the time required to perform multiple editing operations on each of multiple spool files. [Solution] In a printing system in which a computer 2 and a printer are connected to each other so as to be able to communicate via wired or wireless means, a print control program is configured to make the computer 2 function as a PSA (Print Support Application) 12 that extends the general-purpose printer driver 10a, as follows: The PSA 12 includes a spool file acquisition unit 20 that acquires multiple spool files from the general-purpose printer driver 10a, and an editing unit 21 that performs multiple editing processes in parallel for each of the multiple spool files.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a print control program, a print control device, and a control method.

Background Art

[0002] Patent Document 1 discloses an extension application for extending the functions of an OS standard driver incorporated as a standard in an operating system (hereinafter referred to as OS). The extension application can edit spool files.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] As described above, the extension application can realize various functions such as an assignment printing function by editing spool files. However, it takes a lot of time until all the processing by the extension application is completed.

Means for Solving the Problems

[0005] A print control program that causes a computer to function as a print extension application for extending a general-purpose printer driver, wherein the print extension application includes print data acquisition means for acquiring a plurality of print data from the general-purpose printer driver, and [[ID=<<MASK_END>>]] editing means for executing a plurality of editing processes in parallel for each of the plurality of print data, and a print control program is provided.

[0006] Generic printer driver and A print extension application that extends the aforementioned general-purpose printer driver, Includes, The aforementioned print extension application is A print data acquisition means for acquiring multiple print data from the aforementioned general-purpose printer driver, An editing means that performs multiple editing processes in parallel for each of the aforementioned multiple print data, including, A print control device is provided.

[0007] Generic printer driver and A print extension application that extends the aforementioned general-purpose printer driver, including, A control method for a printing control device, The aforementioned print extension application obtains multiple print data from the generic printer driver, The print extension application executes multiple editing processes in parallel for each of the multiple print data sets. A control method is provided. [Brief explanation of the drawing]

[0008] [Figure 1] This is a block diagram of a printing system. (First Embodiment) [Figure 2] This is a block diagram of a computer. (First Embodiment) [Figure 3] This diagram illustrates a print settings dialog box using a generic printer driver. (First Embodiment) [Figure 4] This diagram illustrates the print settings dialog box provided by the PSA. (First Embodiment) [Figure 5] This is a timetable showing the time elapsed during the editing process by PSA. (Comparative example) [Figure 6] This is a timetable showing the time elapsed during the editing process by PSA. (First Embodiment) [Figure 7]It is the control flow of a general-purpose printer driver. (First Embodiment) [Figure 8] It is the control flow of PSA. (First Embodiment) [Figure 9] It is the control flow of PSA. (First Embodiment) [Figure 10] It is the control flow of the first editing process thread. (First Embodiment) [Figure 11] It is the control flow of the second editing process thread. (First Embodiment) [Figure 12] It is the control flow of the third editing process thread. (First Embodiment) [Figure 13] It is a block diagram of a computer. (Second Embodiment) [Figure 14] It is a time table showing the time course of the editing process by PSA. (Second Embodiment) [Figure 15] It is a time table showing the time course of the editing process by PSA. (Second Embodiment)

Modes for Carrying Out the Invention

[0009] Hereinafter, the present invention will be described through embodiments of the invention, but the invention according to the claims is not limited to the following embodiments. Also, not all of the configurations described in the embodiments are essential as means for solving the problems. For the sake of clarity of explanation, the following description and drawings have been appropriately omitted and simplified. In each drawing, the same elements are denoted by the same reference numerals, and duplicate explanations are omitted as necessary.

[0010] [[ID=C]] In the following embodiments, the description will be divided into multiple sections or embodiments where necessary for convenience. Unless otherwise specified, these are not unrelated, and one may be a modification, application, detailed explanation, or supplementary explanation of part or all of the other. Furthermore, in the following embodiments, when referring to the number of elements (including number, numerical value, quantity, and range), unless otherwise specified or clearly limited to a specific number in principle, it is not limited to that specific number, and may be greater than or less than that number.

[0011] Furthermore, in the following embodiments, the components (including operation steps, etc.) are not necessarily essential unless specifically stated or considered to be fundamentally essential. Similarly, in the following embodiments, when referring to the shape or positional relationship of components, etc., it shall include those substantially similar to or resembling their shape, etc., unless specifically stated or considered to be fundamentally different. The same applies to the numbers, etc. (including number, numerical value, quantity, and range) mentioned above.

[0012] (First Embodiment) Figure 1 is a block diagram showing an example of a printing system according to this disclosure. The printing system 1 includes a computer 2 and a printer 3. The computer 2 and the printer 3 are connected to each other so as to be able to communicate via wired or wireless connections. The computer 2 may be connected to the printer 3 so as to be able to communicate via a LAN such as a wireless LAN (Local Area Network). Alternatively, the computer 2 may be connected to the printer 3 so as to be able to communicate via the Internet, for example.

[0013] Figure 2 shows a block diagram of computer 2. As shown in Figure 2, computer 2 includes a processor 2a, memory 2b, communication interface 2c, input interface 2d, and LCD 2e (Liquid Crystal Display).

[0014] The input interface 2d is typically a pointing device or a keyboard. The input interface 2d may also be a touch panel superimposed on the LCD 2e.

[0015] The processor 2a is a variety of processor, such as a CPU (Central Processing Unit), GPU (Graphics Processing Unit), or FPGA (Field Programmable Gate Array). The memory 2b is a secondary storage device implemented using a main memory such as RAM (Random Access Memory), a hard disk, an SSD (Solid State Drive), a memory card, or ROM (Read Only Memory). The processor 2a can access the memory 2b. The processor 2a communicates with the printer 3 via the communication interface 2c. The memory 2b stores programs for implementing predetermined functions. The processor 2a reads and executes the programs stored in the memory 2b. In this way, the processor 2a makes the hardware, including the processor 2a, memory 2b, and communication interface 2c, function as the OS 10 (Operating System), the document creation application 11, and the PSA 12 (Print Support Application).

[0016] The document creation application 11 is one example of a user application. The user application is not limited to the document creation application 11; it may also be a document creation application, a presentation material creation application, or a spreadsheet application. PSA 12 is one example of a print extension application.

[0017] OS10 is the basic software that controls the operation of computer 2. OS10 may be, for example, Windows®. The following description will use Windows as the example for OS10.

[0018] OS10 includes a generic printer driver 10a. The generic printer driver 10a is a printer driver that provides standard printing functions offered by Windows. The generic printer driver 10a performs various processes in response to print requests from user applications such as document creation applications 11. The generic printer driver 10a is installed on computer 2 along with OS10. The generic printer driver 10a can also be considered a printing function included with OS10.

[0019] When the document creation application 11 sends a print request to the generic printer driver 10a, the generic printer driver 10a displays a standard Windows print setup dialog 15 on the LCD2e, as shown in Figure 3. This print setup dialog 15 is also called a Print Dialog, Print Setup Dialog, Common Print Dialog, or System Print Dialog. The print request includes document data created by the user using the document creation application 11. For the sake of explanation in this embodiment, the document created by the user is assumed to consist of multiple pages. That is, the document data includes data for multiple pages.

[0020] The print settings dialog 15 typically displays a print settings means 15a, a PSA call button 15b, a print execution button 15c, and a print cancellation button 15d.

[0021] The print setting means 15a displays various items so that the user can input print settings. These items typically include a list box for selecting the printer to use for printing, radio buttons and text boxes for setting the range of pages to print, and a text box for setting the number of copies to print.

[0022] The PSA call button 15b is a button for starting the PSA 12. When the PSA call button 15b is pressed with the printer to be used for printing selected, the general-purpose printer driver 10a starts the PSA 12 and generates multiple spool files based on the document data received from the document creation application 11. A spool file is a specific example of print data. The general-purpose printer driver 10a then saves and stores the generated spool files in the data storage unit 10b.

[0023] Each spool file includes XPS (XML Paper Specification) format data (hereinafter also referred to as XPS data or simply XPS) generated by the general-purpose printer driver 10a based on page data, and a Print Ticket as print setting information indicating the print settings set via the print setting means 15a. Therefore, the general-purpose printer driver 10a generates a spool file containing XPS data and a Print Ticket for each page based on the document data. Note that the Print Ticket is typically the same across multiple spool files. This is because the print setting means 15a is configured to input print settings common to all pages, rather than inputting different print settings for each page.

[0024] Furthermore, if the document creation application 11 generates XPS data, the general-purpose printer driver 10a will not generate the XPS data again, but will instead obtain the XPS data from the document creation application 11. Alternatively, if the document creation application 11 generates data in GDI (Graphics Device Interface) format (hereinafter referred to as GDI data or simply GDI), the general-purpose printer driver 10a will convert the GDI data obtained from the document creation application 11 into XPS data.

[0025] The print execution button 15c is the button that the generic printer driver 10a uses to execute the print command.

[0026] The print cancellation button 15d is used to close the print settings dialog 15.

[0027] Returning to Figure 2, the PSA12 includes a spool file acquisition unit 20, an editing unit 21, and a print execution unit 22.

[0028] The spool file acquisition unit 20 acquires multiple spool files from the general-purpose printer driver 10a. The spool file acquisition unit 20 is one specific example of a print data acquisition means.

[0029] When PSA12 starts up, it displays a print settings dialog 16 on the LCD2e, as shown in Figure 4. Typically, the print settings dialog 16 displays a print setting means 16a, a print execution button 16b, and a print cancellation button 16c.

[0030] The print settings means 16a typically consists of multiple pull-down menus to allow the user to input print settings. As shown in Figure 3, the print settings means 16a displays more items than the number of items that can be set by the print settings means 15a provided by the general-purpose printer driver 10a.

[0031] The editing unit 21 executes multiple editing processes in parallel for each of the multiple spool files. The editing unit 21 is one specific example of an editing means. The parallel processing by the editing unit 21 will be explained below with reference to Figures 5 and 6. Figure 5 shows a timetable when the editing unit 21 executes multiple editing processes in parallel. Figure 6 shows a timetable when the editing unit 21 executes multiple editing processes in parallel.

[0032] In Figures 5 and 6, the editing unit 21 executes three editing processes: a first editing process ha, a second editing process hb, and a third editing process hc. The editing unit 21 also edits three spool files: a first spool file s1, a second spool file s2, and a third spool file s3. The first editing process ha is, for example, a scaling process. Scaling is the process of enlarging or reducing the image shown in the XPS data that is the target of editing. The second editing process hb is, for example, an image correction process. Image correction is the process of applying APF (AutoPhotoFine), ICM (Image Color Matching), manual settings, etc., to the image shown in the XPS data. The third editing process hc is, for example, a header / footer process. Header / footer processing is the process of adding a header or footer to the image shown in the XPS data. The first spool file s1 through the third spool file s3 correspond to pages 1 through 3 of the document, respectively.

[0033] As shown in Figure 5, when the editing unit 21 performs multiple editing processes in parallel (sequential processing, serial processing), first, the editing unit 21 performs the first editing process ha, the second editing process hb, and the third editing process hc on the first spool file s1 in that order. Then, the editing unit 21 performs the first editing process ha, the second editing process hb, and the third editing process hc on the second spool file s2 in that order. Subsequently, the editing unit 21 performs the first editing process ha, the second editing process hb, and the third editing process hc on the third spool file s3 in that order. Therefore, the total time T required for the editing unit 21 to perform all editing processes on all spool files becomes extremely long.

[0034] In other words, if the time required to perform all editing operations (first editing operation ha, second editing operation hb, third editing operation hc) on a single spool file is denoted as time Δt1, then the total time required T is simply (time required Δt1) × (number of spool files). For example, if the document created by the user is 100 pages long, then the total time required T is (time required Δt1) × 100.

[0035] In contrast, as shown in Figure 6, when the editing unit 21 executes multiple editing processes in parallel, first, the editing unit 21 executes the first editing process ha on the first spool file s1. Next, the editing unit 21 executes the second editing process hb on the first spool file s1, and in the meantime, executes the first editing process ha on the second spool file s2. Next, the editing unit 21 executes the third editing process hc on the first spool file s1, and in the meantime, executes the second editing process hb on the second spool file s2 and the first editing process ha on the third spool file s3. In this way, the editing unit 21 executes different editing processes on multiple spool files simultaneously. Therefore, the total time T required for the editing unit 21 to execute all editing processes on all spool files is significantly shorter compared to the case of parallel processing described above.

[0036] That is, if the time required to perform the first editing process ha on one spool file is denoted as time Δt2a, the time required to perform the second editing process hb on one spool file is denoted as time Δt2b, and the time required to perform the third editing process hc on one spool file is denoted as time Δt2c, then the total time required T is approximately (time required Δt2a) × (number of spool files) + time required Δt2b + time required Δt2c. For example, if a document created by a user is similarly 100 pages long, then the total time required T is approximately (time required Δt2a) × 100 + time required Δt2b + time required Δt2c. If we assume that the required times Δt2a, Δt2b, and Δt2c are approximately the same, then the total required time T in parallel processing will be one-third of the total required time T in parallel processing shown in Figure 5.

[0037] Furthermore, the editorial department 21 determines what type of editing process to perform on each spool file based on the Print Ticket contained in each spool file.

[0038] Furthermore, when the editorial department 21 performs multiple editing operations on each spool file, it determines the execution order according to predetermined rules. The following explains the rules used by the editorial department 21 to determine the execution order.

[0039] Editorial Department 21 is configured to execute, as an example, the following editing processes 1 through 17. [Editing Process 1] Stamp Mark Processing: Print marks or words such as "Confidential" or "Important" onto the print data as if they were stamps. [Editing Process 2] Scaling Process: Enlarge or reduce the print size. [Editing Process 3] Layout Process: Print multiple pages on a single sheet of paper. [Editing Process 4] Poster Processing: Divide a single page into sections for printing. [Editing Process 5] Print Orientation Rotation: Select portrait or landscape orientation to print. [Editing Process 6] 180-degree rotation: Print the print data after rotating it by 180 degrees. [Editing Process 7] Borderless Printing: Prints the image without the margins (borders) outside the paper. [Editing Process 8] Automatic Duplex Processing: Performs automatic duplex printing. [Editing Process 9] Horizontal Flip Process: Prints the image horizontally flipped (like a mirror image). [Editing Process 10] Image Correction Process: Apply APF, ICM, manual settings, etc. to the print data and print. [Editing Process 11] Process to make text clearer: Print the text with bolder characters. [Editing Process 12] Header / Footer Processing: Add headers and footers and print. [Editing Process 13] Unit Processing: Print in units of copies. [Editing Process 14] Blank Page Saving Process: Do not print blank pages. [Editing Process 15] Manual Duplex Processing: Perform manual duplex printing. [Editing Process 16] Binding Process: Print like a booklet. [Editing Process 17] Reverse Order Processing: Print in reverse order. Furthermore, the aforementioned decision rules impose the following constraints: • Editing steps 1 through 5 described above must be performed in this order. Editing processes 6 through 11 above must not be executed before editing processes 1 through 5 above. The editing processes 6 through 11 described above may be executed in any order. Editing processes 12 through 17 above must not be executed before editing processes 1 through 11 above. • Editing steps 12 through 17 above must be performed in this order.

[0040] In Figures 5 and 6, the execution order of the first editing process ha, the second editing process hb, and the third editing process hc is determined according to the above-mentioned determination rules.

[0041] Returning to Figure 2, the editing unit 21 includes a thread initiation unit 30. To achieve the parallel processing described above, the thread initiation unit 30 initiates as many editing threads as there are editing processes defined in Print Ticket. Following the examples in Figures 5 and 6, the editing unit 21 initiates a first editing thread 31 capable of executing the first editing process ha, a second editing thread 32 capable of executing the second editing process hb, and a third editing thread 33 capable of executing the third editing process hc. Therefore, it can be said that the PSA 12 includes a first editing thread 31, a second editing thread 32, and a third editing thread 33. The parallel processing described above is achieved by having the first editing thread 31, the second editing thread 32, and the third editing thread 33 simultaneously execute different editing processes on different spool files.

[0042] The print execution unit 22 converts the spool file edited by the editing unit 21 into path data and outputs the path data to the printer 3. The printer 3 then performs printing according to the path data.

[0043] Next, with reference to Figures 7 to 12, the operation of the printing system 1 for realizing the above parallel processing will be explained in detail.

[0044] <Generic Printer Driver 10a> First, as shown in Figure 7, the general-purpose printer driver 10a receives a print request from the document creation application 11 (S100). Next, the general-purpose printer driver 10a displays the print settings dialog 15 on the LCD 2e (S110). Then, when the PSA call button 15b is pressed in the print settings dialog 15 (S120), the general-purpose printer driver 10a starts the PSA 12 (S130). The general-purpose printer driver 10a then repeats the process from step S150 to step S170 for the number of pages in the document data included in the print request. That is, the general-purpose printer driver 10a generates XPS data and a Print Ticket for each page (S150), stores the generated XPS data and Print Ticket in the data holding unit 10b (S160), and sends a generation notification to the PSA 12 (S170). The generic printer driver 10a sends a print job completion notification to the PSA 12 (S190) upon completion of the processing steps S150 to S170 for all pages.

[0045] <psa12> In step S130 of Figure 7, the general-purpose printer driver 10a starts the PSA 12. Then, as shown in Figure 8, the PSA 12 displays the print settings dialog 16 on the LCD 2e (S300). Next, when the print execution button 16b is pressed in the print settings dialog 16 (S310), the PSA 12 repeats the process from steps S330 to S390 for the number of pages in the document data included in the print request. That is, when the PSA 12 receives a generation notification from the general-purpose printer driver 10a (S330), it obtains one spool file (XPS data and Print Ticket) from the general-purpose printer driver 10a (S340) and saves it to the data holding unit 20a (S350). Next, the thread startup unit 30 of the PSA 12 determines whether a thread for editing processing has already been started (S360). If no editing threads are running (S360: NO), the thread startup unit 30 determines which editing threads to start based on the Print Ticket of the spool file acquired by the spool file acquisition unit 20 (S370), starts the determined editing threads (S380), and proceeds to step S390. For the sake of explanation, let's assume that the thread startup unit 30 starts the first editing thread 31, the second editing thread 32, and the third editing thread 33 shown in Figure 2. If no editing threads are running in step S360 (S360: YES), the thread startup unit 30 proceeds to step S390. In step S90, the editing unit 21 sends a notification to the first editing thread 31. Therefore, the editing unit 21 sends a notification to the first editing thread 31 each time the PSA 12 acquires a spool file from the general-purpose printer driver 10a. After completing the processing from steps S330 to S390 for all pages, PSA12 receives a print job completion notification from the general-purpose printer driver 10a (S410), turns on the page end flag (S420), and proceeds to step 500 in Figure 9.

[0046] In step S500 of Figure 9, the print execution unit 22 monitors the first editing thread 31, the second editing thread 32, and the third editing thread 33, and waits until all editing processes are completed for all spool files (S500: NO). When all editing processes are completed for all spool files (S500: YES), the print execution unit 22 retrieves the edited spool files from the third editing thread 33 (S510), generates multiple path data based on the multiple spool files (S520), sends the generated path data to the printer 3 (S530), and terminates the process. As a result, the printer 3 prints the document data generated by the user using the document creation application 11.

[0047] Next, the operations of the first editing thread 31, the second editing thread 32, and the third editing thread 33 will be explained in order. In summary, each XPS data is obtained by the spool file acquisition unit 20 in the order it is acquired, passed from the data holding unit 20a to the first editing thread 31, where the first editing process ha is executed. From the first editing thread 31, it is passed to the second editing thread 32, where the second editing process hb is executed. From the second editing thread 32, it is passed to the third editing thread 33, where the third editing process hc is executed. After that, all XPS data is collected by the print execution unit 22 and converted into path data.

[0048] <First editing processing thread 31> As shown in Figure 10, the first editing processing thread 31 repeatedly executes steps S610 to S660 while condition 1 is true. Condition 1 is a logical expression (the end of page flag is not ON, or the data holding unit 20a of the spool file acquisition unit 20 is holding XPS data).

[0049] The first editing thread 31 first determines whether XPS data exists in the data storage unit 20a of the spool file acquisition unit 20 (S610). If it determines that XPS data exists in the data storage unit 20a of the spool file acquisition unit 20 (S610: YES), the first editing thread 31 proceeds to step S630. On the other hand, if it determines that XPS data does not exist in the data storage unit 20a of the spool file acquisition unit 20 (S610: NO), the first editing thread 31 waits until it receives a notification from the editing unit 21 (S620: NO), and if it receives a notification from the editing unit 21 (S620: YES), it proceeds to step S630.

[0050] Next, in step S630, the first editing thread 31 retrieves XPS data from the data storage unit 20a of the spool file acquisition unit 20 (S630) and saves the retrieved XPS data to the data storage unit 31a (S640). Next, the first editing thread 31 performs the first editing process ha on the XPS data stored in the data storage unit 31a (S650) and sends a notification to the second editing thread 32 (S660). Then, if condition 1 is false, the first editing thread 31 terminates the process.

[0051] <Second editing processing thread 32> As shown in Figure 11, the second editing thread 32 repeatedly executes steps S710 to S760 as long as condition 2 is true. Condition 2 is a logical expression of (the end of page flag is not ON, or the data holding unit 31a of the first editing thread 31 is holding the XPS data, or the processing of the first editing thread 31 has finished).

[0052] The second editing thread 32 first determines whether XPS data exists in the data storage unit 31a of the first editing thread 31 (S710). If it determines that XPS data exists in the data storage unit 31a of the first editing thread 31 (S710: YES), the second editing thread 32 proceeds to step S730. On the other hand, if it determines that XPS data does not exist in the data storage unit 31a of the first editing thread 31 (S710: NO), the second editing thread 32 waits until it receives a notification from the first editing thread 31 (S720: NO), and if it receives a notification from the first editing thread 31 (S720: YES), it proceeds to step S730.

[0053] Next, in step S730, the second editing thread 32 retrieves XPS data from the data storage unit 31a of the first editing thread 31 (S730) and saves the retrieved XPS data to the data storage unit 32a (S740). Next, the second editing thread 32 performs the second editing process hb on the XPS data stored in the data storage unit 32a (S750) and sends a notification to the third editing thread 33 (S760). Then, if condition 2 is false, the second editing thread 32 terminates processing.

[0054] <Third editing processing thread 33> As shown in Figure 12, the third editing processing thread 33 repeatedly executes steps S810 to S850 as long as condition 3 is true. Condition 3 is a logical expression of (the end of page flag is not ON, or the data holding unit 32a of the second editing processing thread 32 is holding the XPS data, or the processing of the second editing processing thread 32 has finished).

[0055] The third editing thread 33 first determines whether XPS data exists in the data storage unit 32a of the second editing thread 32 (S810). If it determines that XPS data exists in the data storage unit 32a of the second editing thread 32 (S810: YES), the third editing thread 33 proceeds to step S830. On the other hand, if it determines that XPS data does not exist in the data storage unit 32a of the second editing thread 32 (S810: NO), the third editing thread 33 waits until it receives a notification from the second editing thread 32 (S820: NO), and if it receives a notification from the second editing thread 32 (S820: YES), it proceeds to step S830.

[0056] Next, in step S830, the third editing thread 33 retrieves XPS data from the data storage unit 32a of the second editing thread 32 (S830) and saves the retrieved XPS data to the data storage unit 33a (S840). Next, the third editing thread 33 performs a third editing process hc on the XPS data stored in the data storage unit 33a (S850). Then, if condition 3 is false, the third editing thread 33 terminates the process.

[0057] The first embodiment has been described above, and the above embodiment has the following features.

[0058] In other words, the print control program that makes computer 2 function as a PSA12 (print extension application) that extends the general-purpose printer driver 10a is configured as follows. PSA12 includes a spool file acquisition unit 20 (print data acquisition means) that acquires multiple spool files (print data) from the general-purpose printer driver 10a, and an editing unit 21 (editing means) that executes multiple editing processes in parallel for each of the multiple spool files. With the above configuration, the time required to execute multiple editing processes for each of the multiple spool files can be significantly reduced.

[0059] Furthermore, the multiple spool files include a first spool file s1 and a second spool file s2. The multiple editing processes include a first editing process ha and a second editing process hb that is different from the first editing process ha. The editing unit 21 executes the first editing process ha and the second editing process hb on the first spool file s1, and the first editing process ha and the second editing process hb on the second spool file s2. With this configuration, multiple editing processes can be executed on all spool files without any omissions.

[0060] Furthermore, the editorial unit 21 includes a first editing thread 31 (first processing means) that executes the first editing process ha, and a second editing thread 32 (second processing means) that executes the second editing process hb. With this configuration, an entity that executes the editing process is provided for each editing process.

[0061] Furthermore, after the first editing thread 31 executes the first editing process ha on the first spool file s1, while the first editing thread 31 is executing the first editing process ha on the second spool file s2, the second editing thread 32 executes the second editing process hb on the first spool file s1. With this configuration, different editing processes are executed simultaneously on different spool files.

[0062] (Second Embodiment) A second embodiment of this disclosure will be described below with reference to Figures 13 to 15. The following description will focus on the differences between this embodiment and the first embodiment, omitting any redundant explanations.

[0063] In this embodiment, the editing unit 21 further includes a processing time measurement unit 34. The processing time measurement unit 34 measures the processing time of each of the multiple editing processes. Specifically, the processing time measurement unit 34 measures the processing time of each of the editing processes 6 to 11, whose execution order can be changed. The processing time measurement unit 34 then stores the measurement results in the result storage unit 34a. The result storage unit 34a stores the measurement results of the processing times of each of the editing processes 6 to 11.

[0064] For example, with respect to editing process 6, the processing time measurement unit 34 measures the processing time of editing process 6 each time it is executed. Therefore, the processing time measurement unit 34 measures the processing time of editing process 6 multiple times. The processing time measurement unit 34 then stores the average value of the processing time of editing process 6 in the result holding unit 34a. The same applies to editing processes 7 to 11.

[0065] Furthermore, when the thread startup unit 30 executes multiple editing processes for each spool file, it executes the editing process with the relatively longer processing time before the editing processes with the relatively shorter processing time. Specifically, the multiple editing processes to be executed for each spool file consist of editing process 7, editing process 8, and editing process 11, with the processing time of editing process 11 being longer than the processing times of editing processes 7 and 8. Also, similar to the first embodiment described above, the thread startup unit 30 starts the first editing thread 31, the second editing thread 32, and the third editing thread 33. In this case, in order to execute editing process 11 before editing processes 7 and 8, the thread startup unit 30 starts the first editing thread 31, the second editing thread 32, and the third editing thread 33 so that the first editing thread 31 executes editing process 11, the second editing thread 32 executes editing process 7, and the third editing thread 33 executes editing process 8.

[0066] The technical significance of this embodiment will be explained with reference to Figures 14 and 15. Figure 14 shows a timetable when an editing process with a relatively long processing time is executed after an editing process with a relatively short processing time. Figure 15 shows a timetable when an editing process with a relatively long processing time is executed before an editing process with a relatively short processing time.

[0067] In Figure 14, editing process h7 corresponds to editing process 7, editing process h8 corresponds to editing process 8, and editing process h11 corresponds to editing process 11. The editing unit 21 executes editing processes h7, h8, and h11 as multiple editing processes. The editing unit 21 also edits the following spool files as the target of editing: the first spool file s1, the second spool file s2, the third spool file s3, the fourth spool file s4, and the fifth spool file s5. The first spool file s1 to the fifth spool file s5 correspond to the first to fifth pages of the document, respectively.

[0068] As shown in Figure 14, if the editing process with a relatively long processing time (editing process 11) is executed after the editing processes with relatively short processing times (editing processes 7 and 8), the time during which the processor 2a is under heavy load (from time t3 to time t6) will be longer. In other words, from time t3 to time t6, the three cores of the processor 2a will generate heat simultaneously. In contrast, as shown in Figure 15, if the editing process with a relatively long processing time (editing process 11) is executed before the editing processes with relatively short processing times (editing processes 7 and 8), the time during which the processor 2a is under heavy load (from time t5 to time t7) will be shorter. In other words, from time t5 to time t7, the three cores of the processor 2a will generate heat simultaneously. Thus, by executing the editing process with a relatively long processing time (editing process 11) before the editing processes with relatively short processing times (editing processes 7 and 8), the load on the processor 2a can be reduced.

[0069] The second embodiment has been described above. The above embodiment has the following features. That is, the editing unit 21 measures the processing time of each of the multiple editing processes and executes the editing process with a relatively longer processing time before the editing process with a relatively shorter processing time. With the above configuration, the time during which the processor 2a is under high load can be shortened, and thus the load on the processor 2a can be reduced.

[0070] Although the present invention has been described above with reference to embodiments, the present invention is not limited thereto. Various modifications to the structure and details of the present invention can be made that are understandable to those skilled in the art within the scope of the invention.

[0071] In the above example, the program can be stored and supplied to the computer using various types of non-transitory computer-readable medium. Non-transitory computer-readable medium includes various types of tangible storage medium. Examples of non-transitory computer-readable medium include magnetic storage media (e.g., flexible disks, magnetic tapes, hard disk drives) and magneto-optical storage media (e.g., magneto-optical disks). Examples of non-transitory computer-readable medium further include CD-ROM (Read Only Memory), CD-R, CD-R / W, and semiconductor memory (e.g., mask ROM; examples of non-transitory computer-readable medium further include PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, and RAM (random access memory)). Alternatively, the program may be supplied to the computer by various types of transient computer-readable medium. Examples of transient computer-readable medium include electrical signals, optical signals, and electromagnetic waves. Temporary computer-readable media can supply programs to a computer via wired communication channels such as electric wires and optical fibers, or via wireless communication channels. [Explanation of Symbols]

[0072] 1…Printing system, 2…Computer, 2a…Processor, 2b…Memory, 2c…Communication interface, 2d…Input interface, 2e…LCD, 3…Printer, 10…OS, 10a…General-purpose printer driver, 10b…Data storage unit, 11…Document creation application, 12…PSA, 15…Print settings dialog, 15a…Print settings means, 15b…PSA call button, 15c…Print execution button, 15d…Print cancellation button, 16…Print settings dialog, 16a…Print settings means, 16b…Print execution button, 16c…Print cancellation button, 20…Spool file acquisition unit, 20a…Data storage unit, 21…Editing unit, 22…Print Print execution unit, 30...Thread startup unit, 31...First editing processing thread, 31a...Data holding unit, 32...Second editing processing thread, 32a...Data holding unit, 33...Third editing processing thread, 33a...Data holding unit, 34...Processing time measurement unit, 34a...Result holding unit, ha...First editing process, hb...Second editing process, hc...Third editing process, h7...Editing process, h8...Editing process, h11...Editing process, s1...First spool file, s2...Second spool file, s3...Third spool file, s4...Fourth spool file, s5...Fifth spool file, T...Total required time, Δt1...Required time, Δt2a...Required time, Δt2b...Required time, Δt2c...Required time

Claims

1. A print control program that enables a computer to function as a print extension application that extends a general-purpose printer driver, The aforementioned print extension application is A print data acquisition means for acquiring multiple print data from the aforementioned general-purpose printer driver, An editing means that performs multiple editing processes in parallel for each of the aforementioned multiple print data, including, Print control program.

2. A print control program according to claim 1, The aforementioned plurality of print data includes a first print data and a second print data, The plurality of editing processes include a first editing process and a second editing process that is different from the first editing process. The editing means performs the first editing process and the second editing process on the first print data, and performs the first editing process and the second editing process on the second print data. Print control program.

3. A print control program according to claim 2, The editing means includes a first processing means for performing the first editing process and a second processing means for performing the second editing process. Print control program.

4. A print control program according to claim 3, After the first processing means performs the first editing process on the first print data, while the second processing means performs the second editing process on the first print data, the first processing means performs the first editing process on the second print data. Print control program.

5. A print control program according to claim 1, The editing means is The processing time for each of the aforementioned multiple editing processes is measured. Of the aforementioned multiple editing processes, the editing process with a relatively longer processing time is executed before the editing process with a relatively shorter processing time. Print control program.

6. A print control program according to claim 1, The aforementioned print extension application is a Print Support Application. Print control program.

7. Generic printer driver and A print extension application that extends the aforementioned general-purpose printer driver, Includes, The aforementioned print extension application is A print data acquisition means for acquiring multiple print data from the aforementioned general-purpose printer driver, An editing means that performs multiple editing processes in parallel for each of the aforementioned multiple print data, including, Print control device.

8. Generic printer driver and A print extension application that extends the aforementioned general-purpose printer driver, including, A control method for a printing control device, The aforementioned print extension application obtains multiple print data from the generic printer driver, The print extension application executes multiple editing processes in parallel for each of the multiple print data sets. Control method.