2009-07-07 17 views
12

Come posso vedere l'anteprima di stampa della mia fattura generata dal sito web. Se stampo con lo scriptAnteprima di stampa JavaScript

<a href="javascript:window.print()">print this page</a> 

nella stampa "stampa questa pagina" anche stampato. Come posso nasconderlo?

risposta

1

È possibile ottenere la pagina corrente da stampare chiamando window.print(). Per esempio:

<a href="JavaScript:window.print();">Print this page</a> 

Se si vogliono dare loro un'idea di ciò che sarà simile stampata, è possibile utilizzare lo script su this page per dare loro un pseduo-preview del modo in cui la pagina con la stampa.

+0

questo è per la stampa. ma ho bisogno di un'anteprima prima di stampare –

+0

una cosa in più che quando prendo la stampa con questo script, quindi stampare questa pagina viene anche stampato. come posso nascondere questo? –

+1

In realtà, una pseudo-anteprima è la più vicina che è possibile ottenere all'interno del browser. Pseudo-anteprima significa in questo caso che tutti i fogli di stile di destinazione "schermo" vengono rimossi e vengono applicati tutti i fogli di stile di destinazione "stampati". Nessun cercapersone, mi dispiace. – Boldewyn

6

I browser non offrono un'API per attivare la funzionalità di anteprima di stampa nei browser.

Fortunatamente, quasi tutti lo tengono nel solito posto (penzolando dal menu File), quindi non dovresti attirare l'attenzione degli utenti su di esso.

+0

Non c'è un modo per costruire un'anteprima di stampa esattamente uguale a quella offerta da un browser? – rahul

+12

No! No! No! No! No! No! No! No! No! No! No! (Stackoverflow ha una lunghezza minima dei commenti) – Quentin

+4

Lascia che il browser gestisca l'anteprima di stampa. Includere un foglio di stile di stampa che rende la pagina della fattura piacevole quando stampata (questa è una buona cosa da fare per qualsiasi pagina web) e, se lo si desidera, includere un link "Stampa questa pagina", ma lasciare che il browser gestisca le attività basate sul browser. –

7

È possibile creare print stylesheets separato per avere un controllo generale su come un sito verrà visualizzato nella stampa. Puoi mostrare il sito al tuo utente usando questo speciale foglio di stile di stampa prima di stampare. Ciò non ti dà tuttavia un'anteprima del 100%, poiché ogni browser gestisce le cose in modo un po 'diverso. Non vedrai come viene stampato finché non viene stampato. Tuttavia, l'uso di un foglio di stile per la stampa ti porterà molto vicino.

Alcuni sistemi operativi e driver di stampa offrono all'utente un'anteprima tra il pulsante Stampa e la stampa effettiva, ma non è qualcosa su cui si ha il controllo o che è sempre garantito.

0

Per rispondere direttamente alla domanda, quando si chiama il metodo di stampa() del browser stampa la pagina così com'è. Se si desidera stampare una versione diversa della pagina (senza l'elemento "Stampa questa pagina", ad esempio), sarà necessario creare una versione stampabile separata della pagina (in genere eseguita utilizzando un foglio di stile separato) che non ha quelle elementi che non vuoi nella pagina Stampata.

+0

Eh? No, non lo fai. Basta usare gli stili di stampa di tipo override, con una query '@ media' nel CSS o' media = "print" 'nell'HTML per la pagina. Quindi tagga il link 'Stampa questa pagina' con una classe' no-print' e disegna '.no-print' con' display: none; ', e applica qualsiasi altro stile specifico per la stampa che desideri. –

30

Affrontare la seguente parte della tua domanda:.

nella stampa "stampa anche questa pagina stampata

Come posso nasconderlo

Creare un nuovo foglio di stile (? in questo esempio, l'ho chiamato "print.css") e lo includo nel codice HTML come segue:

<link rel="stylesheet" href="print.css" type="text/css" media="print" /> 

Nota il media="print" -questo significa che il foglio di stile verrà utilizzato solo quando si stampa la pagina.

successivo assegnare una classe al vostro elemento <a> in modo che possiamo fare riferimento a esso in CSS:

<a href="javascript:window.print()" class="noPrint">Print this Page</a> 

Infine, nel vostro file CSS, includono la seguente regola:

.noPrint { 
    display: none; 
} 

Ora il " Stampa questa pagina "il collegamento non dovrebbe apparire nella versione stampata della pagina.

Steve

+4

Oppure aggiungere un significativo nome di classe 'no-print', e avere quel 'no-print {display: none;}', e applicarlo a tutti gli elementi che sono irrilevanti o indesiderati nella versione stampata. –

+0

@drthomas: buona idea! Ho aggiornato la mia risposta di conseguenza. –

0

Per nascondere il collegamento durante la stampa, procedere come segue:

<style type="text/css" media="print"> 
.printlink 
{ 
    display:none; 
} 
</style> 
<a href="javascript:windows.print()" class="printlink">print this page</a> 

alternativa:

<a href="javascript:windows.print()" 
onclick="this.style.display='none';" 
class="printlink"> 
print this page 
</a> 

Anche se questo non riapparirà dopo l'annullamento della stampa.

-1
function Print() 
{  
    document.getElementById('ImagePrint').style.visibility='hidden';  
    window.print(); 
    document.getElementById('ImagePrint').style.visibility='visible';   
} 

nel corpo HTML

<div> 
    <a id="ImagePrint" onclick="return PrintReport();" style="vertical-align: top">print Info</a> 
</div> 

Questa funzione non mostrerà ur immagine nella stampa. puoi usare il tuo controllo piuttosto che l'immagine con l'id di controllo. speranza u otterrà ur soluzione

0

Si dovrebbe nascondere gli elementi che non si desidera essere visualizzati in stampa utilizzando

display:none 

ho scritto un tutorial su printing your webpage. Spero possa essere d'aiuto.

+0

Errore nel segnalare che si sta effettuando il collegamento alla propria pagina web. –

1

Sorprendentemente, nessuno ha ancora affrontato la

Come posso vedere l'anteprima di stampa della fattura generato dal sito

domanda. Ho solo bisogno di una funzionalità simile e si avvicinò con la soluzione in How to see the print media CSS in Firebug?

0

Questo è quello che ho usato:

printPage(evt: any) { 
    // add this 'noprint' class to elements you want to hide from printing 
    let hideElements = document.getElementsByClassName('noprint'); 
    let arr = Array.prototype.slice.call(hideElements) 
    arr.map(val => { 
     val.style.visibility = 'hidden'; 
    }) 
    let w = window.open(); 
    // 'main' is the section I want to print 
    w.document.write(document.getElementById('main').innerHTML); 
    w.print(); 
    w.close(); 
    arr.map(val => { 
     val.style.visibility = 'visible'; 
    }) 
} 
Problemi correlati