UIMarkupTextPrintFormatter оставляет пустое пространство размером 2-3 дюйма в нижней части страницы - PullRequest
5 голосов
/ 13 марта 2012

Попытка распечатать html-страницу, содержащую таблицу, используя UIMarkupTextPrintFormatter. По какой-то странной причине последний ряд переносится на вторую страницу, когда на первой странице остается достаточно места (2-3 дюйма). Еще хуже, когда я удаляю последнюю строку из таблицы html, последняя теперь строка, которая на пару дюймов длиннее удаленной, разделяется между страницами 1 и 2, когда она явно помещается на странице 1 перед удалением строки. Высота верхнего и нижнего колонтитула установлены на ноль. Вставок тоже ноль. Тот же HTML отлично помещается на 1 странице при использовании UIWebView и печати с использованием UIViewPrintFormatter *formatter = [webview viewPrintFormatter]; Но для этого нужно показать UIWebView (чтобы он отображался), и я не хочу этого делать.

Любое понимание этого очень ценится.

1 Ответ

0 голосов
/ 07 апреля 2013

В аналогичной ситуации, но с фиксированным размером моей HTML-таблицы это сработало для меня:

    formatter.maximumContentWidth = 10. * 72.;

может быть не самым элегантным решением, вам придется настроитьпараметры (т.е. сделайте их динамическими) и проверьте зависимость размера бумаги:

    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;
...