Da sun's documentationPerché il metodo di stampa di java Printable viene chiamato più volte con lo stesso numero di pagina?
"Il sistema di stampa potrebbe richiedere che una pagina essere reso più volte prima di passare alla pagina successiva."
Gli esempi mostrano sempre qualcosa di simile:
Printable print(Graphics g, PageFormat pageFormat, int page) {
if (page == 0)
do...
else if(page == blah...)
}
Se si segue questo modello il codice funziona in genere bene perché è esplicito in base al numero di pagina. Non seguire questo schema mi ha causato un grande dolore fino a quando ho realizzato che veniva chiamato più volte con lo stesso numero di pagina e iniziato a memorizzare le pagine.
Perché il metodo di stampa di java Printable viene chiamato più volte con lo stesso numero di pagina?
Devo notare che in realtà non ricordo di aver visto questo comportamento quando stavo lavorando su un sistema di report basato su Java alcuni anni fa. Potrebbe essere perché eravamo su Linux in quel momento. – ZoogieZork
I sistemi di stampa su Linux generalmente convertono l'intero documento in PostScript (se non è quello che è già) come linguaggio intermedio anche quando si lavora con stampanti basate su banda, quindi il sistema di stampa sta facendo il buffering per voi. –
Ah, lo sospettavo come tale. Buono a sapersi, grazie! – ZoogieZork