Domanda

Ho creato una pagina Web che ti consente di inserire alcune informazioni e quindi disegna un'immagine in un elemento canvas in base a tali informazioni. Ho praticamente funzionato come voglio, tranne per la stampa.

C'è un modo per stampare l'elemento canvas o sta creando una nuova finestra per disegnare, l'unico modo per farlo?

Aggiornamento:

La risposta è stata così semplice. Stavo pensando a una soluzione molto più complicata.

Vorrei poter scegliere più di 1 risposta. Non sono riuscito a stampare la tela quando ho usato * per disabilitare la visualizzazione. La soluzione più semplice era quella di disattivare il modulo che stavo usando per l'input, usando il modulo {display: none;} nel CSS all'interno di una stampa @media {}. Grazie per la rapida risposta.



    @media print {
           form {
         display:none;
       }
    }

È stato utile?

Soluzione

Potresti provare qualcosa del genere:

@media print {
  * {
    display:none;
  }

  #SOME-CANVAS-ID {
    display:block;
  }
}

Non sono sicuro che una tela sia bloccata per impostazione predefinita, ma potresti provare qualcosa in questo senso e vedere se funziona. L'idea è che nasconderà tutto (*) per i supporti di stampa, ad eccezione di qualche altro elemento arbitrario a condizione che la precedenza della regola sia maggiore (motivo per cui ho usato il selettore ID).

Modifica: se CSS3 (in particolare la pseudo-classe di negazione ) con più supporto, la tua regola potrebbe essere semplice come questa:

*:not(canvas) {
  display:none;
}

Tuttavia, ciò può causare < html > e < body > tag da nascondere, nascondendo efficacemente anche la tua tela ...

Altri suggerimenti

Non sono sicuro al 100% del supporto, ma puoi usare CSS e inserire un attributo nel tag <link> per media="print". In questo file CSS, basta nascondere gli elementi che non si desidera mostrare durante la stampa: display:none;

Puoi provare a creare una tela solo per la stampa:

this.Print = function () {
    var printCanvas = $('#printCanvas');
    printCanvas.attr("width", mainCanvas.width);
    printCanvas.attr("height", mainCanvas.height);
    var printCanvasContext = printCanvas.get(0).getContext('2d');
    window.print();
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top