Buongiorno, ho un problema con la stampa di una pagina HTML dinamica.
Questa contiene al suo interno dei div ( ognuno dei quali corrisponderà ad una pagina fisica quando stampata ) che vengono creati dinamicamente ed ognuno dei quali ha margini di pagina diversi ( configurabili da utente ).
Per fare ciò ho impostato a css la regola @page con margin a 0 e sfrutto un border trasparente sui div per fare il margine.
Il problema è che quando stampo mi crea 2 pagine per ogni div: 1 per il contenuto ed 1 per il solo border bottom.
Ho creato questa pagina di esempio con i bordi in verde per far capire il problema:
Ho visto che togliendo all'altezza della pagina 1px il problema si risolve, ma, stampando in pdf, effettivamente manca 1px al bottom della pagina:codice:<!DOCTYPE html> <html> <head> <style> @page LandscapeA4 { size: A4 landscape; margin: 0 !important; } html, body{ width: 100%; height: 100%; margin: 0; padding: 0; } /* for print rules: border will be used as page margin */ .page{ page: LandscapeA4; width: 297mm; height: 210mm; page-break-after: always; } /* page rules */ .page{ position: relative; box-sizing: border-box; background: #FFF; } </style> </head> <body> <div class = "page" style = "border: 5mm solid #A5D6A7;"> Pagina di esempio 1 </div> <div class = "page" style = "border: 10mm solid #A5D6A7;"> Pagina di esempio 2 </div> </body> </html>
codice:.page{ height: calc( 210mm - 1px ); }
Non capisco dove sbaglio o come posso risolvere il problema. Qualche suggerimento?
Grazie in anticipo