Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di Kneos
    Registrato dal
    Aug 2002
    Messaggi
    128

    Javascript: Stampa parziale pagina

    Salve a tutto il forum, vorrei cortesemente sottoporvi un quesito.
    Io Sto usando un Javascript che tramite un bottone permette di stampare la pagina web corrente (apre il pannello stampa di windows in pratica). E uno script immagino abbastanza comune pero il mio problema e che vorrei poter stampare solo una parte della suddetta pagina web. Immaginate una pagina molto lunga che scrolla in vertricale mettendo opportinamente i bottoni stampa nei vari punti della pagina dovrebbe essere possibile stampare soltanto, ad esempio tabelle diverse usando botoni diversi.

    Spero di aver illustrato il mio problema in modo che possiate capire cio che intendo.

    Grazie in anticipo a chi vorrà aiutarmi.


    ciao a tutti.

    Andrea

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    La stampa agsce sempre e solo sull'intero documento o sull'intera finestra (dipende dalle scelte dell'utente).

    Per stampare solo un pezzo, devi salvare quel pezzo in una nuova finestra e mandare in stampa tale finestra.

    Esempio - stampa del contenuto del <div id="pippo"> :

    var prwin = window.open('', 'print', 'top=4000,left=4000');
    var cont = document.getElementById('pippo').innerHTML;
    prwin.document.write("<html><head> </head><body>");
    prwin.document.write(cont);
    prwin.document.write("</body></html>");
    prwin.focus();
    prwin.print();

    Dovrebbe funzionare.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di Kneos
    Registrato dal
    Aug 2002
    Messaggi
    128
    Ma se stampo il contenuto di una tabella <table id=pippo>.....</table>
    lui stampa tutto cio che c'e tra i tag di cui l'id e pippo? (..... per intenderci)?? Posso fare in modo che la finestra provvisoria si chiuda al termine della stampa???
    Ultima cosa, posso fare in modo che l'id possa essere passato come parametro alla funziona cosiche possa essere diverso a seconda di quale bottone stampa viene premuto?


    Grazie mille sei stato gentilissimo.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    > Ma se stampo il contenuto di una tabella <table id=pippo>.....</table>
    > lui stampa tutto cio che c'e tra i tag di cui l'id e pippo?

    Ti conviene stampare sempre un <div> intero.
    Ma inserire inun <div> una parte di una pagina non e` un problema.


    > Posso fare in modo che la finestra provvisoria si chiuda al termine della stampa???

    Questo e` piu` difficile. Potresti pero` mettere un timeout abbastanza lungo:
    prwin.document.write("<html><head> </head>");
    prwin.document.write("<body onload='setTimeout(\"self.close()\",60000);'>");


    >Ultima cosa, posso fare in modo che l'id possa essere passato come parametro alla funziona
    > cosiche possa essere diverso a seconda di quale bottone stampa viene premuto?

    Si`, se passi l'ID del <div>:
    codice:
    function stampadiv(nome) {
      var prwin = window.open('', 'print', 'top=4000,left=4000');
      var cont = document.getElementById(nome).innerHTML;
      prwin.document.write("<html><head> </head>");
      prwin.document.write("<body onload='setTimeout(\"self.close()\",60000);'>");
      prwin.document.write(cont);
      prwin.document.write("</body></html>");
      prwin.focus();
      prwin.print();
    }
    Da chiamare con:
    <a href="#" onclick="stampadiv('pippo'); return flase;">

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it L'avatar di Kneos
    Registrato dal
    Aug 2002
    Messaggi
    128
    Provo subito il tutto, ti ringrazio moltissimo.

    Ciao

    Andrea

  6. #6
    Utente di HTML.it L'avatar di Kneos
    Registrato dal
    Aug 2002
    Messaggi
    128
    Allora ho iserito il tutto, ho capito che tu hai settato 4000 4000 in modo che la nuova pagina che si apre stia fuori dallo schermo e non si veda (dico bene?) pero in quella pagina dovrebbe effettivamente copiarci il codice html copreso fra i tag <div id=pippo>....</div> e poi aprire il pannello di stampa di windows. La pagina la crea ma non ce nulla dentro (tasto destro su quella nuova pagina poi HTML c'e solo <HTML></HTML>) e non apre il pannelo di stampa.

    Ci deve essere qualcosa che non quadra, io non sono abbastanza esperto di javascript per capire dov e l errore.

    P.S. la funzione stampadiv(nome) l ho messa nella head della mia pagina tra tag <SCRIPT language=JavaScript>...</script> come si fa di solito per le funz javascript, spero debba effettivamente stare li.

    Scusa se ti rompo le scatole ma e piuttosto importante.

    Grazie Ciao

    Andrea

  7. #7
    Utente di HTML.it L'avatar di antos
    Registrato dal
    Feb 2001
    Messaggi
    3,581
    potresti invece creare diversi file css per la stampa nei quali tramite display:none ti vengono nascoste le parti della pagina che non vuoi far stampare, quando premi il pulsante stampa con un javascript prima cambi il css per la stampa in base al pulsante premuto e dopo lanci la stampa

  8. #8
    Utente di HTML.it L'avatar di Kneos
    Registrato dal
    Aug 2002
    Messaggi
    128
    scusa l ignoranza ma non ci ho capito granche della tua soluzione potresti farmi un esempio?

    Grazie mille

  9. #9
    Utente di HTML.it L'avatar di antos
    Registrato dal
    Feb 2001
    Messaggi
    3,581
    l'idea di base è questa:
    http://pro.html.it/articoli/id_108/idcat_8/pro.html

    tramite javascript potresti fare lo switch dei fogli di stile in modo da avere ogni volta il giusto css per la stampa

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    > Allora ho iserito il tutto, ho capito che tu hai settato 4000 4000 in modo che
    > la nuova pagina che si apre stia fuori dallo schermo e non si veda (dico bene?)
    Esatto

    > pero in quella pagina dovrebbe effettivamente copiarci il codice html copreso fra i tag <div id=pippo>....</div>
    Esatto. Magari per prova cambia la posizione, ed allunga il tempo: forse un minuto e` poco


    > e poi aprire il pannello di stampa di windows. La pagina la crea ma non ce nulla dentro
    > (tasto destro su quella nuova pagina poi HTML c'e solo <HTML></HTML>) e non apre il pannelo di stampa.
    Cosa viene visualizzato con HTML dipende dal browser, dato che viene riempita da JS: alcuni browser fanno vedere il codice, altri no. Nella finestra si dovrebbe tuttavia vedere la pagina.

    > Ci deve essere qualcosa che non quadra, io non sono abbastanza
    > esperto di javascript per capire dov e l errore.
    Prova a fare le prove di cui sopra: forse ci avviciniamo ad una diagnosi.

    > P.S. la funzione stampadiv(nome) l ho messa nella head della mia pagina
    > tra tag <SCRIPT language=JavaScript>...</script> come si fa di solito
    > per le funz javascript, spero debba effettivamente stare li.
    Hai fatto bene

    Puoi anche inserire degli alert nel codice, per vedere se e come viene visualizzato.

    Il metodo di antos e` un'altra opzione possibile (forse piu` moderna), ma per come la vedo in questo momento e` complesso applicarlo in modo che serva per stampare diverse porzioni di una stessa pagina.


    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.