Support program

The support program addresses the memory overflow issue in printers by converting non-linearized PDFs to linearized PDFs based on memory conditions, ensuring efficient printing without waiting for the final page.

JP2026022250APending Publication Date: 2026-02-12BROTHER KOGYO KK
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024123744
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-07-30
Publication Date
2026-02-12

AI Technical Summary

Technical Problem

The OS-standard general-purpose print program lacks the ability to convert non-linearized PDF files into linearized PDF files, leading to increased memory usage and potential memory overflow in printers when printing large documents.

Method used

A support program that executes on an information processing device, supporting the general-purpose printing program, determines memory usage conditions and transmits print data in a format allowing the printer to start printing the first page without waiting for the final page, converting to linearized PDF if memory risk is detected.

Benefits of technology

Reduces the likelihood of printer memory overflow by enabling printers to begin printing without waiting for the final page, thereby managing memory usage effectively.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026022250000001_ABST
    Figure 2026022250000001_ABST
Patent Text Reader

Abstract

To provide a technique for preventing a printer from becoming full of memory in an information processor in which an OS standard general-purpose print program is incorporated.SOLUTION: The auxiliary program 42 corresponds to the printer 2 and supports the general-purpose print program 41 of the OS21 in PC1. When the supporting program 42 is activated from the OS21 in response to the print instruction, the supporting program 42 obtains the image from the general-use printing program 41 and determines whether a particular condition regarding the memory usage rate in the printer 2 is satisfied. Then, when it is determined that the predetermined condition is satisfied, the auxiliary program 42 performs control to transmit, to the printer 2, the first print data in the first format which is based on the acquired image data and enables the printer 2 to start printing the received page without waiting for reception of the last page.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The technical field disclosed in this specification relates to a support program that supports control of a printer. [Background technology]

[0002] Portable Document Format (PDF) is a well-known file format for document files. When printing a PDF file, the printer waits for all pages of data to be received before starting printing. Linearized PDF is also known as a PDF that is optimized for web display. When printing a linearized PDF, the printer can start printing the first page without waiting for all pages of data to be received.

[0003] An example of a document disclosing a technology for printing a linearized PDF file on a printer is Patent Document 1. Specifically, Patent Document 1 discloses a configuration in which a printer driver installed on an information processing device converts a non-linearized PDF file into a linearized PDF file. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Japanese Patent Application Publication No. 2018-75826 Summary of the Invention [Problem to be solved by the invention]

[0005] In recent years, a technology has been put into practical use that controls a printer using a standard general-purpose print program that is part of the operating system (OS) and does not use a printer driver provided by the printer vendor. With this technology, when the OS detects a printer, it associates it with the OS's standard general-purpose print program, and then when a print instruction for that printer is received, the OS's standard general-purpose print program generates print data, making it possible to print using the OS's standard general-purpose print program, without using a printer driver provided by the printer vendor.

[0006] However, the above-mentioned OS-standard general-purpose print program does not have some of the functions that printer drivers provided by printer vendors have had up until now. Specifically, it does not have the function to convert a non-linearized PDF file into a linearized PDF file, as disclosed in Patent Document 1. Therefore, when receiving print data that requires receiving all pages, such as a PDF file, the printer's memory is more likely to become full. [Means for solving the problem]

[0007] The support program aimed at solving the above-mentioned problems is as follows: A support program that can be executed by a computer of an information processing device, corresponds to a printer connected to the information processing device, and supports a general-purpose printing program included in an operating system of the information processing device, The computer, When the general-purpose printing program is started from the operating system in response to a print instruction output from an application program included in the information processing device, the print instruction instructing the printer to print an image is given to the general-purpose printing program, an image data acquisition process for acquiring image data representing the image from the general-purpose printing program; a determination process for determining whether a predetermined condition regarding memory usage rate of the printer is satisfied; Execute When it is determined in the determination process that the predetermined condition is satisfied, a first output control process is executed to control transmission to the printer of first print data based on the image data acquired in the image data acquisition process, the first print data being in a first format that allows the printer to start printing the received page without waiting for reception of the final page. It is configured as follows.

[0008] Unlike print data that requires reception of all pages, such as PDF files, the printer can begin printing the first print data in the first format without waiting for the final page to be received, and can receive the remaining pages by discarding the printed data. Therefore, the support program disclosed in this specification determines a predetermined condition related to the printer's memory usage, and if the predetermined condition is met, transmits the first print data in the first format. This reduces the possibility of the printer's memory becoming full, thereby increasing the likelihood that the printer will be able to print.

[0009] A control method for realizing the functions of the above-described device, a computer program, and a computer-readable storage medium storing the computer program are also novel and useful. [Effects of the Invention]

[0010] The technology disclosed in this specification makes it possible to realize a technology that makes it difficult for a printer to become memory full in an information processing device that has a general-purpose print program built in as a standard for the OS. [Brief explanation of the drawings]

[0011] [Figure 1] FIG. 2 is a block diagram showing an outline of the electrical configuration of a PC. [Figure 2] FIG. 10 is a sequence diagram showing a procedure for printer selection and detailed setting. [Figure 3] FIG. 10 is a diagram illustrating an example of a print setting screen. [Figure 4]FIG. 10 is a sequence diagram showing a procedure when an auxiliary program acquires capability information. [Figure 5] FIG. 10 is a diagram illustrating an example of a detailed setting screen. [Figure 6] FIG. 10 is a sequence diagram showing a procedure for executing printing. [Figure 7] 10 is a flowchart showing the procedure of a risk determination process. DETAILED DESCRIPTION OF THE INVENTION

[0012] Hereinafter, a printing system including a personal computer (hereinafter referred to as "PC") that uses the support program of the present embodiment and a printer connected to the PC will be described in detail with reference to the accompanying drawings. This specification discloses the support program executed on the PC.

[0013] [PC configuration] As shown in FIG. 1, the printing system 100 of this embodiment includes a PC 1 and a printer 2. The PC 1 includes a controller 10 including a CPU 11 and a memory 12. The PC 1 is an example of an information processing device. The CPU 11 is an example of a computer. The PC 1 also includes a user interface (hereinafter referred to as "user IF") 13 and a communication interface (hereinafter referred to as "communication IF") 14, which are electrically connected to the controller 10. Note that the controller 10 in FIG. 1 is a general term for hardware and software used to control the PC 1, and does not necessarily represent a single piece of hardware that actually exists in the PC 1.

[0014] The CPU 11 of the PC 1 executes various processes in accordance with programs read from the memory 12 and based on user operations. The memory 12 stores various programs and various data. The memory 12 is also used, for example, as a work area when executing various programs. A buffer provided in the CPU 11 is also an example of the memory 12. Note that the example of the memory 12 is not limited to a ROM, RAM, HDD, etc. built into the PC 1, but may also be a storage medium readable and writable by the CPU 11, such as a recording medium, for example, a CD-ROM, DVD-ROM, etc.

[0015] The user IF 13 includes a display 13a, which is hardware that displays a screen for notifying the user of information, and hardware that accepts operations by the user. Note that the user IF 13 may include a combination of the display 13a capable of displaying information and a mouse, keyboard, or the like that has an input acceptance function, or may include a touch panel that has the functions of the display 13a and an input acceptance function.

[0016] The communication IF 14 includes hardware for communicating with an external device such as the printer 2. The communication IF 14 is compatible with a communication standard such as Ethernet (registered trademark), Wi-Fi (registered trademark), or USB. The PC 1 may be connectable to the Internet via the communication IF 14. The PC 1 may be equipped with multiple communication IFs 14 compatible with multiple communication standards.

[0017] 1, the memory 12 stores various programs and data, including an operating system (hereinafter referred to as "OS") 21 including a general-purpose print program 41, an auxiliary program 42, and an editing application 43. The auxiliary program 42 is an example of a support program. The editing application 43 is an example of an application program.

[0018] OS21 is a multitasking OS that can process multiple tasks in parallel by managing and switching between them. Examples of OS21 include Windows (registered trademark), macOS (registered trademark), Linux (registered trademark), iOS (registered trademark), and Android (registered trademark).

[0019] The OS 21 includes a general-purpose printing program 41. The general-purpose printing program 41 is a standard OS program prepared by the OS 21 vendor and provided as part of the OS 21. In other words, the PC 1 is equipped with the OS 21 that includes the general-purpose printing program 41. The general-purpose printing program 41 is not configured to use printer drivers specific to each printer.

[0020] The generic printing program 41 is a program with the function of printing on multiple models of printers provided by multiple vendors based on user instructions. The generic printing program 41 supports generic functions that enable printing on many printers. Unlike printer drivers specific to each printer, the generic printing program 41 does not support functions specific to each printer or printer driver, especially functions that require complex processing.

[0021] The general-purpose printing program 41 is a program that includes a function to receive image data designated as the print target in a print instruction output from various application programs based on a user's instruction and generate intermediate data based on that image data. The intermediate data is, for example, XPS data. The general-purpose printing program 41 also has a function to generate print data in a format that can be used for printing on various printers based on the intermediate data. The print data is, for example, PWGRaster data or PDF data. The general-purpose printing program 41 also has a function to send the generated print data to the printer designated as the device to execute printing via a communication function provided by the OS 21.

[0022] The auxiliary program 42 is a program or group of programs that executes processing based on instructions from the OS 21 in conjunction with the processing of the general-purpose printing program 41, and is an application program that supports the control of the target hardware. The auxiliary program 42 of this embodiment corresponds to the model of the printer 2 connected to the PC 1, and is provided, for example, by the vendor of the printer 2. The general-purpose printing program 41 launches the auxiliary program 42 corresponding to the printer 2 when the printer 2 is selected as the device to execute printing, when an instruction for detailed print settings is received while the printer 2 is selected, when an instruction to execute printing on the printer 2 is received, etc. The auxiliary program 42 is, for example, called a print support app (abbreviated as PSA) or a hardware support app (abbreviated as HSA).

[0023] The auxiliary program 42 may be a combination of multiple programs that each accept an execution command, or a single program that can execute different processes depending on the command. The auxiliary program may also be a program prepared by a printer vendor for each printer type. For example, an auxiliary program for inkjet printers and an auxiliary program for laser printers may be prepared. A separate auxiliary program may be prepared not only for each printer type, but also for each printer model or series of printer models.

[0024] For example, when a new printer is connected to the PC 1, the OS 21 of the PC 1 can download an appropriate auxiliary program according to the type and model of the connected printer from a server of the printer vendor or storage designated by the OS 21, and install it in the PC 1. The OS 21 associates the identification information of the installed auxiliary program with the printer information of the newly connected printer and stores it in the memory 12.

[0025] The editing application 43 is, for example, a program for creating and editing image data and document data. The editing application 43 may be, for example, Microsoft Word (registered trademark) or PowerPoint (registered trademark), or may be a program provided by the vendor of the printer 2. The editing application 43 is capable of receiving, via the user IF 13, a print execution instruction for causing the printer 2 to execute printing. Note that the editing application 43 is not limited to a program for creating and editing data, and may also be a program having a function for receiving display instructions and print instructions for various types of information, such as map information and web pages, in response to a user request.

[0026] In this embodiment, PC 1 is connected to printer 2 via communication IF 14, as shown in FIG. 1. Printer 2 is a device having at least memory 20, printing mechanism 22, paper transport mechanism 23, and communication IF 24. For example, when printer 2 receives print data from PC 1 or the like via communication IF 24, it transports paper as a print medium using paper transport mechanism 23 and can execute printing based on the print data using printing mechanism 22. Printer 2 may be a device capable of color printing, or a device capable of executing only monochrome printing. Printer 2 may also be a device with a printing function, such as a multifunction device, copier, or fax machine.

[0027] [PC printing process] Next, the procedure for processing related to printing on the printer 2 in the PC 1 of this embodiment will be described. Note that in this embodiment, each process other than user operation basically indicates processing by the CPU 11 in accordance with instructions written in a program such as the auxiliary program 42. In this specification, various processes performed by the controller 10 or the CPU 11 in accordance with programs such as the auxiliary program 42, the general-purpose printing program 41, and the OS 21 may be described, for convenience, as if each program were independently performing various processes. Processing by the CPU 11 also includes hardware control using the API of the OS 21. In this specification, the operation of each program will be described without a detailed description of the OS 21. Also, the term "acquire" is used as a concept that does not necessarily require a request.

[0028] [Printer Selection and Print Settings] First, a first mode of the selection and setting procedure for accepting the selection of the printer to be used for printing and the print settings in the PC 1 will be described with reference to the sequence diagram of FIG.

[0029] The editing application 43 can create and edit text and images based on user instructions. When the user wants to print the text or image being displayed, the user selects print in the editing application 43 (A01). The user can select print, for example, from a menu of operation items provided in the editing application 43. Because the general-purpose printing program 41 is incorporated into the OS 21 of the PC 1, when the editing application 43 accepts the selection of print, it requests the general-purpose printing program 41 of the OS 21 to display a screen for accepting instructions related to printing (A02).

[0030] In response to the request, the general-purpose printing program 41 causes the user IF 13 to display a print setting screen 50 as shown in Fig. 3 (A03). The print setting screen 50 is a screen that accepts user specifications for various print settings that can be accepted by the general-purpose printing program 41. The print setting screen 50 shown in Fig. 3 includes, for example, a printer information field 51, an information display field 52, a setting information field 53, a detailed settings button 54, and a print button 55. Note that the print setting screen 50 may be displayed by the editing application 43.

[0031] The printer information field 51 displays information about the printer selected as the device to perform printing, and is a field that can accept device selection in a list box format. The selectable devices correspond to print queues managed by the OS 21, and Printer 2 is also included in the selectable devices.

[0032] The information display field 52 is a field that displays information specified by an auxiliary program corresponding to the device displayed in the printer information field 51. The setting information field 53 is a field that displays the currently set setting values ​​for some of the print setting items. In the example of FIG. 3, the information display field 52 includes a layout image 521 for the Nin1 items, and the setting information field 53 includes a field that displays the print orientation, a number of copies setting field that displays the setting value for the number of copies, and an Nin1 setting field that displays the setting values ​​for the Nin1 items.

[0033] The advanced settings button 54 is a button for receiving an instruction to display a screen for making detailed print settings. The print button 55 is a button for receiving an instruction to execute printing using the selected device and print settings.

[0034] After displaying the print setting screen 50 on the user IF 13, the general-purpose printing program 41 can accept device selection through an operation in the printer information field 51. When an operation by the user to select printer 2 is accepted (opt:[printer selection], A11), the general-purpose printing program 41 requests display data to be displayed on the display target screen from the auxiliary program 42 corresponding to printer 2 (A12).

[0035] When the auxiliary program 42 is started in response to the request at A12 from the general-purpose printing program 41, it executes a capability acquisition process for acquiring capability information indicating the capabilities of the selected printer 2 from the printer 2 (A13).

[0036] Specifically, in the capability acquisition process, the auxiliary program 42 first requests the general-purpose printing program 41 to acquire capability information (A21), as shown in Fig. 4. Upon receiving the request to acquire capability information from the auxiliary program 42, the general-purpose printing program 41 sends a capability request command requesting capability information to the printer 2, and receives the capability information sent from the printer 2 in response to the capability request command (A22). The general-purpose printing program 41 passes the capability information received from the printer 2 to the auxiliary program 42 (A23). This allows the auxiliary program 42 to acquire the capability information of the printer 2.

[0037] In A22, the general-purpose printing program 41 communicates with the printer 2 via the OS 21, for example, by communication according to IPP (abbreviation for Internet Printing Protocol). Note that instead of making a request to the general-purpose printing program 41, the auxiliary program 42 may use, for example, MIB (abbreviation for Management Information Base) to send a capability request command to the printer 2 without going through the general-purpose printing program 41, and obtain capability information directly from the printer 2. Furthermore, the capability information that the auxiliary program 42 can obtain directly from the printer 2 may include more information than the capability information obtained via the OS 21.

[0038] The capability information acquired from printer 2 in the capability acquisition process of A13 includes information on setting items that can be set as print settings and values ​​that can be set for each setting item. Specifically, the capability information may include information on items related to paper feed trays and output trays that can be used by printer 2, such as information indicating selectable paper feed trays and output trays, and information on the paper size and paper type set for each paper feed tray. Furthermore, the capability information may include information on print resolutions that printer 2 can support, information on image processing functions that printer 2 can execute, information indicating the status of printer 2 such as remaining amounts of consumables, and information indicating default print settings.

[0039] Returning to the explanation of Figure 2, the auxiliary program 42 creates display data based on the acquired capability information (A14) and passes it to the general-purpose printing program 41 (A15). The general-purpose printing program 41 updates the information display field 52 and the setting information field 53 of the print setting screen 50 based on the display data created by the auxiliary program 42 (A16). As a result, selectable options in the setting information field 53 on the print setting screen 50 are configured based on the capability information acquired in A13.

[0040] If the selection of printing in A01 is accepted with printer 2 selected as the device to execute printing, the editing application 43 passes information indicating that printer 2 has been selected to the general-purpose printing program 41. When displaying the print setting screen 50 in A03, the general-purpose printing program 41 selects printer 2 in the printer information field 51 as the initial value of the device to execute printing. In this case, just as when the user selects printer 2 in the printer information field 51, the general-purpose printing program 41 requests the auxiliary program 42 corresponding to printer 2 for display data to be displayed on the target screen (A12), and the auxiliary program 42 executes the processes from A13 to A16.

[0041] After the print setting screen 50 is displayed on the user IF 13, the general-purpose print program 41 can accept an instruction to perform detailed print settings by operating the detailed settings button 54. After the printer 2 is selected, if an operation on the detailed settings button 54 is accepted (opt:[detailed settings], A31), the general-purpose print program 41 passes a detailed settings instruction to the auxiliary program 42 to start accepting detailed print settings (A32).

[0042] When the auxiliary program 42 is started in response to a detailed setting instruction from the general-purpose printing program 41, it executes a capability acquisition process (A33), similar to when a printer is selected. A33 is the same process as A13 described above, and therefore a description thereof will be omitted.

[0043] The auxiliary program 42 causes the user IF 13 to display a detailed settings screen 60 (A34) as shown in FIG. 5, which accepts detailed print settings based on the acquired capability information. The detailed settings screen 60 of this embodiment includes a setting field 61 for accepting changes to various print setting items, a layout image 62 showing the page layout corresponding to the current settings for combined printing, and an OK button 63. The setting field 61 includes, for example, paper type, paper size, paper tray, color, print orientation, layout, arrangement, and number of copies. The detailed settings screen 60 may also include setting items not included in the print settings screen 50. Because the detailed settings screen 60 can accept many setting items, the auxiliary program 42 may accept instructions to switch between setting items using multiple tabs, for example.

[0044] The auxiliary program 42 can change the setting values ​​of various setting items by accepting user operations on the setting field 61 of the detailed setting screen 60. When the auxiliary program 42 accepts a change operation to one setting item in the setting field 61 (A41), it updates the display of the setting value of the setting item for which the change was accepted (A42).

[0045] Furthermore, when the auxiliary program 42 receives an instruction to confirm the print settings by operating the OK button 63 on the detailed setting screen 60 (A45), the auxiliary program 42 stores information about the confirmed print settings in the memory 12 (A46). The auxiliary program 42 passes the information about the confirmed print settings to the general-purpose printing program 41 (A47).

[0046] Upon receiving an operation on the OK button 63, the auxiliary program 42 closes the detailed settings screen 60. As a result, the print settings screen 50 (FIG. 3, etc.) described above is displayed. The auxiliary program 42 may generate new display data according to the print settings received on the detailed settings screen 60 and pass it to the general-purpose printing program 41. The auxiliary program 42 may pass the capability information acquired by A33 to the general-purpose printing program 41. The general-purpose printing program 41 may store the capability information passed from the auxiliary program 42 in the memory 12, or pass it to the editing application 43 and share it with the editing application 43.

[0047] The capability information that the auxiliary program 42 stores in the memory 12 and the capability information that it passes to the general-purpose printing program 41 and the editing application 43 may be information that includes all of the capability information acquired from the printer 2, or may be information that includes only part of the capability information acquired from the printer 2. For example, the capability information passed to the general-purpose printing program 41 and the editing application 43 may be only information related to print settings that can be accepted by the general-purpose printing program 41 and the editing application 43. By passing the capability information of the printer 2 to the general-purpose printing program 41 and the editing application 43 as well, options that match the capabilities of the printer 2 are displayed on the print setting screen 50 so that they can be selected.

[0048] [Print execution] Next, the procedure for executing printing will be described with reference to the sequence diagram in Fig. 6. After the user decides on the image to be printed and the print settings for printer 2, the user inputs a print execution instruction into editing application 43 (B01). When the editing application 43 receives the user's print execution instruction, it determines that it has received an execution instruction to cause printer 2 to print the selected image to the general-purpose printing program 41, since the general-purpose printing program 41 is incorporated into OS 21 of PC 1. The editing application 43 outputs information about the received print instruction to the general-purpose printing program 41 (B02).

[0049] The general-purpose printing program 41 acquires, as print instruction information, image data indicating the image to be printed and information indicating print settings from the editing application 43. Based on the information acquired from the editing application 43, the general-purpose printing program 41 generates intermediate data by converting the format of the image data of the image to be printed into the format of intermediate data (B03). The image data included in the editing application 43 is of various types, and the general-purpose printing program 41 converts the image data to be printed into intermediate data suitable for generating print data. Note that if the image data to be printed is data suitable for generating print data, the generation of intermediate data may be omitted and the image data may be used as is as intermediate data.

[0050] Before generating the intermediate data, the general-purpose printing program 41 may start the auxiliary program 42 corresponding to the selected device, printer 2, and notify the program that print job processing has begun. When started by the general-purpose printing program 41, the auxiliary program 42 can pass information indicating various instructions used when generating the intermediate data to the general-purpose printing program 41 as necessary.

[0051] After generating the intermediate data, the general-purpose printing program 41 outputs an execution instruction to the auxiliary program 42, thereby starting the auxiliary program 42 (B04). When started by the general-purpose printing program 41, the auxiliary program 42 executes a capability acquisition process (B05).

[0052] B05 acquires capability information from printer 2 using the same procedure as A13 described above, but some of the acquired capability information may be different. The capability information acquired in the capability acquisition process of B05 includes information necessary for printing. For example, information about memory 20 of printer 2 includes the memory capacity available for printing. The capability information acquired in the capability acquisition process of B05 also includes information about print formats supported by printer 2. The print format information includes, for example, information indicating whether printer 2 supports linearized PDF. The printer 2 of this embodiment supports PDF and linearized PDF, and is capable of printing based on PDF and linearized PDF print data. The process of B05, which acquires the memory capacity available for printing, is an example of capacity acquisition processing.

[0053] Linearized PDF, also known as PDF optimized for web display, is a file format in which at least the information necessary to print the first page, such as the image data of the first page as well as the objects to be placed on the first page and information indicating their placement, is collected and written at the beginning of the file, separate from the information on other pages. Note that linearized PDFs in which the information for each page is arranged in page order may also exist. Linearized PDF is a file format that allows printer 2 to start printing received pages without waiting for the last page to be received, and is an example of the first format.

[0054] On the other hand, in a PDF that is not linearized, i.e., a PDF that is not linearized, various information can be written at any position within the file regardless of page order. Hereinafter, PDFs that are not linearized will be referred to simply as "PDF." PDF is a file format that allows printer 2 to start printing the first page after receiving the last page, and is an example of a second format.

[0055] After acquiring the capability information, the auxiliary program 42 requests the general-purpose printing program 41 to acquire intermediate data generated by the general-purpose printing program 41 and information on print settings associated with the print instruction (B06). The intermediate data acquired in B06 is image data indicating the image to be printed, and is intermediate data generated by the general-purpose printing program 41 based on the image data acquired from the editing application 43 in B02. The processing in B06 is an example of image data acquisition processing.

[0056] The auxiliary program 42 rearranges the page order of the intermediate data, if necessary, based on the print setting information acquired in B06 and information indicating the sheet transport mode in the printer 2 (B11). The information indicating the sheet transport mode in the printer 2 may be included in the capability information of the printer 2. Alternatively, the auxiliary program 42 may acquire the information indicating the sheet transport mode based on, for example, model information of the printer 2.

[0057] The print setting information includes, for example, information indicating whether reverse order printing, double-sided printing, Nin1 printing, or booklet printing is to be performed. Information indicating the sheet transport mode in the printer 2 also includes, for example, information indicating whether the sheet is to be ejected face-down (printed side down) or face-up (printed side up), and information indicating which side is to be printed first in the case of double-sided printing. The intermediate data created by the general-purpose printing program 41 is often arranged in page order, starting with the first page. The auxiliary program 42 arranges each page of the intermediate data in the order in which they will be printed in the printer 2.

[0058] The auxiliary program 42 generates print data based on the intermediate data (B12). For example, the auxiliary program 42 passes the intermediate data and print setting information to the general-purpose printing program 41 and instructs it to generate print data. The general-purpose printing program 41 then performs necessary processing, such as rasterizing the intermediate data, to generate the print data, which the auxiliary program 42 then receives. Alternatively, the auxiliary program 42 may perform the necessary processing to generate the print data, instead of the general-purpose printing program 41. If the auxiliary program 42 generates the print data, there is a greater degree of freedom compared to when the general-purpose printing program 41 generates the print data, and print data suitable for printing on the printer 2 is more likely to be generated. On the other hand, if the general-purpose printing program 41 generates the print data, the auxiliary program 42 requires less processing, which reduces the program size of the auxiliary program 42. The print data may be in any format that the printer 2 can support. Since the printer 2 of this embodiment supports PDF, the processing in B12 generates, for example, PDF print data. The process in B12 of generating PDF print data from the intermediate data passed from the general-purpose print program 41 is an example of print data acquisition processing.

[0059] If the format of the print data generated in B12 is PDF (opt:[PDF]), the auxiliary program 42 executes a risk determination process (B21) to determine whether there is a risk of the printer 2 becoming memory full based on at least one of the print data generated in B12, the capability information acquired in B05, and the intermediate data and print setting information acquired in B06. B21 is an example of the determination process.

[0060] In order to start printing the first page of a PDF, printer 2 must receive all the way to the last page. This means that the data size of the print data tends to increase, making it easy for memory to become full. Therefore, the risk assessment process in B21 uses a predetermined condition related to memory usage in printer 2 to determine whether there is a risk of memory becoming full. "Memory usage" is a value indicating the ratio of the amount of print data temporarily stored in memory 20 of printer 2 for printing by printer 2 to the memory capacity available for printing by printer 2. The "predetermined condition" may be any condition for determining whether there is a risk of memory becoming full, and a parameter that affects memory usage is used as the condition.

[0061] Details of the risk assessment process will be described with reference to the flowchart in FIG. 7. In the risk assessment process, the auxiliary program 42 first obtains the total number of pages of the images to be printed from the print data generated in B12 or the intermediate data obtained in B06, and determines whether the total number of pages is greater than a predetermined number (S01). The total number of pages of the images to be printed being greater than a predetermined number is an example of a "predetermined condition," the "total number of pages of the images to be printed" being an example of a parameter that affects memory usage, and the "predetermined number" being an example of a first threshold. The greater the total number of pages of the images to be printed, the larger the data size of the print data tends to be, making it more likely that the printer 2 will run out of memory. Therefore, if the total number of pages of the images to be printed is greater than the predetermined number (S01: YES), the auxiliary program 42 determines that there is a "risk" (S11).

[0062] If the total number of pages of the images to be printed is not greater than a predetermined number (S01: NO), the auxiliary program 42 obtains the data size of the PDF print data generated in B12 and determines whether the data size is greater than a predetermined value (S02). The data size of the print data being greater than a predetermined value is an example of a "predetermined condition," the "data size of the print data" being an example of a parameter that affects memory usage, and the "predetermined value" being an example of a first threshold. The larger the data size of the print data, the more likely it is that the printer 2 will become memory-full. Therefore, if the data size of the print data is greater than the predetermined value (S02: YES), the auxiliary program 42 determines that there is a "risk" (S11). Determining there is a "risk" simply means that a flag is set in the information processing device, for example.

[0063] If the data size of the print data is not larger than the predetermined value (S02: NO), the auxiliary program 42 obtains the memory capacity available for printing from the capability information obtained in B05 and determines whether the obtained capacity is less than the predetermined amount (S03). The memory capacity available for printing being less than the predetermined amount is an example of a "predetermined condition," the "memory capacity available for printing" is an example of a parameter that affects memory usage, and the "predetermined amount" is an example of a second threshold. The smaller the memory capacity available for printing, the more likely the printer 2 will become memory-full. Therefore, if the memory capacity available for printing is less than the predetermined amount (S03: YES), the auxiliary program 42 determines that there is a "risk" (S11).

[0064] If the memory capacity available for printing is not less than the predetermined amount (S03: NO), the auxiliary program 42 calculates the data ratio using the following formula (1). Data ratio = Data size of print data / Memory capacity available for printing (Formula 1) Then, it is determined whether the calculated data ratio is greater than a predetermined ratio (S04). A data ratio greater than the predetermined ratio is an example of a "predetermined condition," while the "memory capacity available for printing" and the "data size of print data" are examples of parameters that affect memory usage, and the "predetermined ratio" is an example of a third threshold. The larger the data ratio, the more likely the printer 2 is to become memory-full. Therefore, if the data ratio is greater than the predetermined ratio (S04: YES), the auxiliary program 42 determines that there is a "risk" (S11). Note that the predetermined ratio is, for example, 1, but is not limited to this and may be a value slightly smaller than 1. This is because when the data ratio is close to 1, even if the memory is not full, there is a high possibility that it will become memory-full soon.

[0065] If the data ratio is not greater than the predetermined ratio (S04: NO), the auxiliary program 42 determines that there is "no risk" (S12). After S11 or S12, the risk determination process ends.

[0066] In the risk assessment process shown in FIG. 7, the conditions are assessed in the following order: total page count (S01), print data size (S02), memory capacity (S03), and data ratio (S04). However, the assessment order is not limited to this. Furthermore, the assessment conditions are not limited to all of these; at least one of them may be assessed. Other conditions may also be assessed. For example, the print setting parameters acquired in B06 may be used as a condition. When using print setting parameters, for example, color printing tends to result in a larger print data size than monochrome printing. Therefore, color printing may be set as a condition, and a "risk exists" determination may be made when color printing is set. A "risk exists" determination may also be made when a high resolution is specified. Furthermore, when printing multiple copies, depending on the specifications of printer 2, PC 1 may generate print data for all images required for printing, i.e., images equal to the total number of pages per copy multiplied by the number of copies, which may result in a large print volume. Therefore, if parameters for printing such a large number of copies are specified in the print settings, a "risk exists" determination may be made.

[0067] Returning to the explanation of FIG. 6, if the risk assessment process determines that there is a risk (opt:[risk]), in other words, if the aforementioned flag is set in the information processing device, for example, the auxiliary program 42 converts the PDF print data generated in B13 into linearized PDF (B22). That is, linearized PDF print data is generated based on the PDF print data. The auxiliary program 42 may also pass the PDF print data to the general-purpose print program 41 and request conversion to linearized PDF. If the risk assessment process determines that there is no risk, in other words, if the aforementioned flag is not set in the information processing device, for example, the print data is not converted to linearized PDF and remains as PDF.

[0068] The auxiliary program 42 then passes the print data generated in B12 or the linearized PDF print data converted in B22 to the general-purpose print program 41 and instructs it to send it to the printer 2 (B31). The process of B31, which passes the linearized PDF print data converted in B22 to the general-purpose print program 41, is an example of a first output control process. The process of B31, which passes the print data generated in B12 to the general-purpose print program 41, is an example of a second output control process.

[0069] In response to an instruction from the auxiliary program 42, the general-purpose printing program 41 sends the print data generated in B12 or the linearized PDF print data converted in B22 to the printer 2 and instructs it to print (B32). The printer 2 executes printing based on the received print data (B33). As a result, a printed matter based on the print instruction output from the editing application 43 is generated.

[0070] If the received print data is linearized PDF, the printer 2 can start printing the received pages without waiting for the final page and discard the printed data. This reduces the amount of memory used by the printer 2. On the other hand, if the received print data is PDF, the printer 2 starts printing the first page after receiving the final page and storing the print data for all pages in memory 20. This increases the amount of memory used by the printer 2. Therefore, the auxiliary program 42 performs a risk assessment process to determine conditions based on various parameters that affect memory usage, and if there is a risk of memory fullness, converts the data to linearized PDF. This makes it less likely that the printer 2 will become memory full. Furthermore, if there is no risk of memory fullness, sending PDF print data eliminates the need to generate linearized PDF print data and shortens the time it takes to complete printing all pages.

[0071] In B31, the print data is passed to the general-purpose print program 41, which then transmits it to the printer 2. Alternatively, the auxiliary program 42 may transmit a print command instructing the printer 2 to execute printing and the print data. For example, if the print settings include settings related to image processing that can be executed by the printer 2, the auxiliary program 42 may generate a print command that also includes information about that processing. In this case, the auxiliary program 42 may notify the general-purpose print program 41 of completion information after completing transmission of the print data.

[0072] As explained in detail above, the auxiliary program 42 of this embodiment determines whether a predetermined condition related to memory usage in the printer 2 is met, and if the predetermined condition is met, sends linearized PDF print data to the printer 2. This reduces the possibility that the printer 2 will become memory full, and as a result, increases the possibility that the printer 2 will be able to print.

[0073] It should be noted that the embodiments disclosed in this specification are merely examples and do not limit the present invention in any way. Therefore, the technology disclosed in this specification can naturally be improved and modified in various ways without departing from the gist of the technology.

[0074] Furthermore, for example, the screens displayed on the user IF 13 are merely examples and are not limited to the examples shown in the drawings. Furthermore, the text, object shapes, backgrounds, etc. displayed on each of the illustrated screens may be of any type. Furthermore, the number of printers connected to the PC 1 is not limited to the illustrated examples and may be two or more.

[0075] Furthermore, if the user changes the default printer from another printer to printer 2 via the OS 21 after the print setting screen is displayed by the general-purpose print program 41, the general-purpose print program 41 may also start the auxiliary program 42. Furthermore, the auxiliary program 42 may be started not only when printing is selected, but also when printer 2 is selected as device settings, for example. Even in these cases, the auxiliary program 42 may be able to execute a procedure for updating the capability information.

[0076] Furthermore, in the embodiment, the auxiliary program 42 acquires intermediate data from the general-purpose printing program 41 and generates PDF print data or linearized PDF print data based on the intermediate data, but the intermediate data acquired from the general-purpose printing program 41 may be PDF, in which case the acquired intermediate data may be used as print data as is.

[0077] Furthermore, in the embodiment, if the risk assessment process determines that the print data is "no risk," the auxiliary program 42 sends the print data to the printer 2 in PDF format. However, the print data may be converted to linearized PDF or to a different format than linearized PDF. However, the printer 2 supports PDF and is likely to be able to print the print data. Conversion to another format may also take time. Therefore, not converting from PDF to another format can shorten the time it takes to complete printing of all pages.

[0078] In the embodiment, only the printing operation is described in detail as the operation of the auxiliary program 42, but the auxiliary program 42 may have other roles as well. The program that executes the processing of this embodiment is not limited to the auxiliary program 42, and may be any program that receives instructions from the OS 21 or the general-purpose print program 41 when printing using the general-purpose print program 41. For example, it may be a print workflow application (Print workflow) whose specifications have been made public by Microsoft.

[0079] The processes disclosed in the embodiments may be executed by hardware such as a single CPU, multiple CPUs, or ASIC, or a combination thereof. The processes disclosed in the embodiments may be realized in various ways, such as a recording medium on which a program for executing the processes is recorded, or a method. [Explanation of symbols]

[0080] 1 PC 2. Printer 11 CPU 13 User Interface 21 OS 41 General-purpose printing program 42 Subsidy Programs

Claims

1. A support program that can be executed by a computer of an information processing device, corresponds to a printer connected to the information processing device, and supports a general-purpose printing program included in an operating system of the information processing device, The computer, When the general-purpose printing program is started from the operating system in response to a print instruction output from an application program included in the information processing device, the print instruction instructing the printer to print an image is given to the general-purpose printing program, an image data acquisition process for acquiring image data representing the image from the general-purpose printing program; a determination process for determining whether a predetermined condition regarding memory usage rate of the printer is satisfied; Execute When it is determined in the determination process that the predetermined condition is satisfied, a first output control process is executed to control transmission to the printer of first print data based on the image data acquired in the image data acquisition process, the first print data being in a first format that allows the printer to start printing the received page without waiting for reception of the final page. A support program configured to:

2. 2. The support program according to claim 1, The computer, If it is determined in the determination process that the predetermined condition is not satisfied, a second output control process is executed to control transmission to the printer of second print data based on the image data acquired in the image data acquisition process, the second print data being in a second format that allows the printer to start printing the first page after receiving the last page. A support program configured to:

3. 3. The support program according to claim 2, The computer, When the printing instruction is received and the printer is started from the operating system, a print data acquisition process is executed to acquire the second print data in the second format based on the image data acquired in the image data acquisition process. When it is determined in the determination process that the predetermined condition is satisfied, in the first output control process, the first print data is generated based on the second print data in the second format acquired in the print data acquisition process, and the generated first print data is controlled to be transmitted to the printer; If it is determined in the determination process that the predetermined condition is not satisfied, the second output control process controls so that the second print data in the second format acquired in the print data acquisition process is transmitted to the printer. A support program configured to:

4. The support program according to claim 2 or 3, the first format is linearized PDF, the second format is a non-linearized PDF; A support program configured to:

5. 2. The support program according to claim 1, In the determination process, a determination is made as to whether or not a predetermined condition is satisfied, the predetermined condition being that the print volume based on the image data acquired in the image data acquisition process exceeds a first threshold value; A support program configured to:

6. 6. The support program according to claim 5, the print volume is the total number of pages of the image shown in the image data acquired in the image data acquisition process, In the determination process, When the total number of pages exceeds a predetermined number of pages that is the first threshold, it is determined that the predetermined condition is satisfied. A support program configured to:

7. 6. The support program according to claim 5, the print volume is a data size of print data based on the image data acquired in the image data acquisition process, The computer, When the printer is started from the operating system in response to the print instruction, before executing the determination process, executes a print data acquisition process to acquire second print data based on the image data acquired in the image data acquisition process, the second print data being in a second format that allows the printer to start printing the first page after receiving the last page, In the determination process, When the data size of the second print data acquired in the print data acquisition process exceeds a predetermined data size serving as the first threshold, it is determined that the predetermined condition is satisfied. A support program configured to:

8. 2. The support program according to claim 1, The computer, It is possible to execute a capacity acquisition process for acquiring the memory capacity available for printing in the printer, In the determination process, When the capacity acquired in the capacity acquisition process is smaller than a second threshold, it is determined that the predetermined condition is satisfied. A support program configured to:

9. 2. The support program according to claim 1, The computer, When the printing instruction is issued and the operating system starts the computer, before the determination process is executed, a print data acquisition process for acquiring second print data based on the image data acquired in the image data acquisition process, the second print data being in a second format that allows the printer to start printing the first page after receiving the last page; a capacity acquisition process for acquiring a memory capacity available for printing in the printer; Execute In the determination process, When a ratio of the data size of the second print data acquired in the print data acquisition process to the capacity acquired in the capacity acquisition process is greater than a third threshold, it is determined that the predetermined condition is satisfied. A support program configured to:

Citation Information

Patent Citations

  • Image processing and error handling system as well as method for printing linearized and non-linearized portable document format (PDF) file

    JP2018075826A