Printing apparatus, its control method and program

JP7911885B2Active Publication Date: 2026-08-27CANON KK
View PDF 11 Cites 0 Cited by

Patent Information

Application Number
JP2022096756
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-06-15
Publication Date
2026-08-27
Estimated Expiration
2042-06-15

AI Technical Summary

Benefits of technology

【0006】 一部の実施形態によれば、ダウンロード済の印刷データを有効に活用できる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007911885000001
    Figure 0007911885000001
  • Figure 0007911885000002
    Figure 0007911885000002
  • Figure 0007911885000003
    Figure 0007911885000003
Patent Text Reader

Abstract

To effectively activate downloaded print data.SOLUTION: A printer has: a reception part for receiving a print job from a print server for providing a logic printer by an Internet printing protocol (IPP); a print part for performing printing on the basis of the print job; and a storage control part for storing a downloaded part among print data specified by the print job in a storage region. When re-starting to download the print data after download of the print data has been canceled, the reception part downloads a part that is not stored in the storage region among the print data using a range request of a hypertext transfer protocol (HTTP).SELECTED DRAWING: Figure 8
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a printing apparatus, a control method thereof, and a program.

Background Art

[0002] A cloud print service using the cloud has been proposed. The cloud print service provides a logical printer, and a print job for the logical printer is executed by a physical printer associated with the logical printer (Patent Document 1). When a print job is canceled in the physical printer, the print data specified by the print job is canceled from the physical printer. Patent Document 2 proposes that when image data transmitted to a receiving device is discarded, the receiving device complements the lost portion of the data.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Patent Document 2

Summary of the Invention

Problems to be Solved by the Invention

[0004] After a print job is canceled in a physical printer, the same print job may be re-executed. In such a case, if the print data is downloaded again from the beginning, the time until printing starts becomes longer and the communication volume also increases. Some aspects of the present invention aim to provide a technique for effectively utilizing downloaded print data.

Means for Solving the Problems

[0005] According to some embodiments, a printing apparatus comprises: receiving means for receiving print jobs from a print server providing a logical printer via the Internet Printing Protocol (IPP); printing means for performing printing based on the print jobs; and storage control means for storing in a storage area the portion of the print data specified in the print job that has been downloaded. The receiving means, when resuming the download of the print data after the download of the print data has been interrupted, downloads the portion of the print data not stored in the storage area using a range request of the Hypertext Transfer Protocol (HTTP). Furthermore, if the download of the print data is interrupted midway, the storage control means continues to store the portion of the print data that has been downloaded in the storage area if the first condition is met, and deletes the portion of the print data that has been downloaded from the storage area if the second condition is met, the first condition includes at least one of the following: the download of the print data is interrupted due to a communication error, and the download of the print data is interrupted at the instruction of the user of the printing device, and the second condition includes the interruption of the download of the print data due to the cancellation of the print job. A printing device is provided. [Effects of the Invention]

[0006] According to some embodiments, downloaded print data can be effectively utilized. [Brief explanation of the drawing]

[0007] [Figure 1] A schematic diagram illustrating an example configuration of the printing system according to the first embodiment. [Figure 2] A block diagram illustrating an example of the hardware configuration of a computer according to the first embodiment. [Figure 3] A block diagram illustrating an example of the functional configuration of the print server in the first embodiment. [Figure 4] A block diagram illustrating an example of the functional configuration of the information processing device according to the first embodiment. [Figure 5] A block diagram illustrating an example of the hardware configuration of the printing apparatus according to the first embodiment. [Figure 6] A block diagram illustrating an example of the functional configuration of the printing apparatus according to the first embodiment. [Figure 7] A sequence diagram illustrating the overall process of cloud printing in the first embodiment. [Figure 8] A flowchart illustrating an example of the operation of the print data download process in the first embodiment. [Figure 9] A diagram illustrating an example of download status information in the first embodiment. [Figure 10] A flowchart illustrating an example of the operation of the process for printing print data according to the first embodiment. [Figure 11] A diagram illustrating an example of a packet communicated in the first embodiment. [Figure 12] This figure illustrates an example of a screen that displays the execution results of a print job according to the first embodiment. [Figure 13] A flowchart illustrating an example of the operation of the printing apparatus according to the second embodiment. [Figure 14] A flowchart illustrating an example of the operation of the printing apparatus according to the third embodiment. [Figure 15] A flowchart illustrating an example of the operation of the printing apparatus according to the fourth embodiment. [Modes for carrying out the invention]

[0008] The embodiments will be described in detail below with reference to the attached drawings. Note that the following embodiments do not limit the invention as defined in the claims. While the embodiments describe multiple features, not all of these features are essential to the invention, and the features may be combined in any way. Furthermore, in the attached drawings, identical or similar configurations are given the same reference numerals, and redundant descriptions are omitted.

[0009] <First Embodiment> [Example of a printing system configuration] Referring to Figure 1, an example configuration of a printing system according to the first embodiment will be described. The printing system includes, for example, an information processing device 110, printing devices 120 and 121, and a print server 130. The number of components of the printing system is not limited to the example in Figure 1. Furthermore, the printing system may have components not shown in Figure 1.

[0010] The information processing device 110 and the printing device 120 are connected to the same local area network (LAN) 101. The LAN 101 may be a wired LAN, a wireless LAN, or a combination of both. The LAN 101 is connected to a wide area network 103 (e.g., the Internet) through a firewall 102. The wide area network 103 is also connected to a printing device 121 and a printing server 130. The information processing device 110 and the printing device 120 can communicate with each other within the LAN 101 (i.e., without passing through the wide area network 103). In addition, each of the information processing device 110 and the printing device 120 can communicate with the printing server 130 through the LAN 101, the firewall 102, and the wide area network 103. The printing device 121 may be connected to the wide area network 103 through a LAN or a cellular network (e.g., a network compliant with the fourth generation communication standard (4G) or the fifth generation communication standard (5G)). The information processing device 110 may also be connected to the wide area network 103 through a cellular network.

[0011] The printing devices 120 and 121 have a printing function for performing printing based on a print job. In addition to the printing function, the printing devices 120 and 121 may include at least one of a scanner function and a fax function. Such a printing device having a plurality of functions may be called a multifunction printer (MFP). Instead, the printing devices 120 and 121 may be dedicated devices (SFP: Single Function Peripheral) having only the printing function. The printing may be printing on a sheet-like recording medium such as paper, or three-dimensional printing (so-called 3D printing).

[0012] The printing server 130 provides a printing service that transmits a print job to any printing device (e.g., the printing device 120) according to the print job generated by the information processing device 110. For example, the printing server 130 provides a logical printer to the information processing device 110 and accepts a print job for the logical printer. A logical printer is a virtual printing device (e.g., a printer object) provided by the printing server 130. A logical printer may also be called a cloud printer. Similar to the printing devices 120 and 121, the information processing device 110 can also generate a print queue for the logical printer. In contrast to the logical printer, a physical printing device such as the printing devices 120 and 121 may also be called a physical printer. A physical printer may also be called a local printer when it is connected to the same LAN as the information processing device that inputs the print job. In the following description, the logical printer and the physical printer are collectively referred to simply as a printer.

[0013] The printing server 130 may be a server in an on-premises environment connected to the wide area network 103, or may be a server in a cloud computing environment (hereinafter simply referred to as the cloud). The printing service provided by the printing server 130 in the cloud may be called a cloud printing service (hereinafter referred to as CPS). An example of a cloud printing service is Universal Print (registered trademark) provided by Microsoft (registered trademark). In the following description, the case where the printing server 130 is in the cloud will be described. However, the following description also applies similarly to the case where the printing server 130 is in an on-premises environment.

[0014] The information processing device 110 provides a printing function to its user. The information processing device 110 may specify a physical printer (e.g., a printer 120) connected to the same LAN 101 as the output destination, or it may specify a logical printer provided by the print server 130 as the output destination. When a logical printer is specified as the output destination, the physical printer associated with the logical printer (e.g., a printer 120) performs the printing. The information processing device 110 that utilizes CPS may also be called a client or client terminal. Printing performed by submitting a print job to a logical printer may also be called cloud printing. Cloud printing may be performed by a printer 120 connected to the same LAN 101 as the information processing device 110, or by a printer 121 not connected to LAN 101. Printing performed by directly submitting a print job to a physical printer (i.e., within the LAN) may also be called local printing.

[0015] [Example of computer hardware configuration] Referring to Figure 2, an example of the hardware configuration of the computer 200 according to this embodiment will be described. The computer 200 may be used as an information processing device 110 or as a print server 130. The computer 200 may have the components shown in Figure 2.

[0016] The central processing unit (CPU) 201 is a general-purpose processing circuit that controls the overall operation of the computer 200. The random access memory (RAM) 202 is a volatile memory circuit and is used as a temporary storage area such as a work area for processing by the CPU 201. The read-only memory (ROM) 203 is a non-volatile memory circuit that stores programs and data used in the processing of the CPU 201. The storage device 204 is a non-volatile storage device that stores programs and data used in the processing of the CPU 201. The storage device 204 may be, for example, a hard disk drive (HDD) or a solid-state drive (SSD). The storage device 204 may also be called a secondary storage device. The operation of the computer 200 may be realized by the CPU 201 executing a program read from the storage device 204 into the RAM 202.

[0017] The input interface (I / F) 205 is an I / F for exchanging signals with the input device 210. The input device 210 is a device that receives input from the user of the computer 200. The input device 210 may be, for example, a keyboard, a touch panel, a microphone, a mouse, or any combination thereof. The output I / F 206 is an I / F for exchanging signals with the output device 220. The output device 220 is a device that provides information to the user of the computer 200. The output device 220 may be, for example, a display, a speaker, or any combination thereof. The network I / F 207 is an I / F for communicating with devices outside the computer 200. The CPU 201, RAM 202, ROM 203, storage device 204, input I / F 205, output I / F 206, and network I / F 207 are each connected to the system bus 208. In the example in Figure 2, the input device 210 and output device 220 are shown as separate devices from the computer 200. Alternatively, the computer 200 may include an input device 210 and an output device 220.

[0018] [Example of print server functional configuration] Referring to Figure 3, an example of the functional configuration of the print server 130 will be described. The print server 130 may have the functional units shown in Figure 3. The print server 130 may also have functional units not shown in Figure 3. Each functional unit in Figure 3 may be implemented by the CPU 201 executing a program read into the RAM 202. Alternatively, some or all of the functional units in Figure 3 may be implemented by a dedicated processing circuit such as an application-specific integrated circuit (ASIC).

[0019] The registration control unit 301 performs processing for registering logical printers. For example, in response to a registration start request from the printing device, the registration control unit 301 generates a logical printer associated with a physical printer and registers it in the printer information 311. Logical printers registered in the printer information 311 are recognized as printers by the information processing device 110. A physical printer associated with a logical printer may be a physical printer that performs printing according to a print job submitted to the logical printer. A logical printer may be associated with only one physical printer. A physical printer may be associated with only one logical printer, or it may be associated with multiple logical printers.

[0020] The print control unit 302 performs processing related to print jobs for logical printers. For example, the print control unit 302 receives print jobs for logical printers from the information processing device 110 and, based on this, sends print jobs to the physical printer associated with the logical printer. The print control unit 302 may also control events related to print jobs. Events related to print jobs may include, for example, the receipt of a print job. The print control unit 302 may respond with events related to the physical printer in response to receiving an event request from the physical printer.

[0021] The printer management unit 303 manages information about logical printers registered with the print server 130 as printer information 311. Printer information 311 includes information about the capabilities of the physical printer associated with the logical printer, a cloud printer ID uniquely assigned to the logical printer, and information about the print queue where print jobs are spooled.

[0022] The job management unit 304 manages information about print jobs received from the information processing device 110 as job information 312. The job information 312 includes information and status of the print job, and print data specified in the print job.

[0023] The memory control unit 310 stores information in the RAM 202 or storage device 204, or reads information from the RAM 202 or storage device 204, according to instructions from other functional units. In this embodiment, the memory control unit 310 stores printer information 311 and job information 312.

[0024] [Example of Functional Configuration of an Information Processing Device] Referring to Figure 4, an example of the functional configuration of the information processing device 110 will be described. The information processing device 110 may have the functional units shown in Figure 4. The information processing device 110 may also have functional units not shown in Figure 4. Each functional unit in Figure 4 may be implemented by the CPU 201 executing a program read into the RAM 202. Alternatively, some or all of the functional units in Figure 4 may be implemented by a dedicated processing circuit such as an ASIC.

[0025] The input acquisition unit 401 acquires input from the user of the information processing device 110 using the input interface 205. The information output unit 402 outputs information to the user of the information processing device 110 using the output interface 206.

[0026] The registration control unit 403 performs processing to register the logical printer with the print server 130. The print control unit 404 performs processing related to printing by the printer. For example, the print control unit 404 may send a print job to the logical printer registered with the print server 130 in accordance with a print instruction from the user of the information processing device 110. The print control unit 404 may also send a print job directly to a physical printer (i.e., within the same LAN) in accordance with a print instruction from the user of the information processing device 110.

[0027] The printer management unit 405 manages information about printers that the information processing device 110 can submit print jobs to as printer information 411. Printer information 411 includes printer capability information, etc.

[0028] The memory control unit 410 stores information in the RAM 202 or storage device 204, or reads information from the RAM 202 or storage device 204, according to instructions from other functional units. In this embodiment, the memory control unit 410 stores printer information 411.

[0029] [Example of printing device hardware configuration] Referring to Figure 5, an example of the hardware configuration of the printing device 500 according to this embodiment will be described. The printing device 500 may be used as printing device 120 or as printing device 121. The printing device 500 may have the components shown in Figure 5. Since the printing device 500 is a physical printing device, it may also be called a physical printer.

[0030] The CPU 501 is a general-purpose processing circuit that controls the overall operation of the printing device 500. The RAM 502 is a volatile memory circuit used as a temporary storage area such as a work area for processing by the CPU 501. The ROM 503 is a non-volatile memory circuit that stores programs and data used in the processing of the CPU 501. The storage device 504 is a non-volatile storage device that stores programs and data used in the processing of the CPU 501 (e.g., print jobs, image data, setting information). The storage device 504 may be, for example, an HDD or an SSD. The storage device 504 may also be called a secondary storage device. The operation of the printing device 500 may be realized by the CPU 501 executing a program read from the storage device 504 into the RAM 502.

[0031] The printer interface 505 is an interface for exchanging signals with the printer engine 520. The printer engine 520 performs printing based on signals (e.g., image signals and print commands) supplied from the control unit 510 through the printer interface 505. Printing may be electrophotographic printing, which transfers and fixes toner onto paper; inkjet printing, which prints by ejecting ink onto paper; or 3D printing.

[0032] The scanner I / F 506 is an interface for exchanging signals with the scanner engine 530. The scanner engine 530 supplies signals obtained by scanning a document (e.g., image signals) to the control unit 510 through the scanner I / F 506. The CPU 501 may process the image signals supplied from the scanner engine 530 and supply the resulting recorded image signals to the printer engine 520. Alternatively, the CPU 501 may generate image data based on the image signals supplied from the scanner engine 530 and transmit it to an external device.

[0033] The control unit I / F 507 is an interface for exchanging signals with the control unit 540. The control unit 540 is a device that receives input from the user of the printing device 500 and provides information to the user of the printing device 500. The control unit 540 may consist of, for example, a display panel (e.g., a liquid crystal display), a speaker, a touch panel, a keyboard, buttons, a touchscreen, or any combination thereof.

[0034] The network interface 508 is an interface for communicating with devices outside the printing device 500. The control unit 510 is composed of the CPU 501, RAM 502, ROM 503, storage device 504, printer interface 505, scanner interface 506, operation unit interface 507, and network interface 508. Each component included in the control unit 510 is connected to the system bus 509.

[0035] [Example of printing device function configuration] Referring to Figure 6, an example of the functional configuration of the printing device 500 will be described. The printing device 500 may have the functional units shown in Figure 6. The printing device 500 may also have functional units not shown in Figure 6. Each functional unit in Figure 6 may be implemented by the CPU 501 executing a program read from the RAM 502. Alternatively, some or all of the functional units in Figure 6 may be implemented by a dedicated processing circuit such as an ASIC.

[0036] The input acquisition unit 601 acquires input from the user of the printing device 500 using the operation unit I / F 507. The information output unit 602 outputs information to the user of the printing device 500 using the operation unit I / F 507. The image processing unit 603 renders the print job into image data for printing. The printing processing unit 604 prints the image data rendered by the image processing unit 603.

[0037] The registration control unit 605 performs processing to register the logical printer associated with the printing device 500 with the print server 130. The printer management unit 606 manages information about the printing device 500 as printer information 621. The printer information 621 may include, for example, the status of the printing device 500, the capabilities of the printing device 500, and a cloud printer ID uniquely assigned by the print server 130 to the logical printer associated with the printing device 500. The printer information 621 may also include a local printer ID for the information processing device 110 to identify printing devices within the same LAN 101.

[0038] The Cloud Print (CP) control unit 607 performs processing related to Cloud Print. For example, the CP control unit 607 may transfer print data received from the print server 130 to the image processing unit 603. Alternatively, the CP control unit 607 may send an event request to the print server 130.

[0039] The local print (LP) control unit 608 performs processing related to local printing. For example, the LP control unit 608 may respond to a printer search from the information processing device 110. Alternatively, the LP control unit 608 may transfer print data received directly from the information processing device 110 to the image processing unit 603.

[0040] The job management unit 609 manages information related to print jobs as job information 622. Job information 622 may also include the processing status and processing results of the print jobs. Furthermore, the job management unit 609 manages information related to the download status of print data specified in the print job as download status information 623. Details of DL status information 623 will be described later.

[0041] The timer control unit 610 performs time-related control. For example, the timer control unit 610 may notify the user when a set timer expires, and may respond to inquiries from the functional unit of the printing device 500 regarding the current time. The timer may be configurable in increments of, for example, one second.

[0042] The memory control unit 620 stores information in the RAM 502 or storage device 504, or reads information from the RAM 502 or storage device 504, according to instructions from other functional units. In this embodiment, the memory control unit 620 stores printer information 621, job information 622, and DL status information 623. The memory control unit 620 may manage data as a file system. The memory control unit 620 may allocate the storage destination of each data to the storage device 504, which is a non-volatile area, and the RAM 502, which is a volatile area. For example, the memory control unit 620 may store the printer information 621 and job information 622 in the non-volatile area.

[0043] [Overall processing sequence for cloud printing] Referring to Figure 7, the overall processing sequence for performing cloud printing is described. The example in Figure 7 deals with the case where a printer 500 is registered with the print server 130 and a print job is submitted from the information processing device 110 to the logical printer associated with the printer 500. Registering the printer 500 with the print server 130 may also mean registering the logical printer associated with the printer 500 with the print server 130. The printer 500 may be, for example, the printer 120 in Figure 1 or the printer 121. Communication may be performed using the Internet Printing Protocol (IPP). IPP is defined in PWG5100.18, RFC3995, RFC3996, etc.

[0044] In S701, the registration control unit 605 of the printing device 500 sends a printer registration request to the printing server 130 to request that the printing device 500 be registered with the printing server 130, for example, in accordance with instructions from the user. In response to this request, the registration control unit 301 of the printing server 130 registers the logical printer associated with the printing device 500 with the printing server 130.

[0045] In S702, the CP control unit 607 of the printing device 500 sends a printer information notification to the print server 130 to notify it of the attribute information and attribute values ​​supported by the printing device 500. The printer information notification may also be sent using the IPP Update-Output-Device-Attributes operation. The printer management unit 303 of the print server 130 reflects the information notified by the printer information notification in the printer information 311.

[0046] In S703, the CP control unit 607 of the printer 500 registers an event notification to the print server 130. Event notification registration may be performed using the IPP Create-Printer-Subscription operation. In S704, the CP control unit 607 of the printer 500 sends an event confirmation to the print server 130 to confirm the occurrence of an event related to the printer 500. Sending the event confirmation may be performed using the IPP Get-Notification operation.

[0047] In S705, the printer management unit 405 of the information processing device 110 searches for logical printers registered in the print server 130, for example, according to instructions from the user, and adds the found logical printers to the information processing device 110. In S706, the printer management unit 405 of the information processing device 110 obtains the attribute information and attribute values ​​of the added logical printer and reflects them in the printer information 411. The acquisition of the logical printer's attribute information and attribute values ​​may be performed using the IPP's Get-Printer-Attributes operation.

[0048] In S706, the print control unit 302 of the information processing device 110 sends a print job to the print server 130 targeting a logical printer provided by the print server 130, according to the print attributes specified by the user. The print job may also be sent using IPP's Send-Document operation, Print-Job operation, Create-Job operation, etc.

[0049] In S708, the print control unit 302 of the print server 130 sends an event notification to the printer 500 upon receiving a print job. The event notification may be sent using the IPP Notification operation. In S709, the CP control unit 607 of the printer 500 obtains a list of jobs related to the printer 500 from the print server 130 upon receiving the event notification. The job list may be obtained using the IPP Get-Jobs operation.

[0050] In S710, the CP control unit 607 of the printing device 500 retrieves one or more print jobs from the job list (for example, a print job specified by the user). The retrieval of a print job may be performed using the IPP's Fetch-Job operation. The print job may include print data and print settings (for example, attribute values).

[0051] The print processing unit 604 of the printing device 500 prints according to the print job upon receiving it. In S711 and S713, the CP control unit 607 of the printing device 500 notifies printer information according to the processing status of the print job. Notification of printer information may be performed using the IPP Update-Output-Device-Attributes operation. For example, in S711, "printer-state=processing" may be sent as the attribute value, and in S713, "printer-state=idle" may be sent as the attribute value. Also, in S712, the CP control unit 607 of the printing device 500 notifies job information according to the processing status of the print job. Notification of job information may be performed using the IPP Update-Job-Status operation. For example, in S712, "job-state=completed" may be sent as the attribute value. In S714, the print control unit 302 of the print server 130 sends a print completion notification to the information processing device 110 when printing is completed on the printing device 500.

[0052] <Workflow for downloading print data> Referring to Figure 8, an example of the process by which the printer 500 downloads print data from the print server 130 will be described. The operation in Figure 8 may be initiated in response to the printer 500 receiving a print job at S710 in Figure 7. The printer 500 may perform the operation in Figure 8 each time it receives a print job. In the following description, the print job received from the printer 500 at S710 will be referred to as the target job.

[0053] In S801, the CP control unit 607 of the printing device 500 determines whether there is a record of the target job in the DL status information 623. If the CP control unit 607 determines that there is a record of the target job in the DL status information 623 (YES in S801), it proceeds to S802; otherwise (NO in S801), it proceeds to S804.

[0054] A specific example of DL status information 623 will be described with reference to Figure 9. In the example in Figure 9, DL status information 623 is stored in a table format. Each record of DL status information 623 represents a job. DL status information 623 is stored by the storage control unit 620 in a non-volatile area of ​​the printing device 500 (e.g., storage device 504).

[0055] Column 901 represents unique identification information individually assigned to each print job by the print server 130. The CP control unit 607 may determine whether a record for the target job exists in the DL status information 623 based on whether the job ID of the target job is included in column 901. Column 902 represents the file handle value of the print data stored in the file system by the storage control unit 620. The storage control unit 620 stores the print data indicated for the print job in the file system.

[0056] Column 903 represents the data size of the portion of the print data that has already been downloaded. Column 904 represents the total data size of the print data. If the total data size is unknown, the value of column 904 may be "UNKNOWN". Column 905 represents the time when the print job entered a pending state. Column 905 is used in the embodiments described later. Therefore, in this embodiment, column 905 may be omitted.

[0057] If there is no record for the target job in DL status information 623, in S802, the job management unit 609 of the printing device 500 adds a record representing the target job to DL status information 623. Column 901 of this record will be the job ID of the target job. Column 902 of this record will be the file handle newly created by the storage control unit 620 for the print data of the target job. Column 903 of this record will be 0 because the download has not yet started at this point. Column 904 of this record will be the total data size of the print size if it can be obtained from the print server 130, or "UNKNOWN" if it is unknown. Furthermore, the job management unit 609 of the printing device 500 also adds a record representing the target job to job information 622.

[0058] If, in S801, it is determined that there is no record of the target job in the DL status information 623, then in S803, the CP control unit 607 of the printer 500 starts downloading the print data of the target job. On the other hand, if, in S801, it is determined that there is a record of the target job in the DL status information 623, then in S804, the CP control unit 607 of the printer 500 resumes downloading the print data of the target job. As will be described later, if there is a record of the target job in the DL status information 623 in S801, at least a portion of the print data is stored in the printer 500. Therefore, the CP control unit 607 resumes downloading from where it left off. The start and resumption of downloading may also be performed by sending an IPP message using the job ID of the received target job.

[0059] In S805, the CP control unit 607 of the printing device 500 determines whether the download of print data was interrupted. If the CP control unit 607 determines that the download was interrupted (YES in S805), it proceeds to S808; otherwise (NO in S805), it proceeds to S806. The interruption of the download may occur when at least one of the following conditions is met: a communication error between the print server 130 and the printing device 500, and a download interruption instruction from the user of the printing device 500. For example, if the download speed of the print data is low, the user of the printing device 500 may interrupt the download and resume it at a time when the communication bandwidth is not congested, or resume the download using a different communication line.

[0060] In S806, if the download of print data is continuing, the CP control unit 607 of the printing device 500 reflects the download progress in the DL status information 623. Specifically, the CP control unit 607 reflects the size of the data that has been downloaded so far in column 903 of the DL status information 623. The data downloaded from the print server 130 is stored in the RAM 502 or storage device 504 by the storage control unit 620.

[0061] In S807, the CP control unit 607 of the printing device 500 determines whether the download of the print data is complete. If the CP control unit 607 determines that the download is complete (YES in S807), it terminates the process; otherwise (NO in S807), it proceeds to S805. In this way, the determination of whether the download of the print data has been stopped is repeatedly made until the download of the print data is complete.

[0062] The completion of the download may be determined based on whether the size of the downloaded data has reached the total size of the print data. Alternatively, the completion of the download may be determined based on whether the end of the data is indicated in CHUNK communication, which is the technology of the Hypertext Transfer Protocol (HTTP) communication that underlies IPP communication. Furthermore, the completion of the download may be determined by parsing the downloaded data in other ways.

[0063] If it is determined that the download has been aborted, in S808, the CP control unit 607 of the printer 500 updates the job information 622 to indicate that the download of the target job has been aborted. The information output unit 602 of the printer 500 may also notify the user of the printer 500 that the download of the print data has been aborted. In S809, the storage control unit 620 of the printer 500 continues to store the portion of the print data that has already been downloaded. That is, even if the download of the print data is aborted, the storage control unit 620 does not delete the downloaded data. The job management unit 609 also retains the record of the target job in the DL status information 623 without deleting it.

[0064] <Workflow of the printing process for print data> Referring to Figure 10, an example of the process by which the printing device 500 prints print data will be described. The operation in Figure 10 may be started in response to the printing device 500 receiving a print job at S710 in Figure 7. The printing device 500 may perform the operation in Figure 10 each time it receives a print job. In the following description, a print job received from the printing device 500 will be referred to as the target job. The operation in Figure 10 may be performed in parallel with the operation in Figure 8, or it may be started after the operation in Figure 8 is completed.

[0065] In S1001, the CP control unit 607 of the printing device 500 instructs the printing processing unit 604 to print based on the target job. In this instruction, the CP control unit 607 may pass to the printing processing unit 604 a buffer pointer to RAM 502 where the print data is held, or a file handle (column 902) of the file system as the print data. If a file handle is passed, the printing processing unit 604 may use the file handle to read the print data from the file handle. At the time of S1001, the download of the print data may or may not have been completed.

[0066] In S1002, the print processing unit 604 of the printing device 500 determines whether printing is possible based on the target job. If the print processing unit 604 determines that printing is possible (YES in S1002), it proceeds to S1006; otherwise (NO in S1002), it proceeds to S1003. For example, if the printing device 500 experiences an error such as a paper jam, running out of toner, or running out of paper, it may determine that printing is not possible based on the target job.

[0067] In S1003, the information output unit 602 of the printing device 500 asks the user of the printing device 500 whether to cancel printing according to the target job. In S1004, the input acquisition unit 601 of the printing device 500 determines whether it has received a cancellation instruction from the user of the printing device 500 to cancel the target job. If the input acquisition unit 601 determines that it has received a cancellation instruction (YES in S1004), it transitions to S1005; otherwise (NO in S1004), it transitions to S1001. If no cancellation instruction is received from the user, in S1001, the CP control unit 607 of the printing device 500 instructs the printing processing unit 604 to print according to the target job again. In this way, the printing device 500 repeats the printing instruction until the error of the printing device 500 is resolved or the target job is canceled by the user. A second print command may be issued after a predetermined waiting period has elapsed, or after the error in the printer 500 has been resolved. If a cancellation command is received from the user, in S1005, the print processing unit 604 of the printer 500 cancels printing according to the target job.

[0068] If printing is possible according to the target job, in S1006, the CP control unit 607 of the printing device 500 determines whether the download of the print data is complete. If the CP control unit 607 determines that the download is complete (YES in S1006), it proceeds to S1007; otherwise (NO in S1006), it repeats S1006 and waits until the download is complete. The determination of download completion may be made using the same method as in S807. Also, if S807 has been completed first, the CP control unit 607 may use the result in S1006.

[0069] In S1007, the printing processing unit 604 of the printing device 500 determines whether to hold the target job. If the printing processing unit 604 determines to hold the target job (YES in S1007), it proceeds to S1008; otherwise (NO in S1007), it proceeds to S1009.

[0070] "Retained printing" is a technique in which, upon receiving a print request to the printing device 500, the print data is not printed immediately. Instead, the print data is stored in the non-volatile area of ​​the printing device 500, and the paper is ejected according to the user's print command. Even if retained printing is specified at the start of the method shown in Figure 10, if the retained printing specification is canceled at the time of execution of S1007, it is determined that the target job will not be retained.

[0071] In S1008, the print processing unit 604 of the printing device 500 determines whether to release the hold of the target job. If it is determined that the hold should be released (YES in S1008), the print processing unit 604 proceeds to S1001; otherwise (NO in S1008), S1008 is repeated. In S1009, the print processing unit 604 of the printing device 500 performs printing according to the target job.

[0072] In S1010, the CP control unit 607 of the printing device 500 notifies the print server 130 of the status of the target job. Specifically, if the target job is canceled in S1005 according to user instructions, the CP control unit 607 notifies the print server 130 that the target job has been canceled. For example, this notification may be sent as an attribute value of "job-state=cancel" using the IPP's Update-Job-Status operation. Upon receiving this notification, the job management unit 304 of the print server 130 cancels the print job and deletes the print data for the print job from the storage device 204. In S1009, when printing according to the target job is completed, the CP control unit 607 notifies the print server 130 that the target job has been completed. For example, this notification may be sent as an attribute value of "job-state=completed" using the IPP's Update-Job-Status operation. Upon receiving this notification, the job management unit 304 of the print server 130 completes the print job and deletes the print data of the print job from the storage device 204. By sending this notification in S1010, the processing status of the print job is synchronized between the print server 130 and the printing device 500.

[0073] In S1011, the job management unit 609 of the printing device 500 deletes the record of the target job from the DL status information 623, regardless of whether the target job is canceled or whether printing according to the target job is completed. The storage control unit 620 of the printing device 500 also deletes the print data of the target job, regardless of whether the target job is canceled or whether printing according to the target job is completed. For example, if the target job is canceled in S1005 according to user instructions, the storage control unit 620 deletes the data up to the point where the download of the target job was incomplete. Furthermore, the download of the target job is stopped as a result of the print job cancellation. By deleting unnecessary data in this way, the storage area of ​​the printing device 500 is effectively utilized. The job management unit 609 of the printing device 500 also updates the job information 622 according to the execution status of the print job.

[0074] If the download of print data is canceled at S805 in Figure 8, the printer 500 does not notify the print server 130 of the cancellation of the target job or the completion of the target job. Therefore, even if the download of print data is canceled at S805 in Figure 8, the print data for the target job remains stored in the print server 130. Also, as mentioned above, even if the download of print data is canceled at S805 in Figure 8, the portion of the print data for the target job that has already been downloaded remains stored in the printer 500.

[0075] The printer 500 may re-execute the operation shown in Figure 8 for a print job in which the download of print data has been aborted. For example, the printer 500 may re-execute the operation shown in Figure 8 for this print job if the user instructs it to re-execute the download, or if a communication error between the print server 130 and the printer 500 is resolved. In this case, the printer 500 can download the print data from where it left off, thus shortening the time from re-execution to the completion of printing, and also reducing the amount of communication. Furthermore, the printer 500 can effectively utilize its storage capacity by deleting the print data when it receives an explicit cancellation instruction from the user, as in S1004. In addition, the print data is not deleted even if the print job is in a pending state.

[0076] <Packet for downloading print data> Referring to Figure 11, an example of a packet used by the printing device 500 to download print data from the print server 130 is described. Since IPP is based on HTTP, Figure 11 uses an HTTP packet as an example. IPP can communicate using HTTP packets.

[0077] Figure 11(a) shows an example of a packet 1100 that the printing device 500 sends to the printing server 130 to download print data. The header of packet 1100 includes a range field 1101. The range field 1101 is a field for a range request that specifies the range of print data to be downloaded. In the example of packet 1100, the range from 0 bytes to 65535 bytes is specified. As shown in S803 in Figure 8, this range specification is used when downloading print data from the beginning. Alternatively, even for the first download, the printing device 500 may specify an offset range.

[0078] The range field 1101 can also specify a range within the print data. Therefore, as shown in S804 in Figure 8, when downloading print data from a certain point, the printer 500 specifies the range field 1101 excluding the already downloaded portion. This allows the printer 500 to download the print data from a point (offset).

[0079] Figure 11(b) shows an example of packet 1110 that the print server 130 sends to the printer 500 as a response to packet 1100. The header of packet 1110 includes field 1111, which indicates the unit of measurement for the response data. The header of packet 1110 also includes field 1112, which indicates the size of the data contained in the body 1114 of packet 1110. Furthermore, the header of packet 1110 includes field 1113, which indicates the range of data contained in the body 1114 of packet 1100 and the total size of the data. The total size in field 1113 may not exist if the size of the print data has not yet been determined.

[0080] The printing device 500 may establish multiple HTTP connections with the printing server 130 and receive multiple packets with separate offset ranges in parallel. This speeds up the download of print data.

[0081] <Screen displaying the results of the print job> Referring to Figure 12, an example of screen 1200, which displays the execution results of a print job, will be described. The information output unit 602 of the printing device 500 may generate screen 1200 according to instructions from the user and display it on the operation unit 540. Alternatively, the information output unit 602 of the printing device 500 may generate screen 1200 in response to changes in the execution status of the print job (for example, after the execution of S808, S1005, and S1009) and display it on the operation unit 540. Screen 1200 includes information on print jobs related to cloud printing as well as print jobs related to local printing. Screen 1200 shows the status of the print jobs in a table format.

[0082] Column 1201 indicates the start date and time of printing according to the print job. The start date and time may also be the date and time when the printer 500 started printing. Column 1202 indicates the end date and time of printing according to the print job. The end date and time may also be the date and time when the printer 500 finished printing. Column 1203 indicates the name of the print job represented by each record. This name may also be the file name of the print data.

[0083] Column 1204 indicates the status of the print job in the printing device 500. For example, if the download of print data is aborted at S805 in Figure 8 due to a communication error, it may display "Communication Error". Column 1205 indicates the format of the print data and whether the print job is related to cloud printing or local printing. Column 1206 indicates the user operations that can be performed on the print job. For example, the user can input a cancellation instruction for the print job (S1004 in Figure 10) by pressing "Cancel". The user can re-execute the print job by pressing "Print". In this case, as described above, if the print data for the print job has been partially downloaded, the print data will be downloaded from that point.

[0084] <Second Embodiment> A printing apparatus 500 according to the second embodiment will now be described. Descriptions that may be the same as those of the printing apparatus 500 according to the first embodiment will be omitted to avoid duplication. Some printing apparatuses 500 may not have sufficient non-volatile area to store print data. Furthermore, even if sufficient non-volatile area is available, if a large amount of print data remains in the non-volatile area, it may not be possible to use the non-volatile area to download new print data. Therefore, in this embodiment, an upper limit size of the non-volatile area available for downloading print data is set, and print data is downloaded so as not to exceed this upper limit size.

[0085] Referring to Figure 12, the operation of the printing apparatus 500 according to the second embodiment will be described. In addition to the operation of the first embodiment, the printing apparatus 500 according to the second embodiment performs the operation shown in Figure 12. The operation shown in Figure 12 may be performed continuously while the printing apparatus 500 is running. The printing apparatus 500 has a set upper limit size for the non-volatile area available for use with cloud printing. The upper limit size may be fixed according to the size of the non-volatile area (storage device 504) of the printing apparatus 500, or it may be variable based on the capacity of the connected external storage.

[0086] In S1301, the memory control unit 620 of the printing device 500 allows new data to be stored in the non-volatile area for cloud printing. In this case, data related to cloud printing, such as print data, may be stored in the non-volatile area without restriction.

[0087] In S1302, the memory control unit 620 of the printing device 500 determines whether the used capacity of the non-volatile area in cloud printing exceeds the upper limit size. If the memory control unit 620 determines that the used capacity of the non-volatile area in cloud printing exceeds the upper limit size (YES in S1302), it proceeds to S1303; otherwise, it repeats S1302 (NO in S1302).

[0088] In S1303, the memory control unit 620 of the printing device 500 prohibits new storage in the non-volatile area for cloud printing. In this case, data related to cloud printing can be stored in the volatile area (RAM 502) but not in the non-volatile area (storage device 504). Therefore, the print data downloaded in S803 and S805 in Figure 8 is stored only in the volatile area and not in the non-volatile area.

[0089] Furthermore, since retained printing is a function that relies on storing print data in a non-volatile area, retained printing cannot be performed. Therefore, a print job that instructs retained printing will result in an error. For print jobs where print data has already been stored in the non-volatile area, retained printing may still be available.

[0090] In S1304, the memory control unit 620 of the printing device 500 determines whether the capacity of the non-volatile area used in cloud printing is below the upper limit size. If the memory control unit 620 determines that the capacity of the non-volatile area used in cloud printing is below the upper limit size (YES in S1304), it proceeds to S1301; otherwise, it repeats S1303.

[0091] As described above, according to this embodiment, cloud printing can be efficiently performed based on the size of the non-volatile area of ​​the printing device 500.

[0092] <Third Embodiment> A printing device 500 according to the third embodiment will now be described. Descriptions that are similar to those of the printing device 500 according to the first embodiment will be omitted to avoid repetition. Furthermore, this embodiment may be combined with the second embodiment. In the first embodiment, print data is stored in the storage area until it is explicitly deleted by the printing device 500. If print data remains stored for a long time for purposes such as pending printing or download resumption, the storage area capacity cannot be effectively utilized. Therefore, in this embodiment, an upper limit is set on the storage time of print data, and the print data is deleted when this upper limit is exceeded. The upper limit may be a fixed value, or it may be configurable by the user of the printing device 500.

[0093] Referring to Figure 13, the operation of the printing apparatus 500 according to the third embodiment will be described. In addition to the operation of the first embodiment, the printing apparatus 500 according to the third embodiment performs the operation shown in Figure 13. The operation shown in Figure 13 is performed for print jobs for which it is determined that the download of print data has been completed in S807 or S1006, or for which it is determined that the download has been canceled in S805. In the following description, such print jobs will be referred to as target jobs. The printing apparatus 500 may perform the operation shown in Figure 13 in parallel for multiple print jobs.

[0094] In S1401, the timer control unit 610 of the printing device 500 records the time when the download of the target print job is completed or canceled in column 905 of the DL status information 623. This time may also be called the hold start time. The print data of the target job may be stored in the non-volatile area of ​​the printing device 500.

[0095] In S1402, the timer control unit 610 of the printing device 500 determines whether the elapsed time from the start of the hold has reached the upper limit. If the timer control unit 610 determines that the elapsed time from the start of the hold has reached the upper limit (YES in S1403), it proceeds to S1403; otherwise, it repeats S1402 (NO in S1403).

[0096] In S1403, the job management unit 609 of the printing device 500 deletes the record of the target job from the DL status information 623. This also deletes the hold start time recorded in column 905. In addition, the storage control unit 620 of the printing device 500 deletes the print data of the target job. If a print job whose print data has been deleted in this way is instructed to be re-executed or to be held for printing, the printing device 500 will download the print data again from the beginning.

[0097] As described above, according to this embodiment, the memory area of ​​the printing device 500 can be effectively utilized.

[0098] <Fourth Embodiment> A printing apparatus 500 according to the fourth embodiment will now be described. Descriptions that are similar to those of the printing apparatus 500 according to the first embodiment will be omitted to avoid repetition. Furthermore, this embodiment may be combined with the second or third embodiment. In the first embodiment, when a print job cancellation instruction is received from the user at S1004 in Figure 10, the print data is deleted at S1001. Alternatively, in this embodiment, when a cancellation instruction is received from the user, the printing apparatus asks the user whether they want to delete the print data.

[0099] Referring to Figure 15, the operation of the printing apparatus 500 according to the fourth embodiment will be described. This method differs from the method in Figure 10 in that it further includes S1501 and S1502 between S1005 and S1010, but may be the same in other respects.

[0100] In S1501, the information output unit 602 of the printing device 500 asks the user of the printing device 500 whether to delete the portion of the print data of the target job that has finished downloading. In S1502, the input acquisition unit 601 of the printing device 500 determines whether it has received a deletion instruction from the user of the printing device 500 to delete the portion of the print data that has finished downloading. If the input acquisition unit 601 determines that it has received a deletion instruction (YES in S1502), it proceeds to S1010, and if it determines that it has received an instruction to retain the portion of the print data that has finished downloading (NO in S1502), it terminates the process.

[0101] If a delete instruction is received, the printer 500 deletes the print data within the printer 500 and instructs the print server 130 to delete the print data by executing S1010 and S1011 in Figure 10. On the other hand, if a delete instruction is not received, the printer 500 does not execute S1010 and S1011 in Figure 10. As a result, the print data in the printer 500 continues to be stored, and the print data in the print server 130 also continues to be stored. This reduces the amount of data downloaded when a print job using this print data is re-executed.

[0102] <Summary of Embodiments> [Item 1] A printing device, A receiving means that receives print jobs from a print server providing a logical printer via the Internet Printing Protocol (IPP), A printing means that performs printing based on the aforementioned print job, The system includes a storage control means that stores in a storage area the portion of the print data specified in the print job that has been downloaded. The receiving means is a printing device that, when the download of print data is interrupted midway and the download of print data is to be resumed, uses a range request of the Hypertext Transfer Protocol (HTTP) to download the portion of the print data that is not stored in the storage area. [Item 2] The printing apparatus according to item 1, wherein if the download of the print data is interrupted midway, the memory control means continues to store the portion of the print data that has been downloaded in the memory area if the first condition is met, and deletes the portion of the print data that has been downloaded from the memory area if the second condition is met. [Item 3] The first condition includes at least one of the following: the download of the print data is aborted due to a communication error, and the download of the print data is aborted at the instruction of the user of the printing device. The printing apparatus according to item 2, wherein the second condition includes the cessation of the download of the print data as a result of the cancellation of the print job. [Item 4] The first condition includes the print job being canceled by the user of the printing device and the user instructing the device to retain the portion of the print data that has already been downloaded, The printing apparatus according to item 2 or 3, wherein the second condition includes the print job being canceled by the user of the printing apparatus and the user instructing the apparatus to delete the portion of the print data that has been downloaded. [Item 5] The printing apparatus according to any one of items 1 to 4, further comprising notification means for notifying the print server to delete the print data from the print server when the portion of the print data that has been downloaded has been deleted from the storage area. [Item 6] The printing apparatus according to any one of items 1 to 5, wherein the memory control means deletes the print data from the memory area when printing based on the print job is completed. [Item 7] The memory area includes a volatile area and a non-volatile area. The memory control means is When the usage capacity of the non-volatile area in printing using the aforementioned logical printer falls below the upper limit size, new storage in the non-volatile area for that printing is permitted. A printing apparatus according to any one of items 1 to 6, which prohibits new storage in the non-volatile area during printing using the logical printer if the usage capacity of the non-volatile area exceeds the upper limit size. [Item 8] The printing apparatus according to item 1, wherein the memory control means deletes the portion of the print data that has been downloaded from the memory area when the elapsed time since the portion was stored in the memory area reaches an upper limit. [Item 9] A program for causing a computer to function as one of the means of a printing apparatus described in any one of items 1 through 8. [Item 10] A control method for a printing apparatus equipped with printing means that performs printing based on a print job, The process involves receiving print jobs from a print server that provides a logical printer using the Internet Printing Protocol (IPP), and A control method comprising: a step of storing in a storage area the portion of the print data specified in the print job that has been downloaded; and a step of downloading the portion of the print data that is not stored in the storage area using a range request of the Hypertext Transfer Protocol (HTTP) when the download of the print data is to be resumed after the download of the print data has been interrupted midway.

[0103] The invention is not limited to the embodiments described above, and various modifications and variations are possible without departing from the spirit and scope of the invention. Accordingly, claims are attached to disclose the scope of the invention. [Explanation of Symbols]

[0104] 110 Information processing equipment, 120 Printing equipment, 130 Printing servers

Claims

1. A printing device, A receiving means that receives print jobs from a print server providing a logical printer using the Internet Printing Protocol (IPP), A printing means that performs printing based on the aforementioned print job, The system includes a storage control means that stores in a storage area the portion of the print data specified in the print job that has been downloaded. When the download of the print data is interrupted and the download of the print data is to be resumed, the receiving means downloads the portion of the print data that is not stored in the storage area using a range request of the Hypertext Transfer Protocol (HTTP). If the download of the print data is interrupted midway, the storage control means, if the first condition is met, continues to store the portion of the print data that has been downloaded in the storage area, and if the second condition is met, deletes the portion of the print data that has been downloaded from the storage area. The first condition includes at least one of the following: the download of the print data is aborted due to a communication error, and the download of the print data is aborted at the instruction of the user of the printing device. The second condition includes a printing apparatus in which the download of the print data is stopped as a result of the cancellation of the print job.

2. The first condition includes the fact that the print job has been canceled by the user of the printing device, and the user has instructed that the portion of the print data that has finished downloading be retained, The printing apparatus according to claim 1, wherein the second condition includes the print job being canceled by the user of the printing apparatus and the user instructing the apparatus to delete the portion of the print data that has been downloaded.

3. The printing apparatus according to claim 1, further comprising notification means for notifying the print server to delete the print data from the print server when the portion of the print data that has been downloaded has been deleted from the storage area.

4. The printing apparatus according to claim 1, wherein the memory control means deletes the print data from the storage area when printing based on the print job is completed.

5. The memory area includes a volatile area and a non-volatile area. The memory control means is When the usage capacity of the non-volatile area in printing using the aforementioned logical printer falls below the upper limit size, new storage in the non-volatile area for that printing is permitted. The printing apparatus according to claim 1, wherein when the usage capacity of the non-volatile area in printing using the logical printer exceeds the upper limit size, new storage in the non-volatile area in said printing is prohibited.

6. The printing apparatus according to claim 1, wherein the memory control means deletes the portion of the print data that has been downloaded from the memory area when the elapsed time since the portion was stored in the memory area reaches an upper limit.

7. A program for causing a computer to function as one of the means of the printing apparatus according to any one of claims 1 to 6.

8. A control method for a printing apparatus equipped with printing means that performs printing based on a print job, The process involves receiving a print job from a print server that provides a logical printer using the Internet Printing Protocol (IPP), and The process includes storing the portion of the print data specified in the print job that has been downloaded into a storage area, When the download of the print data is interrupted midway and the download of the print data is to be resumed, the process includes using a Hypertext Transfer Protocol (HTTP) range request to download the portion of the print data that is not stored in the storage area, If the download of the print data is interrupted midway, the process includes the following steps: if the first condition is met, the portion of the print data that has finished downloading is kept in the storage area; and if the second condition is met, the portion of the print data that has finished downloading is deleted from the storage area. The first condition includes at least one of the following: the download of the print data is aborted due to a communication error, and the download of the print data is aborted at the instruction of the user of the printing device. The second condition is a control method which includes the cancellation of the download of the print data as a result of the cancellation of the print job.

Citation Information

Patent Citations

  • Original DICOM image downloading method applied to cloud film system

    CN113411389A

  • Print system and recording medium

    JP2001014120A

  • Portable communication terminal, radio base station, and radio communication system

    JP2004297479A

  • Output device, data server, and data download device

    JP2008117349A

  • Printing system, printing service device, service providing device, control method and program

    JP2012133489A