Можно ли контролировать верхние и нижние поля страницы при использовании UIMarkupTextPrintFormatter? - PullRequest
1 голос
/ 02 февраля 2011

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

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

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

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

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

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

Top-of-page are really small by default

1 Ответ

2 голосов
/ 13 мая 2011

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

...