#ios #ios4
#iOS #ios4
Вопрос:
Я использую iOS 4.3 и предложенный Apple метод печати PDF, который заключается в присвоении UIPrintInteractionController
свойству shared printingItem
‘s NSData
объекта, содержащего данные PDF. Это очень просто, и это здорово, но я обнаружил, что при печати PDF с помощью этого метода содержимое начинается на странице на 4 мм ниже, чем при печати через Preview.app на моем Mac. Поскольку я печатаю для вырезания этикеток, важно точное позиционирование.
Похоже, что где-то в процессе на страницу добавляется (пустой) заголовок, что приводит к смещению содержимого вниз по странице. Результирующие горизонтальные поля одинаковы как в iOS, так и в Mac OS X, поэтому я подозреваю, что это действительно заголовок, а не сплошное поле.
Я проверил следующее:
- Добавляет ли принтер заголовок? Нет, потому что те же результаты можно увидеть при печати в симуляторе принтера.
- Используется ли на iPad бумага другого формата, чем на Mac? Я использовал метод делегирования, чтобы убедиться, что
UIPrintPaper
значение одинаково для обоих. - Могу ли я отредактировать
headerHeight
дляUIPrintPageRenderer
? Нет, потому что средство визуализации не создается при прямой настройке элемента печати.
Мой обходной путь заключается в том, чтобы заставить генератор PDF (сервер) создавать содержимое PDF на 4 мм выше, чем должно быть, но это прерывает печать из Mac OS.
Идей больше нет! Спасибо за любую помощь.
Ответ №1:
Вам следует проверить пример кода Apple PrintWebView. Я полагаю, что проблема, с которой вы столкнулись, связана с аппаратными запасами. Смотрите SIMPLE_LAYOUT
константу в примере PrintWebView, чтобы узнать больше. Надеюсь, это поможет.
Комментарии:
1. Спасибо, это отличное начало. Похоже, мне нужно использовать
UIPrintPageRenderer
для печати моих PDF-данных с точностью до миллиметра, а не гораздо более простоеprintingItem
свойство.