Можно ли управлять верхним и нижним полями страницы при использовании UIMarkupTextPrintFormatter?

58
4

Я пытаюсь использовать материал для печати в iOS 4.2 для печати из своего iPhone-приложения, но у меня возникают реальные проблемы с отображением многостраничного контента. Как вы можете видеть на прилагаемых скриншотах PDF файлов, созданных с помощью API печати iOS, UIMarkupTextPrintFormatter действительно любит использовать при создании рендеринга очень больший верхний край.


Кроме того, похоже, что он не пытается разделить блок-элементы слишком красиво... это трудно увидеть на скриншоте, но разрыв страницы фактически происходит на полпути через строку таблицы, а не на границе между строками.


Я попытался использовать директивы CSS @page для указания границ страниц, однако iOS Webkit, похоже, вообще не поддерживает их.


Кто-нибудь знает какие-либо методы, будь то в HTML или через SDK iOS, чтобы сделать эти верхние поля больше?


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


Любая помощь очень ценится!


Top-of-page are really small by default

спросил(а) 2011-02-02T02:10:00+03:00 9 лет, 9 месяцев назад
1
Решение
71

Вы на правильном пути с UIPrintPageRenderer, но, к счастью, для этого вам не нужно писать собственный подкласс. Все, что вам нужно сделать, это создать vanilla UIPrintPageRenderer, установить свойства headerHeight и footerHeight и добавить свой формат HTML в рендеринг с помощью addPrintFormatter:startingAtPage:. Для этого требуется всего несколько дополнительных строк кода. Я разместил здесь свой метод: Печать размера и содержимого бумаги для печати

ответил(а) 2011-05-13T10:07:00+04:00 9 лет, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема