CGPDFDocument: открыть PDF в потоковом режиме или пока файл еще не завершен? - PullRequest
1 голос
/ 02 февраля 2012

Ситуация:

  • (Большие) PDF-файлы хранятся на устройстве iOS
  • PDF-файлы зашифрованы с использованием алгоритма Райндалла
  • При нажатии на один из PDF-файлов, он расшифровывается и впоследствии просматривается с помощью средства просмотра PDF, которое я реализовал.Зритель использует функциональность Core Graphics для отображения страницы документа за страницей.

Проблема:

  • Поскольку документы достаточно велики, шифрование займет некоторое время.
  • Просмотр можно начинать только после того, как весь документ был расшифрован во временный файл.

Мне интересно, есть ли способ ...

  • Передать некоторый поток в CGPDFDocument вместо URL файла
  • Или в любой другой альтернативе, чтобы иметь возможность просматривать как можно больше страниц, пока расшифровка продолжается в фоновом режиме?

1 Ответ

1 голос
/ 02 февраля 2012

Если вы не можете разделить ваши оригинальные PDF-файлы на отдельные страницы (как я подозреваю), тогда должен работать следующий подход:

A: При дешифровании:

  1. попробуйте открыть документ PDF, как вы уже сделали;

  2. попробуйте зайти на интересующую вас страницу документа;

  3. если не получится, отрендерить страницу;

  4. если произойдет сбой, вы знаете, что страница еще не доступна (во время расшифровки);

  5. при расшифровке выпускайте документ pdf каждый раз, когда вы пытаетесь открыть новую страницу.

B: когда расшифровка завершена, делайте то, что вы уже делаете.

Обратите внимание, что это всего лишь предложение, я не пробовал это при расшифровке документа, но если пункт 1. не потерпел неудачу, то это должно работать.

...