Преобразуйте страницы любого документа в изображения

Преобразование страниц PDF в изображения может быть достигнуто путем рендеринга каждой страницы PDF в контексте растрового изображения (CGContextDrawPDFPage).

Можем ли мы сделать то же самое с другими типами документов (iWork, MS Office и т. Д.).

Мы можем просто показать предварительный просмотр всех этих документов с помощью UIDocumentInteractionController или QuickLook framework. Но ни то, ни другое не может быть настроено или не дает мне доступа к отдельным страницам.

То же самое и с UIDocument. Он может предоставить мне все содержимое как NSData или NSFileWrapper, но я не уверен, как мне отобразить его постранично (скажем, в контексте растрового изображения).

Есть ли способ преобразовать другие страницы документа в изображения?

ОБНОВИТЬ:

Пока в этом направлении нет прогресса. UIWebView, UIDocumentInterationController и QLPreview - единственные вещи, которые я смог найти даже для просмотра документов office / iWork, не говоря уже о преобразовании их в изображения.

Есть ли у кого-нибудь опыт / идея по настройке контроллера взаимодействия с документами или контроллера быстрого просмотра для рендеринга документов постранично?


person Swapnil Luktuke    schedule 13.02.2012    source источник
comment
Я также хочу реализовать это, но не нашел другого решения, кроме uiwebview   -  person harshalb    schedule 04.06.2012


Ответы (2)


Я думаю, вы можете открыть документ в UIWebview и сделать снимок экрана.

person Vignesh    schedule 13.02.2012
comment
как прокрутить веб-страницу до каждой страницы для создания снимка? плюс веб-просмотр добавляет причудливый фон, который отображается либо сверху и снизу, либо по бокам (в зависимости от соотношения сторон вашего документа по отношению к фрейму веб-просмотра), я не хочу, чтобы это было на моем изображении страницы. я хочу только страницу .. - person Swapnil Luktuke; 13.02.2012
comment
Я. У вас есть эти трудности. :( Вам нужно будет как-то найти кадры, чтобы сделать снимок. - person Vignesh; 13.02.2012

Можем ли мы сделать то же самое с другими типами документов (iWork, MS Office и т. Д.).

Вы можете, если знаете, как отображать контент для рассматриваемых типов документов. QA1630 содержит некоторые подсказки, включая список типов документов, которые вы можете отображать их в UIWebView, хотя неясно, легко ли разбить такие документы на страницы таким образом.

То же самое и с UIDocument. Он может предоставить мне все содержимое как NSData или NSFileWrapper, но я не уверен, как мне отобразить его постранично (скажем, в контексте растрового изображения).

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

person Caleb    schedule 13.02.2012
comment
@celeb: моя проблема не в рендеринге. ссылка, которую вы упомянули, говорит только о рендеринге этих форматов файлов с использованием веб-просмотра. я уже могу сделать это намного лучше с быстрым предварительным просмотром (который, как я подозреваю, также использует веб-просмотр) - person Swapnil Luktuke; 13.02.2012