Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Stampa questa pagina

  1. #1

    Stampa questa pagina

    Ciao a tutti,

    Ho una pagina.php e per la stampa ho creato un file print.css apposito.
    Nella pagina.php c'è un link "stampa questa pagina" che punta al foglio di stile print.css .
    Ora non ho capito molto bene la procedura:
    se clicco sul link non succede nulla, se stampo la pagina con le opzioni di stampa del browser (IE 6.0) funziona tutto perfettamente, cioè l'impaginazione è perfetta.
    Io vorrei che cliccando sul link "stampa questa pagina" si visualizzasse l'impaginazione, o partisse direttamente la stampa , senza usare le opzioni IE.
    Non so se sono stato molto chiaro, spero di si.
    Grazie 1000.

  2. #2
    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!

  3. #3
    Ciao

    Ho testato poco fa e funzia alla meraviglia.
    Solo un problema, non parte la stampa in automatico ma mi costringe a passare per il browser.
    Mentre io vorrei che partisse cliccando "stampa", tipo un selfprint.

  4. #4
    Come non parte in automatico? Non ho capito molto bene...intendi che non ti stampa la pagina quando clicchi sul link "Stampa" nella finestra di anteprima di stampa (quella che ha il link con window.print() per capirci)? Perché "javascript" nel tag <a> va scritto tutto attaccato (non java script)...è che il forum separa le parole quando si postano i messaggi. Se la pagina che devi stampare è la stessa che ha il link per la stampa (e nel tuo caso lo è), scrivere window.print() o self.print() è lo stesso. Fammi sapere!

  5. #5
    Javascript l'ho scritto giusto, funzia tutto, apre l'anteprima, con il suo relativo stile (dove ho tolto tutti i fronzoli), quando clicco "stampa" si apre la finestra del browser con le opzioni di stampa (le solite di IE: pulsante stampa, pulsante annulla, opzioni seleziona stampante ecc.)

  6. #6
    Ah, quella! Ehm, non ci puoi fare nulla purtroppo...lo fa in tutti i browser, perché l'istruzione window.print() serve appunto ad aprire la finestra di stampa del browser, in modo da permettere all'utente di modificare la stampante, le opzioni, ecc.

  7. #7
    Allora come non detto, cmq grazie perchè per il resto è perfetto!

  8. #8
    Utente di HTML.it L'avatar di LA VALE
    Registrato dal
    Sep 2003
    Messaggi
    667
    Interessante questa cosa, grazie ad entrambi

  9. #9
    Prego a entrambi! Ah, LA VALE...troppo mitico il tuo sito!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.