Я сделал открытие: это возможно, если вы хотите или можете использовать закрытый API.(например, в корпоративном приложении.)
Метод: создайте свой форматер как обычно;установите его в UIPrintPageRenderer.
Установите соответствующие свойства рендерера paperRect
и printableRect
.
numberOfPages
теперь работает!
Настройте свой pdf cgcontext как обычно, и нарисуйте страницу с помощью метода drawPageAtIndex:inRect:
средства визуализации.Святая корова, это сработало.
Обязательные протесты: да, я знаю, что Apple не хочет, чтобы вы отправляли приложения, которые вызывают (например) [ppr setValue:[NSValue valueWithCGRect:page] forKey:@"paperRect"];
, и откажутся от них.