Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344

    Stampa senza visualizzare finestra popup

    In un chiosco devo mandare in stampa una pagina esterna a quella in cui mi trovo per cui la apro così:

    window.open(nome.php?id_scheda='+id);

    e la mando in stampa all'onload della pagina.

    Tutto funziona correttamente però non mi piace che si vede la schermata aprisi e chiudersi per cui ho provato sia a ridimensionare la pagina ad 1x1 px, sia a posizionarla fuori dallo schermo, ma in entrambi i casi viene visualizzata ugualmente.

    window.open('nome.php?id_scheda='+id, '', 'width=1,height=1,left=2000,top=2000,resizable=no, menubar=no,toolbar=no,location=no,scrollbars=no,st atus=no');

    Esiste un modo di mandare in stampa una pagina esterna direttamente, senza visualizzarla?.

    Al momento per la stampa utilizzo un componente aggiuntivo di Firefox (JS Print Setup 0.9.2).

    Grazie
    ciao

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Potresti usare ajax info e caricare la pagina in un div "nascosto" oppure lanciate ditettamente .print() ma in questo caso non potrai impostate settaggi, verrà stampata la pagina visualizzata "nuda e cruda"
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    oppure usare un iframe con display:none

  4. #4
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Non garantisco nulla e devi provarlo sui vari browsers…:

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <script type="text/javascript">
    function printPage(sPageURL) {
    	var oHiddFrame = document.createElement("iframe");
    	oHiddFrame.src = sPageURL;
    	oHiddFrame.style.visibility = "hidden";
    	oHiddFrame.style.position = "fixed";
    	oHiddFrame.style.right = "0";
    	oHiddFrame.style.bottom = "0";
    	document.body.appendChild(oHiddFrame);
    	oHiddFrame.contentWindow.onload = oHiddFrame.contentWindow.print;
    }
    </script>
    </head>
    
    <body>
    <span onclick="printPage('tuoDocumento.html');" style="cursor:pointer;text-decoration:underline;color:#0000ff;">Stampa pagina</span>
    </body>
    </html>
    Magari se funziona dagli una ritoccatina…

  5. #5
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Per esempio sarebbe cosa buona e giusta se eliminassi l'iframe nascosto una volta stampato quello che t'interessa…:

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <script type="text/javascript">
    
    function printPage(sPageURL) {
    	var oHiddFrame = document.createElement("iframe");
    	oHiddFrame.src = sPageURL;
    	oHiddFrame.style.visibility = "hidden";
    	oHiddFrame.style.position = "fixed";
    	oHiddFrame.style.right = "0";
    	oHiddFrame.style.bottom = "0";
    	document.body.appendChild(oHiddFrame);
    	oHiddFrame.contentWindow.onload = oHiddFrame.contentWindow.print;
    	oHiddFrame.contentWindow.onafterprint = function () { document.body.removeChild(oHiddFrame); };
    }
    </script>
    </head>
    
    <body>
    <span onclick="printPage('tuoDocumento.html');" style="cursor:pointer;text-decoration:underline;color:#0000ff;">Stampa pagina</span>
    </body>
    </html>
    …mi sa che pubblicherò l'esempio qua: http://developer.mozilla.org/en/Printing


  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344
    @cavicchiandrea:
    per ajax ok, ma non capisco cosa intendi per lanciare direttamente un print(). La pagina che devo stampare non è quella in cui sono posizionato, ma un'altra, pertanto devo aprirla come faccio ora, la stampo e la chiudo (sfruttando metodi di JS Print Setup). La pagina è già formattata per la stampa per cui non mi servono ulteriori manipolazioni.
    Mi servirebbe un metodo che inviasse direttamente alla stampante senza prima doverla visualizzare.

    @lucavizzi
    questa mi sembra l'idea migliore

    @carlomarx
    ottimo, questo fa praticamente la stessa cosa indicata da lucavizzi, mettendo il contenuto in un iframe nascosto

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 © 2024 vBulletin Solutions, Inc. All rights reserved.