2012-03-13 16 views
5

Cercando di stampare una pagina html contenente una tabella utilizzando UIMarkupTextPrintFormatter. Per qualche strana ragione, l'ultima riga viene spostata nella seconda pagina quando c'è spazio sufficiente (2-3 pollici) nella prima pagina. Ancora peggio, quando rimuovo l'ultima riga dalla tabella html, l'ultima riga, che è un paio di pollici più lunga di quella cancellata, viene divisa tra le pagine 1 e 2 quando si adatta chiaramente alla pagina 1 prima di eliminare la riga. L'altezza dell'intestazione e del piè di pagina sono entrambi impostati su zero. Inserisce anche zero. Lo stesso html si adatta perfettamente su 1 pagina quando si utilizza un UIWebView e si stampa usando UIViewPrintFormatter *formatter = [webview viewPrintFormatter]; Ma questo richiede di mostrare UIWebView (quindi viene sottoposto a rendering) e io non voglio farlo.UIMarkupTextPrintFormatter lascia uno spazio vuoto di 2-3 pollici nella parte inferiore della pagina

Qualsiasi intuizione a questo è molto apprezzata.

risposta

0

In una situazione simile, ma con una dimensione fissa di mio tavolo html questo ha funzionato per me:

formatter.maximumContentWidth = 10. * 72.; 

potrebbe non essere la soluzione più elegante, si dovrebbe regolare i parametri (vale a dire fare dinamico) e verificare la dipendenza dalla dimensione del foglio:

UIPrintFormatter *formatter = [[UIMarkupTextPrintFormatter alloc] initWithMarkupText:html]; 
    formatter.startPage = 0; 
    formatter.contentInsets = UIEdgeInsetsMake(36., 14., 0., 0.); 

    // prevent to generate an extra blank page 
    formatter.maximumContentWidth = 10. * 72.; 

    ... 
    [formatter release]; 
    // please note   
    printInfo.orientation = UIPrintInfoOrientationLandscape; 
Problemi correlati