Это очень общий вопрос, но он основан на конкретной проблеме. Я создал приложение для чтения PDF для iPad, и оно отлично работает, за исключением некоторых страниц PDF, которые всегда вызывают сбой приложения. Теперь мы выяснили, что те же самые страницы приводят к сбою Safari, так что я начал подозревать, что проблема где-то в коде рендеринга PDF в Apple.
Из того, что я смог увидеть, сбойные страницы приводят к тому, что библиотеки рендеринга начинают распределять память как сумасшедшие, пока приложение не будет убито. У меня нет ничего другого, чтобы помочь мне точно определить, что вызывает этот процесс.
Это не обязательно происходит с самыми большими документами или теми, у которых больше всего форм. На самом деле, мы не нашли ни одного параметра, который помог бы нам предсказать, какие страницы будут сбоить, а какие нет.
Теперь мы только что обнаружили, что запуск страниц через потребительскую программу, которая позволяет объединять документы, избавляет от проблемы, но я не смог определить, какой именно атрибут или элемент является ключевым. Изменение документов вручную также не подходит для нас в долгосрочной перспективе. Нам нужно запустить автоматизированный процесс на нашем сервере.
Я надеюсь, что кто-то, обладающий более глубокими знаниями о формате файла PDF, сможет указать мне разумное направление для поиска функций документа, которые могут вызвать такое поведение. Все, что я нашел до сих пор, - это что-то об изображениях JBIG2, и я не думаю, что у нас есть какие-либо из них.