De sun's documentationPourquoi la méthode d'impression de java Printable est appelée plusieurs fois avec le même numéro de page?
"Le système d'impression peut demander qu'une page soit rendue plusieurs fois avant de passer à la page suivante."
Les exemples montrent toujours quelque chose comme ceci:
Printable print(Graphics g, PageFormat pageFormat, int page) {
if (page == 0)
do...
else if(page == blah...)
}
Si vous suivez ce modèle votre code fonctionne généralement bien, car il est explicite en fonction du numéro de page. Ne pas suivre ce modèle m'a causé une grande douleur jusqu'à ce que je me rende compte qu'il était appelé plusieurs fois avec le même numéro de page et a commencé à mettre en cache les pages.
Pourquoi la méthode d'impression de java Printable est appelée plusieurs fois avec le même numéro de page?
Je devrais noter que je ne me souviens pas avoir vu ce comportement quand je travaillais sur un système de rapport basé sur Java il y a quelques années. C'est peut-être parce que nous étions sur Linux à l'époque. – ZoogieZork
Les systèmes d'impression sous Linux convertissent généralement l'ensemble du document en PostScript (si ce n'est déjà le cas) en tant que langage intermédiaire, même lorsque vous travaillez avec des imprimantes à bande, de sorte que le système d'impression effectue la mise en mémoire tampon. –
Ah, je le soupçonnais comme tel. Bon à savoir, merci! – ZoogieZork