• User Attivo

    Pagina per la stampa

    Ciao a tutti, nel mio sito ho creato una pagina da stampare. Cioè, l'utente che si autentica, clicca "Stampa Modulo", allora vengono estratti i suoi dati dal DB e viene generata una pagina HTML per la stampa e dopo TOT secondi si apre la finestra di scelta delle stampanti.
    Ora il mio problema è:

    • Come faccio a far in modo che tutto il contenuto entri nella pagina?
    • Come faccio a mettere un interruzione di pagina, se voglio che una determinata cosa me la stampi alla pagina 2?

    Grazie :=)


  • User Attivo

    Nada?


  • User

    Posso darti un consiglio, ma devi essere un minimo pratico di php. Esiste una libreria, chiamata fpdf, che tramite php ti fa realizzare pagine pdf.

    Con un briciolo di studio riesci a impaginare praticamente tutto come ti pare, con dei risultati veramente validi!

    Altrimenti puoi darmi una spiegazione di questa domanda:

    • Come faccio a far in modo che tutto il contenuto entri nella pagina?
      Stare nella pagina è inteso in orizzontale o in verticale?

    Per l'interruzione di pagina che io sappia in HTML non esiste nessun tag che lo realizza. L'unica possibilità secondo me è andarci di <br> fino a fargli stampare il contenuto che vuoi in seconda pagina...

    Rimane il fatto che ti consiglio caldamente fpdf...


  • User Attivo

    Ok mi studio un po fpdf......e che non ho il tempo xD


  • User

    Non ho mai provato il metodo ma su un manuale leggo che è possibile interrompere un contenuto per farlo stampare nella pagina successiva con delle proprietà css.
    Le proprietà sono "page-break-before" e "page-break-after".


  • User

    Pecisamente, è come dice Akela ma è un po più complessa la questione.

    Va in primis specificato da CSS le dimensioni dell'eventuale pagina di stampa, e questo avviene tramite la direttiva @page nel seguente modo:

    @page {size:210mm 297mm; margin:25mm;}
    ```Le misure che ho preimpostato sono quelle di un normale foglio A4 con 2,5 centimetri di margine da ogni lato.
    
    A questo punto, per evitare che determinati contenuti possano essere "spezzati" durante la suddivisione delle pagine (non penso sia bello vedere mezza tabella a pag 1 e un altra mezza tabella nella 2), il W3C ha inserito i tag page-break-* i quali possono assumere tali proprietà:
    
    
    * **Auto** - imposta un'interruzione di pagina se necessario;
    * **Alwais** - imposta sempre e comunque un'interruzione di pagina;
    * **Avoid** - imposta un'interruzione di pagina prima/dopo (before/after) di un elemento;
    * **Left** - imposta un'interruzione di pagina sulla sinistra;
    * **Right** - imposta un'interruzione di pagina sulla destra.
    
    
    Spero d'esser stato d'aiuto :)