Strip printing is a method which allows you to print a picture that normally requires a large print buffer when there is not much memory available. This would allow, for example, a RastPort to be printed at a higher resolution than it was drawn in. Strip printing is done by creating a temporary RastPort as wide as the source RastPort, but not as high. The source RastPort is then rendered, a strip at a time, into the temporary RastPort which is dumped to the printer. The height of the strip to dump must be an integer multiple of the printer's NumRows if a non-aspect-ratio-corrected image is to be printed. For an aspect-ratio-corrected image, the SPECIAL_NOPRINT flag will have to be used to find an io_DestRows that is an integer multiple of NumRows. This can be done by varying the source height and asking for a SPECIAL_NOPRINT dump until io_DestRows holds a number that is an integer multiple of the printer's NumRows. If smoothing is to work with strip printing, a raster line above and below the actual area should be added. The line above should be the last line from the previous strip, the line below should be the first line of the next strip. Of course, the first strip should not have a line added above and the last strip should not have a line added below. The following is a strip printing procedure for a RastPort which is 200 lines high. First strip * copy source line 0 through 50 (51 lines) to strip RastPort lines 0 through 50 (51 lines). * io_SrcY = 0, io_Height = 50. * the printer device can see there is no line above the first line to dump (since SrcY = 0) and that there is a line below the last line to dump (since there is a 51 line RastPort and only 50 lines are dumped). Second strip * copy source line 49 through 100 (52 lines) to strip RastPort lines 0 through 51 (52 lines). * io_SrcY = 1, io_Height = 50. * the printer device can see there is a line above the first line to dump (since SrcY = 1) and that there is a line below the last line to dump (since there is a 52 line RastPort and only 50 lines are dumped). Third strip * copy source line 99 through 150 (52 lines) to strip RastPort lines 0 through 51 (52 lines). * io_SrcY = 1, io_Height = 50. * the printer device can see there is a line above the first line to dump (since SrcY = 1) and that there is a line below the last line to dump (since there is a 52 line RastPort and only 50 lines are dumped). Fourth strip * copy source line 149 through 199 (51 lines) to strip RastPort lines 0 through 50 (51 lines). * io_SrcY = 1, io_Height = 50. * the printer device can see there is a line above the first line to dump (since SrcY = 1) and that there is no line below the last line to dump (since there is a 51 line RastPort and only 50 lines are dumped).