Un grosso problema e' dato dalla densita' dei pixel utilizzato dai media video e printer.
Mentre su video si va dai 75 x 75 ai 96 x 96 pixel per inch, nella printer si parte da 300 x 300 e si arriva comodamente a 1200 x 1200 per stampe di testo normali.
Non e' detto poi che "tutte" le printer rispondano allo stesso modo. Intanto lo puoi fare solo sotto windows, se stampi in DOS devi incretinire per definire tutti parametri necessari e poi non troveresti la stampante adatta. Sotto win la printer usa il suo driver (o di win) che non dialoga con altri.
Questo per dire che molti dei parametri disponibili nelle funzioni printer in realta' non siano applicabili. Si deve quindi sfruttare da una parte l'impostazione su win e dall'altra su php. Formato della carta, impostazione pagina ecc. vanno fatte tramite WIN.
Se fai un raffronto tra uno screen con una risoluzione 96x96 ed una stampante con 1200 x 1200 sigifica che per visualizzare un quadrato di un inch (1 pollice = 2,54 cm.) su video servono 9216 pixel, mentre sulla printer 1.440.000.
Perche' usare i pixel e non altre misure come il punto tipografico? Perche' proprio come hai detto il punto tipografico prende in considerazione dal punto piu' alto (apice lettera maiuscola es T, al pedice della lettera per esempio p, quindi Tp i due estremi rappresentano il valore in punti del carattere, che e' variabile a seconda della sua conformazione estetica.
Il pixel invece e' confrontabile in quanto occupa uno spazio fisico con una densita' ben precisa. Il valore di 11.38 che avevo indicato si riferiva ad una printer 300x300. In pratica misurando con un cm le posizioni del foglio e' sufficiente moltiplicare i mm ricavati per 11.38 per trovare il valore in pixel da immettere nello script.
Ora una printer 1200 x 1200 laser non ho idea di come tratta questi valori. Personalmente ho abbandonato questo utilizzo anche se mi risulta che le applicazioni realizzate stiano ancora lavorando tutte bene.
I guai che lamenti nel post della pillola sono dovuti al disallineamento dei processi di stampa tra apache e win. Come detto prima, il driver dialoga con win e non con apache. Sei obbligato a restartare apache per ripulire il tutto.
E' una soluzione molto scomoda. Come ora prenderei in considerazione di costruire pagine .pdf da inviare al client che provveda a stamparseli per fatti suoi, soluzione oltretutto molto piu' performante.
![]()