Descrizione del problema

È stato fornito un esempio di file Postscript che dovrebbe produrre una stampa fronte-retro, ma che non funziona.

nowork.txt

Di fatto quando si manda in stampa questo file, la stampante riprende due volte lo stesso foglio come per eseguire il fronte retro, ma stampa unicamente sulla prima facciata.

Il problema è da ricondurre a un problema noto ad esempio da alcuni bug Java come: http://bugs.java.com/view_bug.do?bug_id=5066322

In sintesi, la libreria utilizzata per produrre il file PS (pdftops dalla libreria xPdf?) inserisce all'inizio di ogni pagina il richiamo ad un blocco di codice chiamato pdfSetupPaper, che contiene una chiamata all'operatore setpagedevice che produce il "flash" della pagina corrente. 

/pdfSetupPaper
  2 array astore
  /setpagedevice where {
    pop 2 dict begin
      /PageSize exch def
      /ImagingBBox null def
    currentdict end setpagedevice
  } {
    pop
  } ifelse
} def

Come risultato il retro della pagina viene sempre stampato dopo aver espulso il foglio corrente, di fatto producendo fogli con il retro sempre bianco (anche se la stampa duplex è in effetti attivata col comando corretto.

Soluzioni possibili

La soluzione più semplice consiste nel rimuovere la chiamata a pdfSetupPaper da tutte le intestazioni di pagina, a meno eventualmente di quelle dove si produce un cambio di dimensione o di orientamento. Durante le nostre abbiamo rimosso queste chiamate a mano, ottenendo la stampa corretta in fronte-retro (18 fogli).

test.txt

Anziché processare il file a posteriori, cosa ovviamente possibile nel breve periodo ma poco pulita, è preferibile procurarsi una patch o una nuova versione di pdftops. Indicazioni utili in questa direzione si trovano per esempio su https://bugs.freedesktop.org/show_bug.cgi?id=72312