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

StackOverflow https://stackoverflow.com/questions/2589645

Вопрос

Мое приложение для 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 (или любого другого шрифта, который я попробую).

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

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

Как создать PDF-файлы на iPad для корректного отображения в Windows?

Это было полезно?

Решение

Важное обновление:начиная с 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. Это сработало для меня.

Используя страницы на iPad, происходит ту же проблема. Мне было бы интересно найти ответ:

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top