fig1 illustrates an example printing system for practicing embodiments of the present invention . in this example embodiment , the printing system includes a host computer 10 which typically comprises keyboard 46 and mouse 44 as input devices communicatively connected to the computer &# 39 ; s desktop interface device 28 . the interfaces illustrated in fig1 can include usb interfaces and other wired connections , as well as wireless connections via wi - fi or cellular . the term “ host computer ” or “ host pc ” is intended to include any data processing device , such as a server , desktop computer , pc , a laptop computer , a mainframe computer , a router , a personal digital assistant , a blackberry , or any other device for computing , classifying , processing , transmitting , receiving , retrieving , switching , storing , displaying , measuring , detecting , recording , or reproducing any form of information , intelligence or data for any purpose whether implemented with electrical , magnetic , optical , or biological components , and otherwise . the phrase “ communicatively connected ” is intended to include any type of connection or transmission media , whether wired , wireless , or both , between devices , computers , or programs in which data may be communicated . output from host computer 10 is typically presented on a video display 52 , which may be communicatively connected to the computer 10 via the display interface device 24 . internally , the computer 10 contains components such as cpu 14 and computer - accessible memories , such as read - only memory 16 , random access memory 22 , and a hard disk drive 20 , which may retain some or all of the image data , page data , print documents , character data , and programming referred to herein . the phrase “ computer - accessible memory ” is intended to include any computer - accessible data storage device , whether volatile or nonvolatile , electronic , magnetic , optical , or otherwise , including but not limited to , floppy disks , hard disks , compact discs , dvds , flash memories , such as usb compliant flash drives , for example , roms , and rams . the cpu 14 communicates with other devices over a data bus 12 . the cpu 14 executes software stored on , for example , hard disk drive 20 . in addition to fixed media such as a hard disk drive 20 , the host computer 10 may also contain computer - accessible memory drives for reading and writing data , such as page print image data , from and to removable computer - accessible memories . this may include a cd - rw drive 30 for reading and writing various cd media 42 as well as a dvd drive 32 for reading and writing to various dvd media 40 . the printer 50 , such as described herein is a dye diffusion thermal transfer printer communicatively connected to a printer interface device 26 for communicating with processor 14 over data bus 12 . the connection between the thermal printer 50 and the printer interface device 26 serves as a two way communication channel between the printer and the host computer . the printer 50 includes a supply of receiver media , typically in rolled form , and preferably includes an exit tray 28 for holding a plurality of printed receiver media sheets . printer 50 typically includes a buffer memory for storing print information , for example such as postscript data , for formatting documents to be printed . in a preferred embodiment of the present invention , printer 50 incorporates memory sufficient to store print data for a plurality of pages of a print job and a processor sufficient to selectively sequence pages of the print job for printing and for controlling communications and all components of the printer as illustrated herein . additional information can be stored for each type and size of media , including a finish of media , for example . the printer preferably includes selectable printing options such as duplex and simplex printing . these selectable options can be controlled by user input to the computer system via the mouse 44 or keyboard 46 illustrated , and as confirmed by a convenient graphical user interface on video display 52 . a digital scanner 6 or other image capture device such as a digitizing tablet or a camera can be communicatively connected to the computer 10 through , for example , the usb interface device 34 to transfer image from the scanner 6 to the computer &# 39 ; s hard disk drive or other connected memory devices . finally , the computer 10 can be communicatively connected to an external network 60 via a network connection device 18 , thus allowing the computer to access digital objects and media assets from other computers , devices , or data - storage systems communicatively connected to the network . a collection of print documents , and / or media assets can reside exclusively on the hard disk drive 20 , compact disc 42 , dvd 40 , or on remote data storage devices , such as a networked hard drive accessible via the network 60 , or on other local memory devices such as a thumb drive . a collection of digital objects and documents can also be distributed across any or all of these storage locations . a collection of digital objects and documents may be represented by a database that uniquely identifies individual digital objects ( e . g ., such as a print job ) and their corresponding location ( s ). it will be understood that these digital objects can be media objects or non - media objects . media objects can be digital images , such as those captured by scanner 6 . media objects could also include files produced by graphic , text or animation software . for creating a two - sided or duplex photo book , the preferred method of printing outlined above is critical for reduction of image artifacts during photo book creation on dye diffusion thermal transfer printers , and also results in improved through - put . however , in implementing this preferred method of printing , the page printing sequence must be modified in order to produce a sequentially paged photo book that is assembled from the printed sheets output by the printer into the exit tray . the typical print job printing sequences discussed above are appropriate to support a non - preferred method of always printing side a on tph 1 first , and then side b on tph 2 second , for every print job . if either of these sequences is used for the preferred method of printing using two print heads , where each next two - sided print is printed first on the same thermal print head and paper side as was printed last on the previous print , the photo book page order will be incorrect . a preferred method for printing requires the following printing order : new print sheet , page 10 951 ( tph 1 ), page 9 950 ( tph 2 ); new print sheet , page 7 940 ( tph 2 ), page 8 941 ( tph 1 ); new print sheet , page 6 931 ( tph 1 ), page 5 930 ( tph 2 ); new print sheet , page 3 920 ( tph 2 ), page 4 921 ( tph 1 ); new print sheet , page 2 911 ( tph 1 ), page 1 910 ( tph 2 ), which results in the same sheet stack arrangement in the exit tray as shown in fig9 . this page order results in the last printed sheet that is ejected into the print catcher tray being the first sheet of the photo book , and so the face - up page order of the finished print stack is correct . it should be noted that tph 2 prints all the upward facing pages of the print stack in this sequence and so prints the odd - numbered pages . an alternate preferred print job printing sequence would be : page 1 ( tph 1 ), page 2 ( tph 2 ), page 4 ( tph 2 ), page 3 ( tph 1 ), page 5 ( tph 1 ), page 6 ( tph 2 ), page 8 ( tph 2 ), page 7 ( tph 1 ), page 9 ( tph 1 ), page 10 ( tph 2 ), which would result in the photo book being face - down in the print catcher tray stack , but would still be in proper page order . in this case , tph 1 prints the odd - numbered pages . sequencing becomes more complicated when a print job contains an odd number of duplex sheets for printing , as in these examples discussed thus far , because the next print job &# 39 ; s printing sequence must be changed to utilize a preferred method of an embodiment of the present invention . in the example shown in fig9 , the last side printed was page 1 910 , side b , printed on tph 2 , for a face - up print stack . so in order to continue in the preferred method for the next print job , the next page to be printed ( which is the first page of the next print job ) should be printed on side b using tph 2 again . note that this is different from the first page printed of the previous print job which used tph 1 for side a . the print job printing sequence for this next photo book , for a face - up print stack , is : page 9 ( tph 2 ), page 10 ( tph 1 ), page 8 ( tph 1 ), page 7 ( tph 2 ), page 5 ( tph 2 ), page 6 ( tph 1 ), page 4 ( tph 1 ), page 3 ( tph 2 ), page 1 ( tph 2 ), page 2 ( tph 1 ). each print job printing sequence is different , depending on which side and head was used last in the previous print job . similarly , if a one - sided ( simplex ) print job is next in the print queue , the preferred method to minimize the printer generated roller artifact and to maximize throughput is to print all simplex prints on the same thermal print head and paper side as the last page of the previous print job . this may affect which print job printing sequence should be used for the next duplex print job , depending on which side and head was used last . an additional complication can occur when using the preferred printing method to minimize printer generated drive roller artifacts . if a jam , out of media condition , or other problem , occurs during printing , the logic for the page sequencing may become incorrect . this may require the paper to be cleared and printing job to be re - started . the solution for maintaining proper photo book page order while using the preferred printing method , of starting each duplex print on the same side as was printed last for the previous print , involves the host computer querying the printer to determine which side ( side a on tph 1 or side b on tph 2 ) the paper will be staged at the time it is ready to begin the next print . the host pc can then generate and send the image data in the proper sequence based on which side will be printed first . this solution adequately addresses the complications posed by odd numbers of sheets in a print job , simplex prints , and also the additional complication caused by a jam or other printer error . with reference to fig1 , communications between the host computer and the printer , which forms the printing system illustrated in fig1 , will now be described . the host computer 10 , having internal components as described above receives data from data input sources via , for example , the usb 2 . 0 communication protocol such as image data coming in from an input source and stores the data at step 171 . internal data processing is performed by the host computer at step 172 , wherein software takes the received image data and performs certain tasks with the image data such as color correction . the image data moves from the internal image data processing to the printer processing stage at step 173 . at step 173 the processed image data is sent from the host computer to the printer . this can be done through various means such as usb 2 . 0 communication protocol . the image data from the host computer to the printer represents pages in a preferred sequence which can be stored on the printer &# 39 ; s image buffer . once the image buffers are emptied , they can accept more image data from the host computer . the usb 2 . 0 communication protocol allows for constant communication between the host and the printer . fig1 illustrates a flow chart for a printing sequence according to a preferred embodiment of the present invention , wherein the host pc queries the printer and the printer responds to the host pc . step 200 represents the host to printer data processing function similar to step 173 of fig1 . image data is extracted from the last two pages of remaining print job from the host internal data processing at step 201 . the host computer then queries the printer for the print paper location in the printer at step 202 . at step 203 the query / communication is transmitted from the host computer to the printer , and at step 204 the printer responds to the host computer with the print paper location . step 205 represents a decision point branching to either thermal print head 1 ( tph 1 ) or thermal print head 2 ( tph 2 ). if the printer reported back that the paper position is located on the side of thermal print head 1 using sensors 124 or 130 or both , which also means that the paper is physically closer to tph 1 due to the straight paper path leading to tph 1 and traversed by the paper when the paper is fed forward , then paper surface side a , step 206 , is the surface that will be printed on . at step 207 the host computer then sends the appropriate image data to the printer which , in this instance , is the first image data in the sequence from a two page print job at step 208 . at step 209 the printer &# 39 ; s paper position switches to the side of thermal print head 2 . paper surface side b will be printed by thermal print head 2 using image data for the second image data in sequence from a two page print job at step 211 . if the printer reports back that the paper position is located on the side of thermal print head 2 at step 205 using sensors 124 or 130 or both , then paper surface side b of step 212 is the surface that will be printed on . at step 213 the host computer sends the appropriate image data to the printer which is the second image data , in sequence from the two page print job as shown at step 214 . the printer &# 39 ; s paper position is switched to the side of thermal print head 1 at step 215 . the paper surface side a 216 is the surface that will be printed on under thermal print head 1 . at step 217 , the appropriate image data , the first image data , is sent from a two page print job . at step 218 another decision point is based on whether more image data is needed to be printed or not . if yes , the algorithm goes back to the host computer to extract two additional pages or the last page of image data at step 201 . if no , the print job is completed . an alternate solution for maintaining proper photo book page order while using the preferred printing method of starting each duplex print on the same side as was printed last for the previous print , is for the host computer to tell the printer which side of the paper each set of image data is intended to be printed on . for example , print or image data is identified as side a and side b . then , the printer can determine which image data to use next based on whichever side it is about to print ( side a on tph 1 or side b on tph 2 ). with reference to fig1 which illustrates this alternate method , step 301 represents the host to printer data processing function similar to step 173 in fig1 . at step 302 the host computer sends to the printer the order of the image data that will be received , or which image data will be printed on which side of the paper . at step 303 the host computer sends the image data for side a of the paper to the printer . at step 304 the host computer sends the image data for side b of the paper to the printer . it will be appreciated that the two steps just described can be performed in a reverse sequence . at step 305 the printer detects and identifies the location of the paper in the printer using sensors 124 or 130 or both . step 306 is a decision point for using either thermal print head 1 or thermal print head 2 depending on where in the printer the paper has been located . if the printer determines that the paper position is located on the side of thermal print head 1 then paper surface a is determined as the surface that will be printed on at step 307 . at step 308 the printer accesses the image data for side a . at step 309 the appropriate image data , side a , is printed from a two page print job . at step 310 the printer switches paper position to the side of thermal print head 2 . at 311 the paper surface b is the surface that will be printed under thermal print head 2 . at step 312 the appropriate image data , side b , is printed in sequence from a two page print job . if the printer determines that the paper position is located on the side of thermal print head 2 at step 306 , then paper surface b 314 is the surface that will be printed next . at step 313 the printer accesses the corresponding image . at step 315 the appropriate image data is printed in sequence from a two page print job . at step 316 the printer &# 39 ; s paper position switches to the side of thermal print head 1 . 317 represents the paper surface a which is the surface that will be printed under thermal print head 1 . at step 318 the appropriate image data is printed . step 319 represents a decision point based on whether more image data is needed to be printed or not . if yes , the algorithm logic goes back to the host computer to obtain two additional pages or the last page of image data and side identification at step 302 . if no , the print job is completed . this solution adequately addresses the complications posed by odd numbers of sheets in a print job , simplex prints , and also the additional complication caused by a jam or other printer error . the benefit of this solution over the previous solution is that the host pc can continue to send image data in the natural or reverse sequential order , rather than having to change the sequence depending on printer position . the invention has been described in detail with particular reference to certain preferred embodiments thereof , but it will be understood that variations and modifications can be effected within the spirit and scope of the invention .