Se usi un linguaggio lato server come PHP o ASP e la tua pagina è realizzata in XHTML e CSS è molto semplice.
codice:
<input type="button" value="Anteprima di stampa" onclick="window.open('?pfv=1','');" />
Nella pagina, se usi PHP, dovrai recuperare il valore di pfv nell'array $_GET e quindi scrivere un tag <link /> a seconda che il valore di pfv sia 1 oppure diverso da 1:
codice:
$pfv = $_GET[pfv];
if ($pfv!=1) {
echo '<link rel="stylesheet" type="text/css" href="stile_schermo.css" media="screen" />';
echo '<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" />';
}
Nel primo caso la pagina viene visualizzata su schermo, quindi importa entrambi i CSS associandoli ai rispettivi tipi media. Così, se stampi direttamente, viene usato il CSS per la stampa. Nel secondo caso (pfv=1), viene impostato un solo tag link che importa il CSS per la stampa e lo associa a tutti i tipi media. Il pulsante apre quindi una nuova finestra contenente sempre la pagina corrente e passandole il parametro pfv adeguato.