Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Js]separare tabella di dimensione variabile in fase di stampa

    sto generando una pagina in js pescando i dati da una fonte XML, la pagina genera principalmente una header fisso in alto e una tabella scrollabile..(contenuta in un DIV con overflow:auto)

    quando avvio una stampa tramite JS, se i dati contenuti nella tabella
    [dopo aver nascosto l'overflow e ridimensionato il div a 188mm di larghezza] rientrano in una pagina A4 non c'e' problema,
    se la tabella SFORA allora non vengono stampate alcune righe..

    in fase di stampa ho impostato il margin del body a 10mm e l'header fisso in alto e' ottenuto con un expression (la pagina DEVE funzionare solo su IE)

    come ho detto non posso utilizzate page-break-before o page-break-after poiche le righe possono variare di dimensione
    pero' devo poter stampare la tabella...


    come posso fare ???

  2. #2
    potrei utilizzare il Dom per calcolare a che tr devo inserire il page-break-before:always ..

    tipo
    codice:
    function settaBreak(){
    		var x= document.getElementById("printTable");
    		var vet=x.getElementsByTagName("tr");
    		var i=0;
    		max=188-20;//mm 20 sono di arrotondamento
    		for(i=0;i<vet.length;i++){
    			//..calcola l'altezza della pagina sottraendo max
    			max-=vet[i].height;
    			
    			if(max<0){
    				vet[i].style.setAttribute("page-break-before","always");
    				max=168;
    			}
    
    		}
    
    }
    ..peccato non funzioni..












    P.s.: mi sono accorto adesso che forse la sezione piu' adatta era Scripting.. non me ne vogliano i mod..

    avevo letto le mini-pillole e i rollover mi hanno tratto in inganno..

  3. #3
    usando offsetHeight al posto di Height ho combinato Qualcosa..

    ma visto che ritorna l'unita in pixel e non in millimetri non posso sapere esattamente dove inserire il page-break,
    tramite spannometro ho visto che 800 poteva andar bene,si spera, nel mio caso..

    comunque ho postato questa mia soluzione se qualcuno ne avesse
    bisogno, naturalmente se esiste un modo migliore o meno spannometrico e ben accetto
    codice:
    function settaBreak(){
    	var x= document.getElementById("printTable");
    	var vet=x.getElementsByTagName("tr");
    	var i=0;
    	
    	max=800;
    	for(i=0;i<vet.length;i++){
    		max-=vet[i].offsetHeight;
    		//..calcola l'altezza della pagina sottraendo max
    		if(max<0){
    			vet[i-1].style.setAttribute("page-break-before","always");
    			max=800;
    		}
    
    	}
    
    }

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 © 2026 vBulletin Solutions, Inc. All rights reserved.