2012-03-13 23 views
5

Próba wydrukowania strony html zawierającej tabelę przy użyciu UIMarkupTextPrintFormatter. Z jakiegoś dziwnego powodu ostatni rząd zostaje przesunięty na drugą stronę, gdy na pierwszej stronie pozostało dużo miejsca (2-3 cale). Co gorsze, po usunięciu ostatniego wiersza z tabeli html ostatni wiersz, który jest o kilka cali dłuższy niż usunięty, jest dzielony między strony 1 i 2, gdy wyraźnie zmieści się na stronie 1 przed usunięciem wiersza. Wysokość hedera i stopki są ustawione na zero. Insets również zero. Ten sam html idealnie pasuje do 1 strony podczas korzystania z interfejsu UIWebView i drukowania przy użyciu UIViewPrintFormatter *formatter = [webview viewPrintFormatter]; Jednak wymaga to wyświetlenia interfejsu UIWebView (w takim przypadku zostanie on wyrenderowany) i nie chcę tego robić.UIMarkupTextPrintFormatter pozostawia puste miejsce 2-3 cale na dole strony

Każdy wgląd w to jest bardzo doceniany.

Odpowiedz

0

W podobnej sytuacji, ale z stałej wielkości moim stole html ten pracował dla mnie:

formatter.maximumContentWidth = 10. * 72.; 

może być nie najbardziej eleganckie rozwiązanie, trzeba by dostosować parametry (tzn zrobić są dynamiczne) i sprawdź zależność od rozmiaru papieru:

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; 
Powiązane problemy