PDF-файлы, созданные на iPad, некорректно отображаются в Windows

Приложение для iPhone создает файлы PDF (шрифтом Arial). Обычная версия для iPhone 3.1.x прекрасно работает (кроме известной проблемы, что файлы PDF, созданные на iPhone, не могут быть правильно просмотрены в Google Docs или на BlackBerry).

Поскольку я обновляю свой проект для OS 3.2 и iPad, он работает точно так же, и файлы PDF по-прежнему выглядят великолепно на iPhone, iPad и Mac OS X (приложение Preview). Но теперь в Windows (Vista) Acrobat 9.3.1 говорит: "Невозможно извлечь встроенный шрифт" XYZABC+ArialMT ". Некоторые символы могут отображаться или печататься неправильно".

А на самом деле Acrobat тогда использует какой-то общий шрифт вместо Arial (или любой другой шрифт, который я пробую).

Кварц 3.2, кажется, генерирует эти "случайные" имена встроенных шрифтов каждый раз, когда создает файл PDF (XYZABC меняется каждый раз). Я не могу сказать, является ли проблема просто несколько странным "временным" именем встроенного шрифта со знаком плюс, или как Quartz 3.2 встраивает шрифты.

Я попробовал свой существующий код (используя CGPDFContext* функции), а также недавно поддерживаемые UIGraphics* функции, с теми же результатами.

Как правильно создать файлы PDF на iPad, чтобы они правильно отображались в Windows?

4 ответа

Решение

Важное обновление: начиная с iOS 4.2, Apple исправила ошибку, о которой я сообщил; PDF-файлы, созданные с помощью Quartz на iOS, теперь содержат правильно встроенные шрифты. Я оставляю оставшуюся часть этого ответа как есть, но не использую этот механизм на iOS 4.2 или более поздней версии .

Adobe Reader правильно, если не помогает, соответствует спецификации PDF. Я исследовал это, потому что это влияло на одно из моих приложений, и задокументировал мои выводы здесь: http://blog.nomzit.com/2010/08/18/annoying-bug-in-quartz-pdfcontext-font-handling/

Там описан простой обходной путь, который заставляет Adobe Reader вести себя так же, как и более полезные альтернативы.

Я также сообщил об ошибке в Apple

Попробуйте использовать Foxit Reader для открытия ваших файлов PDF в Windows вместо Adobe Reader. Это сработало для меня.

При использовании Pages на iPad возникает та же проблема. Мне было бы интересно найти ответ:

http://discussions.apple.com/thread.jspa?threadID=2389034&tstart=0

В дополнение к анализу Фила, я обнаружил, что у нескольких пользователей Windows не было установлено ни одного, ни нескольких стандартных шрифтов (таких как Helvetica). PDF-файлы, созданные с помощью Quartz, будут ссылаться на один из этих стандартных шрифтов, который Adobe Reader будет отображать, используя следующий ближайший шрифт в своей справочной таблице, что приведет к странным PDF-файлам. Стандартные системные шрифты iPhone / iPad не были встроены должным образом, возможно, из-за того, что Фил нашел в PDF-файлах, сгенерированных Quartz.

Во всех случаях, с которыми я столкнулся, это было решено с помощью установки пользователем Helvetica (или любого другого отсутствующего шрифта) на свой компьютер с Windows, после чего PDF-файлы отображались правильно.

Другие вопросы по тегам