Mon poussinet est allé dans une imprimerie et a fait massicoter du
papier au format B5 (il paraît que
c'est très impressionnant de voir le truc en question couper 500
feuilles d'un coup). Ensuite, on a voulu persuader notre imprimante
(une Brother HL-5250DN, achetée récemment) d'imprimer
dessus, et là, les choses se sont corsées : pages mal centrées, voire
carrément coupées, et résultat variant aléatoirement selon ce qu'on
utilisait comme logiciel (par exemple si on convertit
un PDF format B5 en PostScript avec pdftops
ou si on l'imprime directement, ça marche mal, alors
qu'avec pdf2ps
il s'imprime correctement). Après
quelques heures d'enquête, on est arrivés à la conclusion suivante :
apparemment, l'imprimante refuse obstinément de croire que ce qu'on
lui fournit par le bac d'alimentation manuel est du B5 (elle veut bien
le croire si c'est par le bac automatique qu'on lui fournit, mais dans
tous les cas elle refuse de l'autodétecter comme du B5), du coup elle
croit qu'elle imprime sur du A4 ou proche, et là il y a toutes sortes
de mécanismes subtils en PostScript (si vous voulez les détails
sordides, voyez §6.2.7
de la
norme, autour de la page 434) qui déterminent la façon dont un
document prévu pour un format de papier est imprimé sur un format de
papier que l'imprimante s'imagine différent — et en
l'occurrence pdftops
met la clé PageSize
du
dictionnaire Policies
à 3 (normalement ce serait un choix
raisonnable) qui a pour effet que l'imprimante essaye d'ajuster pour
ce qu'elle croit être du A4 un document prévu pour du B5 pour
l'imprimer finalement sur du vrai B5, et ça donne un peu n'importe
quoi. Comme, manque de chance, le spooler
(CUPS) que le
poussinet et moi utilisons passe justement par ce programme pour
imprimer le PDF, si on imprime un PDF au
format B5 directement, ça ne marche pas. Il y a différentes façons de
contourner le problème (en gros, remplacer /Policies 1 dict dup
begin /PageSize 3 def end def
par /Policies 1 dict dup
begin /PageSize 5 def end def
dans la sortie
de pdftops
), mais c'est malcommode.