В следующем примере я просмотрел pdf в своем приложении (Xamarin.iOS). Все отлично работало до недавнего времени, я начал замечать, что некоторые PDF файлы не могут быть прочитаны с использованием этого метода.
Я открываю и получаю информацию о своем mac, и я заметил следующее:
- Если я экспортирую документ в pdf с помощью средства просмотра Mac, его можно будет читать просто отлично, но размер увеличивается.
- Если я попытаюсь открыть файл как есть, ничего не видно, а белая страница.
- Это происходит только для моего приложения iOS, просмотр на моем Android отлично работает.
Я могу экспортировать каждый файл в pdf с помощью программы просмотра Mac, но это дополнительный шаг, чем то, что мне нужно. Что я могу сделать, чтобы исправить это?
Оригинальная кодировка: PDFScanLib v1.2.2 в Adobe Acrobat 10.1.16
Экспорт кодировки: Mac OS X 10.10.5 Quartz PDFContext
Я провел дополнительные тесты для программы, и я могу заключить, что проблема заключается в том, что сжатие используется в pdf файлах. Есть ли способ, которым CGPDFDocument может удалить или проигнорировать сжатие, чтобы я мог просматривать PDF? Я загружаю pdf на мой мобильный бэкэнд, где я разбиваю страницы. Я использую Pdfsharp для достижения этого, если возможно, есть ли способ очистить файлы до сохранения на сервере? (Эта проблема влияет только на версию iOS моего приложения).
После дополнительного тестирования я столкнулся с следующей ошибкой: Здесь Похоже, что используемое сжатие JBIG2 имеет известную ошибку, которая вызывает ошибки при чтении jpg в pdf. (Я продолжу дальнейшее тестирование, пока не найду решение.)
Исправления: сжатие PDF - это не JBIG2, а FlateDecode. После тестирования и чтения двоичных данных я заметил, что как оригинал, так и экспорт имеют один и тот же тип сжатия. (Будет обновляться с дополнительной информацией, когда я попытаюсь понять это.)