Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613

    Dimensione caratteri in stampa

    Dunque, facendo riferimento a:
    Stampare in php

    Ho da chiedere un chiarimento o consiglio o chiamatelo come vi pare

    Come scritto in quel 3d sto scrivendo una classe che mi permetta di gestire la stampa.

    Il mio problema è il dimensionamento dei caratteri.

    Nel thread di piero.mac c'è scritto che in 1mm ci sono circa 11.38 px

    Io ho scoperto che per la mia stampante (stampante laser da 1200 dpi) 1mm vale 22.76 punti (in punti stampante, guarda caso il doppio dei pixel indicati prima)

    Non sono riuscito a trovare una corrispondenza con la risoluzione della stampante e questo valore quindi non saprei come giustificarlo, è stato solo un caso che lo abbia trovato.

    A questo punto facendo riferimento ad illustrator ho trovato che 1pt (a video sta volta) vale 0,353 mm e quindi 8.034 pt (stampante)

    La domanda è: come faccio a dimensionare un set di caratteri con questo valore?
    Voglio dire sapete tutti che da font a font gli 8pt hanno dimensioni diverse!

    Grazie

  2. #2
    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.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Intanto grazie...

    La soluzione del pdf l'avevo presa in considerazione ma il problema sta nel fatto che sta cosa della stampa mi serve per delle fatture....

    4 pagine a fattura per 500 fatture sono 2000 pagine... posso avere problemi col pdf? Intaso il server? (che poi è anche il client perchè il prog gira in locale)

  4. #4
    Se hai la certosina pazienza di fare il form per la stampa.... e' comunque impensabile di stampare tutto in colpo solo. E la stampa e' comunque lenta. Col pdf se la stampa e' andata a buon fine puoi eliminare i file, oppure farne un backup ed esportarli. 2000 file non sono poi granche'.... un centinaio di mega... in locale sono una nocciolina.

    Devi dividere in blocchi minori l'elaborazione dei dati. Tieni presente che da php partono i dati alla printer e tanti saluti, nessun feedback o possibilita' di riprendere la stampa.

    Ultimamente provavo la fattibilita' con openoffice di qualcosa di simile, non sono fatture ma schede. In pratica costruito il form andare a pescare via ODBC direttamente i dati dalla tabella mysql. Poiche' i dati da stampare provengono a loro volta da una decina di tabelle mi costruivo una tabella di intermezzo dove openoffice pesca i dati e poi cancella la tabella se la stampa va a buon fine.

    Quindi fase di elaborazione dei dati, php costruisce la singola tabella utente da stampare, fase di stampa da openoffice, chiusura con eliminazione della tabella stampata.

    Ho qualche difficolta' con le macro di openoffice e poco tempo da dedicarci, ma e' tranquillamente fattibile.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Ok... tutto chiaro (o quasi sull'openoffice c'ho qualche porblema di comprensione)

    La pazienza mi pagano per averla... E poi i dati devo tirarli fuori da un db... Non è un gran problema. Ho addirittura ricreato un contratto di una ventina di pagine con le fpdf.

    Le fatture hanno sempre 3 pagine (scoperta avvenuta 15 minuti fa).
    Diciamo che limitando la stampa a 100 fatture per volta non se dovrebbe morire nessuno giusto? Ne l'elaborazione da perte del server ne il pc e nemmeno la stampante.. (spero almeno)

    Grazie comunque soprattutto er la disponibilità nei chiarimenti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.