print

Mattepuffo's logo
Stampare con C#

Stampare con C#

Mnetre stampare una JTable in Java è piuttosto semplice, stampare una DataGridView in C# non è così immediato.

Prima di tutto nel Windows Form aggiungete un oggetto PrintDocument.

Ve lo ritroverete in basso; selezionatelo e nelle proprietà impostate il DocumentName e tra gli eventi impostate l'evento PrintPage.

L'evento sarà una cosa del genere:

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    Bitmap bm = new Bitmap(this.dataGridViewEntrate.Width, this.dataGridViewEntrate.Height);
    Rectangle rc = new Rectangle(0, 0, this.dataGridViewEntrate.Width, this.dataGridViewEntrate.Height);
    dataGridViewEntrate.DrawToBitmap(bm, rc);
    e.Graphics.DrawImage(bm, 0, 0);
}

In pratica definiamo l'area da stampare e trasformiano la DataGridView in una Bitmap.

Per fare le cose per bene aggiungiamo anche un oggetto PrintDialog e nelle proprietà impostiamo Document impostando printDocument1....(controllate anche le opzioni che sono interessanti).

Mattepuffo's logo
La funzione printf del C++

La funzione printf del C++

Per chi si affaccia alla programmazione, o per chi viene da linguaggi più semplici, a volte il funzionamento della funzione printf() del C++ rimane un pò oscura all'inizio.

Preciso comunque che printf() è presenta anche in altri linguaggi com il C o il PHP.

Ma non conosco il C e in PHP la uso poco, quindi non so se ci sono differenze.

Per quanto il C++ questo è un banale esempio:

int a = 10;

printf("Il numero è: %d", a);

Cos'è quel %d?

Banalmente si può dire che è un segna posto.

In pratica printf è in grado stampare qualsiasi contenuto, che sia numerico, carattere, ecc.

Mattepuffo's logo
I media type nei CSS

I media type nei CSS

In genere siamo abituati a includere i nostri CSS nella pagina senza usare l'attributo media.

In verità è un attributo molto importante perchè ci permette di differenziare i CSS a seconda del dispositivo che accede alla pagina.

Un tipo lo abbimo già visto in questo articolo, ed è quello relativo alla stampa:

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

Come vedete ho usato il media print.

Mattepuffo's logo
Stampare una JTable

Stampare una JTable

Dopo aver visto come stampare con Javascript, oggi vediamo come farlo con Java.

Nel caso specifico io voglio stampare la mia JTable.

Ho aggiunto un JMenuItem e ho impostato un Action Performed.

Stampare una JTable è molto semplice in quanto, come anche altri componenti, eredita il metodo print().

Possiamo anche passargli uno o più parametri; vedete JTable.PrintMode.

Se vedete la pagina possiamo impostare anche più di un parametro.

Nel mio caso me ne basta uno ed è quello che imposta la larghezza in modo che tutte le colonne rientrino nella larghezza della pagina.

In fase di stampa imposto la stampante in modalità orizzontale.

Mattepuffo's logo
Stampare con Javascript e i CSS

Stampare con Javascript e i CSS

Stampare una pagina con Javascript è molto semplice: basta mettere un link del genere:

<a href="javascript:window.print();">PRINT</a>

Il problema però è che così ti stampa sempre tutta la pagina!

Nel mio caso invece volevo stampare una cosa precisa: una foto.

Nello specifico la foto che stavo visualizzando in overlay usando la galleria Lightbox.

Usando quel link mi stampava sia l'immagine che tutto ciò che compariva sotto all'overlay.

Come fare?

Usando i CSS.

In pratica dovete creare un CSS da includere usando come media="print".

Quindi nell'head della pagina:

<head>
<link type="text/css" rel="stylesheet" href="template/css/style.css" media="screen" />
<link type="text/css" rel="stylesheet" href="template/css/print.css" media="print" />
</head>

Nel foglio andrete a decidere cosa stampare.

Mattepuffo's logo
Sbloccare la stampante con Stalled Printer Repair

Sbloccare la stampante con Stalled Printer Repair

Ho scoperto un programma che può risultare molto utile in ambito Windows: Stalled Printer Repair

In pratica conesnte di sbloccare la coda di stampa quando la stampante va in stallo e si blocca.

Il problema è che quando un processo di stampa si blocca non è possibile effettuare altre stampe finchè quel processo non viene rimosso.

Il problema è che molto spesso risulta impossibile rimuoverlo.

Un modo è quello di eliminare i file di stampa manualmente.

Un altro è usare questo programma.

Vediamo come fare.