При печати PDF iOS с помощью printingItem появляется пустой заголовок; можно ли его удалить?

#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 свойство.