code: def _print_figures(figures, arguments='', file_format='pdf', target_width=8.5, target_height=11.0, target_pad=0.5):
      
  
      for fig in figures:
  
          # get the temp path
          temp_path = _os.path.join(_settings.path_home, "temp")
  
          # make the temp folder
          _settings.MakeDir(temp_path)
  
          # output the figure to postscript
          path = _os.path.join(temp_path, "graph."+file_format)
  
          # get the dimensions of the figure in inches
          w=fig.get_figwidth()
          h=fig.get_figheight()
  
          # we're printing to 8.5 x 11, so aim for 7.5 x 10
          target_height = target_height-2*target_pad
          target_width  = target_width -2*target_pad
  
          # depending on the aspect we scale by the vertical or horizontal value
          if 1.0*h/w > target_height/target_width:
              # scale down according to the vertical dimension
              new_h = target_height
              new_w = w*target_height/h
          else:
              # scale down according to the hozo dimension
              new_w = target_width
              new_h = h*target_width/w
  
          fig.set_figwidth(new_w)
          fig.set_figheight(new_h)
  
          # save it
          fig.savefig(path, bbox_inches=_pylab.matplotlib.transforms.Bbox(
              [[-target_pad, new_h-target_height-target_pad],
               [target_width-target_pad, target_height-target_pad]]))
  
          # set it back
          fig.set_figheight(h)
          fig.set_figwidth(w)
  
  
          if not arguments == '':
              c = _settings['instaprint'] + ' ' + arguments + ' "' + path + '"'
          else:
              c = _settings['instaprint'] + ' "' + path + '"'
  
          print(c)
          _os.system(c)
docs: figure printing loop designed to be launched in a separate thread.