I had forgotten that the stock All Products listing is an old-fashioned pure table layout, with no CSS classes/ids or usefully addressable HTML elements at all. You would have to print from a product listing page (all the products in one category at a time) to be able to make a simple product name list.
Alternatively, you could add <span> elements with classes in the all products tpl file so they could be controlled - not a very complex job, really.
Here is a stock print_stylesheet, with some added rules in red for the product listing page:
/includes/templates/your_template/css/print_stylesheet.css
Code:
/**
* CSS Stylesheet for printing
*
* @package templateSystem
* @copyright Copyright 2003-2006 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
$Id: print_stylesheet.css 4530 2006-09-16 04:00:24Z drbyte $
*/
body {background-color: #ffffff;}
#contentMainWrapper {background-color: #ffffff;}
.messageStackWarning, #navMainWrapper, #navMainSearch, #navCatTabsWrapper, #navEZPagesTop,
#navColumnOne.columnLeft, #navColumnTwo.columnRight,
.navMainSearch,
#navSupp, .banners, #navBreadCrumb, .buttonRow { display: none;}
#categoryImgListing, #indexProductListCatDescription,
#indexProductList form>label, #indexProductList form>select,
.productListing-rowheading,
.navSplitPagesResult, .navSplitPagesLinks,
.listingProductImage, .listingDescription,
.productListing-data+.productListing-data+.productListing-data,
/*adjust as reqd - the above hides third and following column of listing*/
.centerBoxWrapper {
display: none;}
/* Other relevant properties for paged media:
- page-break-before
- page-break-after
- page-break-inside
- orphans
- widows
*/