11.886 messaggi dal 09 febbraio 2002
Contributi
io mi riferisco all'ultimo post di quel link che ti ho postato. Facendo in quel modo non ha importanza di che dimensione siano i caratteri.

Allora io ho una pagina A4 che mi consente di stampare 1000 pixel in verticale.
Ho del testo che occupa 1500 pixel e ovviamente andrà su due pagine.
Se restingo il font magari occupa 900 pixel, e allora mi entra in una pagina. Quello che devi fare è mettere sempre e comunque TUTTO il testo in TUTTE le pagine, poi con l'overflow e lo scrolling posizioni il testo nel punto desiderato. Sei a pagina 1? scrolli al pixel 1 (cioè all'inizio). Sei a pagina 2? Scrolli al pixel 1001 (perchè la prima pagina contiene 1000 pixel).

L'unica cosa indesiderata che ti può capitare è che una linea può essere "tagliata" in orizzonatale, cioè ti compare metà su un foglio, metà sull'altro, ma è un problema da risolvere in un secondo momento.

non so esattamente se ci saranno altri problemi dal momento che non l'ho mai fatto, però si potrebbe provare. In caso provo stasera e poi ti posto il link (se mi riesce). Vedrai che cambiando la dimensione del font cambia anche la quantità di pagine da stampare.

Enjoy learning and just keep making
154 messaggi dal 11 maggio 2001
Non ho capito tanto bene potresti spiegarmi meglio? Qualche esempio pratico?
Grazie.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ecco l'esempio pratico:
http://www.doppioslash.it/stampa/

funziona, ma ho usato un'altra tecnica (non con l'overflow).
C'è una proprietà delle celle, offsetHeight che ti dice la sua altezza. A differenza di height, questa proprietà si aggiorna ogni qualvolta il contenuto della cella cambia. Allora ho inserito nella cella una parola alla volta sempre controllando il valore di offsetHeight. Quando questo valore supera la soglia di 1000 pixel (il limite per stampare su una pagina) allora crea una nuova tabella e comincia a scrivere lì dentro.

Nell'esempio che trovi al link di sopra avrai una textarea con del testo all'interno. Seleziona la grandezza del font e vedrai che al variare di questo valore varia anche la quantità di pagine da stampare.

La cosa interessante di questo procedimento è che ogni pagina reca un'intestazione (logo della tua azienda... ecc) e un piè di pagina (indirizzi, ringraziamenti, ecc).
Lo script che devi utilizzare è tutto lato client, di codice lato server non c'è niente, tranne il recupero del testo che avevi messo nella textarea. ciaoo

Enjoy learning and just keep making
154 messaggi dal 11 maggio 2001
Grazie mille ora lo provo
154 messaggi dal 11 maggio 2001
mi potresti mandare i sorgenti per e-mail?
154 messaggi dal 11 maggio 2001
si ma tu dai la grandezza al foglio di stile fissa, mentre a me i contenuti possono avere + stili sia di font sia di dimensine carattere. se tolgo font-size:10px

<style>
TD {font-family:Verdana;text-align:justify;vertical-align:top;font-size:10px}
</style>

non funziona bene quando vado in stampa.

154 messaggi dal 11 maggio 2001
se all'interno ci sono dei font non mi funziona perchè?

questo è lo script




<html>
<head>

<style>
TD {text-align:justify;vertical-align:top;}
</style>
</head>

<body topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0">



<FORM action="" method=post id=form1 name=form1>


<TEXTAREA rows=2 cols=20 id=textarea1 name=textarea1 >
<DIV><FONT face=Arial size=6>fghgfhdhdfgh </FONT></DIV>
</TEXTAREA>

</FORM>


<script language="Javascript">
altezza_intestazione = 100
altezza_piedipagina = 35


function createtable(numero){
document.write("<table style=\"position: absolute; left: 0; top: "+(numero*1010)+"; width:710\" border=\"0\"><tr><td height=\""+altezza_intestazione+"\"><img src=\"logo.gif\"><hr></td></tr><tr><td id=\"tabella"+numero+"\"></td></tr><tr><td height=\""+altezza_piedipagina+"\"><hr><font size=\"1\">Piè di pagina con gli indirizzi</font></td></tr></table>")
if (document.getElementById){
return document.getElementById("tabella"+numero)
} else {
return eval("document.all.tabella"+numero)
}
}
prog_tabella = 0
attuale = createtable(prog_tabella)
testo = document.form1.textarea1.value
arr = testo.split(" ")
for (i=0;i<arr.length;i++){
attuale.innerHTML += " " + arr[i]
if (attuale.offsetHeight >= 1000-altezza_intestazione-altezza_piedipagina){
attuale.innerHTML = attuale.innerHTML.substr(0,attuale.innerHTML.lastIndexOf(" "))
attuale.style.height=1000-altezza_intestazione-altezza_piedipagina
prog_tabella++
attuale=createtable(prog_tabella)
attuale.innerHTML = arr[i]
}
}
attuale.style.height=1000-altezza_intestazione-altezza_piedipagina
</script>
<!--offsetHeight-->

</body>
</html>




</body>
</html>
11.886 messaggi dal 09 febbraio 2002
Contributi
prova adesso, puoi definire diverse grandezze e font. Devi evitare di usare tag non contenitori, ad eccezione di <br> altrimenti non funziona ciao

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.