<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def to_zpl( self, quantity=1, pause_and_cut=0, override_pause=False, print_mode='C', print_orientation='N', media_tracking='Y', **kwargs ):
 """ The most basic ZPL to print the GRF. Since ZPL printers are stateful this may not work and you may need to build your own. """

        zpl = [
            self.to_zpl_line(**kwargs),  # Download image to printer
            '^XA',  # Start Label Format
            '^MM%s,Y' % print_mode,
            '^PO%s' % print_orientation,
            '^MN%s' % media_tracking,
            '^FO0,0',  # Field Origin to 0,0
            '^XGR:%s.GRF,1,1' % self.filename,  # Draw image
            '^FS',  # Field Separator
            '^PQ%s,%s,0,%s' % (
                int(quantity),  # Print Quantity
                int(pause_and_cut),  # Pause and cut every N labels
                'Y' if override_pause else 'N'  # Don't pause between cuts
            ),
            '^XZ',  # End Label Format
            '^IDR:%s.GRF' % self.filename  # Delete image from printer
        ]
        return ''.join(zpl)