Patent Publication Number: US-9846828-B2

Title: Printing device and method

Description:
RELATED APPLICATIONS 
     This application is a divisional of and claims priority to U.S. patent application Ser. No. 14/571,361, the entirety of which is incorporated by reference herein. 
    
    
     BACKGROUND 
     Printing devices have increased in number and geographic footprint throughout the world and have become increasingly connected to networks. In some cases, printing devices may be able to receive print data in different file formats for redundancy and/or to resolve print errors. 
     However in response to an error, a printing device may handle print data in the respective file formats in an inefficient manner. Thus, a need exists for an efficient system and method for handling print data in different file formats transmitted in response to a print error. 
     SUMMARY 
     In a first aspect, a method is provided. The method includes receiving, at a printing device, print data in a first file format. The print data includes a plurality of pages, and the plurality of pages includes respective pages. The method includes, while the printing device is processing a respective page from the plurality of pages, determining an error condition and responsively transmitting an error message and storing an error page location based on the respective page. The method further includes receiving, at the printing device, the print data in a second file format. The method yet further includes determining a remainder portion and a discard portion of the print data in the second file format based on the error page location. The remainder portion includes at least one respective remainder page. The method additionally includes processing the at least one respective remainder page. 
     In a second aspect, a method is provided. The method includes receiving, at a printing device, print data in a first file format. The print data in the first file format includes a first plurality of pages. The first plurality of pages includes respective pages. The method also includes storing the print data in the first file format. The method additionally includes, while the printing device is processing a respective page from the first plurality of pages, determining an error condition and responsively transmitting an error message and storing an error page location based on the respective page. The method further includes receiving, at the printing device, the print data in a second file format. The print data in the second file format includes a second plurality of pages. The method yet further includes determining a remainder portion and a discard portion of the second plurality of pages based on the error page location. The remainder portion includes at least one respective remainder page. The method also includes causing an error page to be printed from the remainder portion of the print data in the second file format based on the error page location. The method additionally includes causing at least one further page to be printed from the print data in a first file format. The at least one further page includes at least one previously unprinted page from the first plurality of pages. 
     In a third aspect, a printing device is provided. The printing device includes a communication interface and a controller. The controller includes a processor configured to execute instructions. The instructions include receiving, via the communication interface, print data in a first file format. The print data includes a plurality of pages and the plurality of pages includes respective pages. The instructions include, while the controller is processing a respective page from the plurality of pages, determining an error condition and responsively transmitting an error message via the communication interface and storing an error page location based on the respective page. The instructions further include receiving, via the communication interface, the print data in a second file format. The instructions yet further include determining a remainder portion and a discard portion of the print data in the second file format based on the error page location. The remainder portion includes at least one respective remainder page. The instructions additionally include processing the at least one respective remainder page. 
     Other aspects, embodiments, and implementations will become apparent to those of ordinary skill in the art by reading the following detailed description, with reference where appropriate to the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         FIG. 1A  is a schematic block diagram illustrating a system, according to an example embodiment. 
         FIG. 1B  is a schematic block diagram illustrating a system, according to an example embodiment. 
         FIG. 2  is a schematic block diagram illustrating a system, according to an example embodiment. 
         FIG. 3A  is a flow diagram illustrating a method, according to an example embodiment. 
         FIG. 3B  is a flow diagram illustrating a method, according to an example embodiment. 
         FIG. 3C  is a flow diagram illustrating a method, according to an example embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     In the following detailed description, reference is made to the accompanying figures, which form a part hereof. In the figures, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, figures, and claims are not meant to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the scope of the subject matter presented herein. It will be readily understood that the aspects of the present disclosure, as generally described herein, and illustrated in the figures, can be arranged, substituted, combined, separated, and designed in a wide variety of different configurations, all of which are explicitly contemplated herein. 
     I. Overview 
     Printing devices may accept information about print jobs from a number of different sources. For example, printing devices may be connected via wired or wireless means to computers, networks of computers, the Internet, and/or mobile devices. The mobile devices may include, for example, tablet computers, smart phones, smart watches, or other types of computing devices. 
     Occasionally, an error may occur while a print job in a first file format is being transmitted to, or processed by, the printing device. For instance, a memory error, a font error, incomplete print job error, or another type of error may occur such that the print job cannot be fully processed and/or printed. In such a case, the printing device may transmit an error message to the device that sent the print job. In response, the device may resend the print job in a different file format. 
     Previously, the printing device would then print all of the pages associated with the print job in the second file format, even if some pages from the initial print job (sent in the first file format) were printed. Thus, print job errors previously led to a substantial likelihood of wasted time, toner/ink, and paper. 
     Systems and methods are disclosed herein that provide more efficient handling of print jobs that involve errors and multiple file formats. It should be recognized that the print data may be divided into any number of pages, frames, slides, sections, words, or images. During processing or printing of any such divisions, an error may occur. The described method and system may be applied to such situations. 
     As an example, a mobile device may be running an instance of a wireless printing client, such as AirPrint. The wireless printing client may be operable to provide print data to a printing device. However, other means of providing print data to a printing device are possible. The mobile device may begin to send multiple pages of print data in a first file format, such as a Portable Document Format (PDF). In an example embodiment, while sending the print data in the first format, the mobile device may lose communication with the printing device. As a result, a portion of the print data in the first file format may not be completely transmitted to the printing device. In response to receiving incomplete print data (e.g. timing out, etc.), the printing device may transmit or otherwise communicate an error to the mobile device. 
     In response to determining the error condition, the printing device may store an error page location. In the case where the print data was transmitted in a page-by-page, serial manner, the error page location may include, for example, the page number at which the error occurred. The error page location may also include a line number or another way to describe a portion of the print data otherwise unable to be processed and/or printed. 
     Responsive to receiving the error message, the mobile device may send the print data to the printing device in a second file format, such as Universal Raster Format (URF). However, instead of processing and printing all of the pages from the print data in a second file format, the printing device may discard pages from the print data in the second file format that occur before the error page location. In other words, the printing device may discard pages that may have already been processed and/or printed by the printing device. 
     The printing device may then process and/or print the remaining, unprinted, portion of the print data in the second file format. If available, the printing device may subsequently optionally process and/or print one or more previously unprinted pages from the print data in the first file format. That is, in some cases, the printing device may process and/or print a portion of the print data from the second file format and then revert back to the print data in the first file format. In some embodiments, the printing device may switch back and forth between print data file formats on several occasions. 
     II. System Examples 
       FIG. 1A  is a schematic block diagram illustrating a system  100 , according to an example embodiment. System  100  includes a mobile device  102 . Mobile device  102  may include a smart phone, a laptop, a desktop computer, or another type of computing device configured to provide a print job or print data, either directly or indirectly, to a printing device  104 . For example the mobile device  102  may provide print data in a first file format  106 . The first file format may include a particular document format, such as PDF, .doc, .eps, .ps, or another file format. 
     Occasionally, the printing device  104  may determine an error condition related to the transmission, processing, or printing of the print data in the first file format  106 . The error condition may include an incomplete print data transmission, a memory error, corrupted print data, or another issue that may require the printing device  104  to acquire further print data to complete the original print job. In an example embodiment, the error condition may occur while the printing device  104  is processing multi-page print data. For instance, as illustrated in  FIG. 1A , the error condition may occur due to incomplete print data while the printing device  104  is processing page three of a five page document. 
     In an example embodiment, the printing device  104  may process and print page  110  and page  112  from the print data in the first file format  106 . However, an error may occur while processing and/or printing page  114  from the print data in the first file format  106 . Thus, page  114  may be incorrectly printed or not printed at all from the print data in the first file format  106 . 
     In response to determining the error condition, the printing device  104  may store an error page location. That is, the printing device  104  may store the page number or another location reference related to the error condition. In  FIG. 1A , the printing device  104  may store “Page Number 3” as the error page location within a five page document. 
     In response to determining the error condition, the printing device  104  may also transmit an error message  108  to the mobile device  102 . The error message  108  may include information about the error condition and information about the print data. For instance, in the above case where incomplete print data caused an error with a multi-page PDF document, the error message  108  may include the particular error condition (INCOMPLETE PRINT DATA) and the particular filename, e.g. “multi_page_document.pdf”. The error message  108  may include a different reference for the particular print data related to the multi-page PDF document, e.g. print job reference number, a time stamp, a file checksum, etc. In another embodiment, the printing device  104  need not provide details about the determined error, but may request the print data be resent in a second file format. Other types of error messages are possible. In some embodiments, the print data in the first file format  106  may be discarded upon the printing device  104  determining an error condition. 
     In response to receiving the error message  108 , the mobile device  102  may provide the print data in a second file format  109  to the printing device  104 . The print data in a second file format  109  may include print data in an URF file, although other file formats are possible. The print data in the second file format  109  may include print data related to the same multi-page document, but in a different file format than the first file format. 
     Subsequent to receiving the print data in the second file format  109 , the printing device  104  may print pages based on the saved error page location. For instance, as illustrated in  FIG. 1A , the printing device  104  may print page  116 , page  118 , and page  120 , which may represent page three through page five in the multi-page document. 
       FIG. 1B  is a schematic block diagram illustrating a system  150 , according to an example embodiment. System  150  may be similar or identical to system  100 , as described in reference to  FIG. 1A , in some respects. However, page processing and/or printing may vary from that illustrated in  FIG. 1A . Specifically, the printing device  104  may print page  110  and page  112  normally, and then determine an error condition while printing/processing page  114 , as described above. The printing device  104  may retain the print data in the first file format  106 , store an error page location, and transmit an error message to the mobile device  102 . However, as illustrated in  FIG. 1B , the printing device  104  may print page  116  and discard page  118  and page  120  from the print data in the second file format  109 . The printing device  104  may print page  152  and page  154  from the print data in the first file format  106 . In other words, upon determining an error condition while processing and/or printing the print data in the first format  106 , the printing device  104  need not print all of the remaining pages of a multi-page document from the print data in the second file format  109 . Rather, the printing device  104  may revert back to processing and/or printing the previously unprinted pages from the print data in the first format  106  once an error page has been printed. 
       FIG. 2  is a schematic block diagram illustrating a system  200 , according to an example embodiment. The elements of system  200  may include similar or identical elements as in system  100  and system  150  as illustrated and described in reference to  FIGS. 1A and 1B . System  200  may include a computing device  210  communicatively linked to a communication interface  222  of a printing device  220 . The printing device  220  may include a controller  224 . The controller  224  may include a computer with a memory and at least one processor. Additionally or alternatively, the controller  224  may include a plurality of computers, such as a cloud computing system and/or a computer network. 
     The communication interface  222  may be configured to connect with the computing device  210  via a wireless or wired communication link  212 . The communication link  212  may be established in a variety of ways. For example, the communication link  212  may be established via an IEEE 802.11 a, b, g, or n (Wi-Fi) network. Alternatively or additionally, the communication link  212  may be established via cellular data service, radio communications, near-field communications (NFC), infrared communications, RFID, ZIGBEE, BLUETOOTH, or another type of communication link. 
     The at least one processor of the controller  224  may be configured to execute instructions. The instructions include receiving, via the communication interface  222 , print data in a first file format. For instance, the print data may include a multi-page document in a PDF file format. The print data includes a plurality of pages, each of which may be described as a respective page. Generally, the plurality of pages may include any number of pages or another type of division of the print data. 
     The instructions include, while the controller  224  is processing a respective page from the plurality of pages, determining an error condition and responsively transmitting an error message via the communication interface  222  and storing an error page location based on the respective page. Processing the respective pages may include converting the respective pages into a bitmap format. As described above, the determined error condition may include a data error, a memory error, a processing error, or another type of error that causes the printing device  220  to be unable to process and/or print a respective page. Furthermore, the respective page related to the determined error condition may be stored as an error page location. In other words, the error page location may relate to a particular page during which the error was determined. 
     The instructions also include receiving, via the communication interface  222 , the print data in a second file format. The print data may include the same or substantially similar multi-page document but in a different file format. For example, the print data in the second file format may include the multi-page document being an URF file. Other file formats are possible. 
     The instructions additionally include determining a remainder portion and a discard portion of the print data in the second file format based on the error page location. The remainder portion includes at least one respective remainder page. In other words, the controller  224  may determine a portion of the print data in the second format that should be retained (the remainder portion), and a portion that may be discarded (the discard portion). The determination of these portions may be based on the error page location. For example, if the error page location is page three, the remainder portion may be determined to be pages three to five of a five-page document. Accordingly, the discard portion may be determined to be pages one to two. 
     The instructions may further include processing the at least one respective remainder page. In an example embodiment, after determining the remainder portion, the controller  224  may process and print the remaining pages from the remainder portion of the print data in the second file format. 
     Some embodiments include processing and/or printing an error page based on the error page location within the print data in the second file format and then processing and/or printing any remaining unprinted pages from the print data in the first file format. 
     In some embodiments, the discard portion may be skipped, ignored, deleted, or otherwise removed from memory. In yet other embodiments, the discard portion may include the print data in the second file format except for print data in the second file format corresponding to an error page based on the error page location. That is, the controller may discard all of the print data in the second file format with the exception of the particular error page location. 
     In an example embodiment, while the controller is processing a respective page from the plurality of pages, the controller may determine a proper condition and responsively print the respective page. That is, the controller may print the pages in response to determining a respective page has been properly processed. 
     The controller may also be configured to execute instructions such as causing an error page to be printed from the remainder portion of the print data in the second file format based on the error page location and causing at least one further page to be printed from the print data in a first file format. The at least one further page includes at least one previously unprinted page from the plurality of pages. 
     III. Method Examples 
       FIGS. 3A-C  illustrate methods, according to one or more embodiments. The methods include blocks that may be carried out in an order other than that illustrated. Furthermore, various blocks may be added to or subtracted from the described methods within the intended scope of this disclosure. The methods may correspond to steps that may be carried out using some or all of the elements of system  100 , system  150 , and/or system  200 , as illustrated and described in reference to  FIGS. 1A-B  and  FIG. 2 . 
       FIG. 3A  is a flow diagram illustrating a method  300 , according to an example embodiment. Block  302  may include receiving print data in a first file format and initializing a counter to N=1. The print data may be received by a printing device, such as printing device  220  as illustrated and described in reference to  FIG. 2 . The print data may be received in a document file format such as PDF, .doc, .xls, .eps, .ps, .pcl, .jpg, .bmp, .gif, .png, .tiff, or another file format. The file format may include a bitmap or a vector type image. The counter may be initialized at a different number than 1, as long as a page or location reference is stored and/or maintained. 
     Block  304  includes processing page N in the first file format. As an example, the print data may be received as a multi-page PDF document. Thus, according to block  304 , the printing device may process the PDF document page N. Processing may include receiving print data and/or converting the PDF print data into a printable format. Processing may further include spooling the print data into a print job queue for printing via the printing device. Other types of processing are possible. 
     Block  306  includes determining whether an error condition exists. An error condition may be any condition which causes the printing device to be unable to process and/or print at least a portion of the print data. For example, an error condition may arise when a communication link is disconnected before all of the print data in the first format is transmitted by the sending device (e.g. a mobile device) and/or received by the printing device. Other types of error conditions may include memory errors, corrupted print data, etc. The error condition may be determined by a controller, such as controller  224  illustrated and described in reference to  FIG. 2 . 
     Block  308  includes in the case when there is no error condition, print page N in the first file format. In an example embodiment, page N is printed from the PDF print data. 
     Block  310  includes incrementing the counter such that N=N+1. Block  312  includes checking whether all pages of the document have been printed. In some embodiments, the controller may determine that N pages have actually been printed. In other embodiments, the controller may determine that the page X of a document including X pages has been printed. 
     If all pages have been printed, block  314  includes ending the method. 
     Block  316  includes transmitting an error message to a computing device in response to the controller determining an error condition. The error message may include a request to resend the print data in a second file format. The method  300  may include storing an error page location based on the respective page being processed during the error, e.g. page N. Block  318  includes receiving the print data in a second file format. In some embodiments, the second file format may include an URF file. 
     Block  320  includes discarding pages of the print data in the second file format prior to page N. Specifically, a controller may determine a remainder portion and a discard portion of the print data in the second file format. The determination may be made based on the error page location. For example, if the error occurred on page N, the controller may determine the discard portion of the multi-page document to be all pages occurring before page N. Block  322  includes processing and printing pages in the second file format starting at page N and continuing to the end of the document. In some embodiments, the printing of a respective page may occur in response to determining a proper condition during processing of the respective page. The proper condition may correspond to a proper checksum, lack of error condition, etc. After all pages have been printed, the method may end with block  314 . 
       FIG. 3B  is a flow diagram illustrating a method  330 , according to an example embodiment. Block  332  may include receiving print data in a first file format and initializing a page counter, N. In an example embodiment, printing device  220  may receive the print data in the first format from mobile device  210 , as illustrated and described in reference to  FIG. 2 . Further, the first file format may include a multi-page PDF document. 
     Block  334  includes storing the print data in the first file format. For example, the print data may include a multi-page document. In an example embodiment, the print data may be stored in a file storage associated with the printing device  220 . For example, the printing device  220  may include a memory in which the print data may be stored. 
     Block  336  includes processing page N in the first file format. Processing pages may include forming bitmap images for the respective page from the print data. Other types of processing may be performed. 
     Block  338  includes determining whether an error condition has occurred. As described above, an error condition may include, but should not be limited to, incomplete print data, corrupted print data, or another type of error that causes the printing device to not be able to print all pages of the multi-page document. 
     If an error condition is determined, the method proceeds to block  348 , which includes a determination of whether the error condition is the first error related to the present print data. If so, an error message may be transmitted as shown in block  356 . The error message may include a request for the print data to be resent in a second file format. Responsively, the mobile device  210 , or another sending device, may provide the print data in the second file format as provided in block  358 . The print data in the second file format may be created by the mobile device  210 . Alternatively or additionally, the print data in the second file format may be created and/or provided by another server or a cloud server device. In an example embodiment, the mobile device  210  may not support the second file format. In such a scenario, another server device may be configured to support the second file format and create the print data in the second format. The method may continue to block  350 . 
     In the case where the determination in block  348  is false (e.g. not the first error associated with this print data), block  350  provides discarding pages prior to N from the print data in the second file format. That is, pages from the second file format that precede the error condition are not needed and may be ignored, deleted, or otherwise discarded. 
     Block  352  includes processing page N of the print data in the second file format. Again, processing page N may include converting the print data for that respective page into a bitmap image. Other forms of processing are possible. After successful processing, page N may be printed from the print data in the second format as shown in block  354 . 
     Block  340  includes, in the case where no error condition is determined, printing page N in the first file format. Block  342  includes incrementing the page counter such that N=N+1. 
     Block  344  includes determining whether all pages have been printed. If not, the method returns to block  336  to process page N. If all pages have been printed, the method may end with block  346 . 
       FIG. 3C  is a flow diagram illustrating a method  360 , according to an example embodiment. Method  360  may be similar or identical in some respects to method  330 , as illustrated and described in reference to  FIG. 3B . However, in the case where no error condition is determined while processing page N, block  362  may include a determination as to whether print data in the second file format has previously been received by the printing device. If so, block  364  includes discarding page N from the print data in the second file format. That is, print data in the second file format may have been previously received and stored. Due to the fact that no error was determined while processing the print data for page N in the first file format, the corresponding print data in the second file format is not needed. Thus, page N of the second file format may be discarded. 
     Method  360  provides optionally storing the print data in either or both of the first file format and the second file format. As described above, method  360  may include the controller determining a discard portion and a remainder portion of the print data in the second file format. The method optionally provides printing an error page from the remainder portion of the print data in the second file format based on the error page location and printing at least one further page from the print data in the first file format. The at least one further page may include at least one previously unprinted page from the plurality of pages. 
     In some embodiments, the discard portion may be determined to include all of the print data in the second file format except for the print data in the second file format corresponding to the error page. As described above, the error page may be based on the error page location, e.g. error page=page N. 
     Method  360  may further include block  366  which provides that pages prior to N be discarded in scenarios when a first error is determined in block  348 . 
     While various examples and embodiments have been disclosed, other examples and embodiments will be apparent to those skilled in the art. The various disclosed examples and embodiments are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.