Allora...il link per l'anteprima di stampa (conviene far vedere l'anteprima in una nuova finestra piuttosto che stampare "alla cieca" la pagina) deve essere fatto così:

Questo codice apre una nuova finestra se JavaScript è attivo (altrimenti sostituisce la tua pagina) contenente la pagina corrente con il solo CSS per la stampa "attivo".

Devi ovviamente predisporre la tua pagina PHP per poter interpretare quel codice, e già che ci sei ti consiglio di sfruttare un meccanismo che permette una corretta gestione della stampa in tutti i casi.

1. Predisponi la pagina per verificare, appena PHP inizia ad elaborarla, se l'indice "cssprint" nell'array $_GET è uguale ad 1. Se non lo è o non esiste (cioè sempre, eccetto quando clicchi sull'anteprima di stampa), PHP dovrà scrivere nella head della pagina 2 tag <link>: uno che richiama il file css per lo schermo e associato al media "screen", l'altro che richiama il file css per la stampa e associato al media "print". Questo permette all'utente che usa la stampa dal menu File del browser di stampare cmq la pagina col css per la stampa.

2. Se l'indice "cssprint" dell'array $_GET è impostato a 1, PHP deve scrivere nella head della pagina solo un tag <link>. Questo tag deve richiamare il CSS per la stampa e associarlo al media "all". Siccome l'indice "print" è uguale a 1 solo quando clicchi sul link per l'anteprima di stampa, si aprirà una nuova finestra (o la pagina verrà sostituita da se stessa) con la pagina stessa che ha caricato il css per la stampa e associato al media "all". Quindi anche sullo schermo vedrai la pagina come apparirà sul foglio di carta.

Esempio:

codice:
<head>
<?php
$cssprint = $_GET[cssprint];
if ($cssprint!=1) {
echo '<link rel="stylesheet" type="text/css"
href="STILE_SCHERMO.css" media="screen" />
<link rel="stylesheet" type="text/css"
href="STILE_STAMPA.css" media="print" />';
}
else {
echo '<link rel="stylesheet" type="text/css"
href="STILE_STAMPA.css" media="all" />';
}
?>
</head>
3. Nel codice XHTML della pagina, predisponi un box (div, p o altro) che contiene un link "Stampa" fatto così:

codice:
Stampa
La regola di stile per il box che contiene questo link (che ti consiglio di posizionare in alto alla pagina), deve essere:

display: none per il CSS per lo schermo.
nessuna per il CSS per la stampa (puoi cmq posizionarlo e formattarlo come meglio credi tramite opportune regole di stile, basta che non sia display: none).

In bocca al lupo!