Quote Originariamente inviata da robynosse Visualizza il messaggio
In effetti, riflettendoci, hai ragione, certo non potrò avere lo stesso controllo, ma sarà più semplice adattarlo.
Visto che non l'ho mai fatto, per logica, devo ragionare come se il foglio fosse il mio monitor, giusto?
Per una pagina non vedo la difficoltà, metti il caso di più pagine, dove l'header e il footer si ripetono, o una tabella non entra in un foglio solo, come faccio a passarlo a documento PDF, dividerlo in più pagine?
...dovrei ragionare sulle proporzioni di larghezza altezza di un foglio A4?
ora sono un pò arrugginito con i css per la stampa, ma si hai una pagina html che è il tuo A4: ovviamente non puoi ragionare per pixel, a meno che non fai corrispondenza tra i pixel e la risoluzione in ppi con qui intendi stampare. Però dovresti avere queste certezze:

- header (ovvero, un div html) di grandezza fissa
- footer (ovvero , un div html ) di grandezza fissa
- un content compreso tra header e footer di altezza variabile, però dovresti a quel punto essere in grado di capire, magari con delle prove, quante righe della fattura/preventivo possono starci. La libreria è in grado di mettere i page break in automatico pure, probabilmente ripetendo il footer. Insomma, c'è da sperimentare utilizzando un "ambiente" demo che ti aiuti a impratichirti con gli strumenti (potresti farti una libreria con i vari unit testing per gestire la creazione di pdf e poi aggiungerla al progetto )

Cmq, c'è tanto lavoro da fare sicuramente. Normalmente, a prescindere dal linguaggio utilizzare, si creano dei template che poi si vanno a riempire con i dati presi dall'applicativo: l'uso del template aiuta a sapere, ad esempio, quante righe possono entrare in un foglio (visto che sono preimpostate in altezza).

La rottura di scatole tipica di queste cose, ad esempio, è la presenza di un testo troppo lungo dentro una cella: il testo o viene troncato per rispettare with/height della cella, oppure va a capo, ma allora l'altezza della cella va ricalcolata. Questo è un fattore che devi prevedere sia se utilizzi html che se utilizzi direttamente il disegno da codice