Printing printer friendly version of nodes in bulk
While the print module doesn't have much of an API, you can look at print_controller_html() to see how it renders printed pages:

$query = $_GET;
unset($query['q']);

$html = theme('print', array('node' =&gt; $node, 'query' =&gt; $query, 'format' =&gt; $link['format']));
drupal_add_http_header('Content-Type', 'text/html; charset=utf-8');
drupal_send_headers();
print $html;


For your purposes, you can changes a few arguments to the theme function and wrap it around a loop of nodes you wish to print. Something like

$html = '';
foreach($nodes as $node) {
  $html .= theme('print', array('node' =&gt; $node, 'query' =&gt; $_GET, 'format' =&gt; 'html'));
}


The theme function makes use of a template that you can override in case you want alter the HTML printed in a significant way.