2010-04-07 7 views
5

Moja aplikacja iPhone tworzy pliki PDF (czcionką Arial). Zwykła wersja iPhone 3.1.x działa świetnie (oprócz znanego problemu, że pliki PDF utworzone na iPhonie nie mogą być poprawnie wyświetlane w Dokumentach Google lub na BlackBerry).Pliki PDF utworzone na iPadzie nie są poprawnie wyświetlane w systemie Windows

Podczas aktualizacji mojego projektu dla systemu operacyjnego 3.2 i iPada, działa on tak samo, a pliki PDF nadal świetnie wyglądają na iPhone'ach, iPadach i Mac OS X (aplikacja do podglądu). Ale teraz w systemie Windows (Vista) program Acrobat 9.3.1 mówi "Nie można wyodrębnić osadzonej czcionki" XYZABC + ArialMT. "Niektóre znaki mogą nie być wyświetlane lub drukowane poprawnie".

W rzeczywistości program Acrobat używa pewnej ogólnej czcionki zamiast Arial (lub jakiejkolwiek innej czcionki, którą wypróbuję).

Wydaje się, że Quartz 3.2 generuje te "losowe" nazwy czcionek osadzonych za każdym razem, gdy tworzy plik PDF (XYZABC zmienia się za każdym razem). Nie mogę stwierdzić, czy problem polega tylko na nieco dziwnej "tymczasowej" nazwie czcionki osadzonej ze znakiem plusa lub na sposobie osadzania czcionek w Quartz 3.2.

Próbowałem już istniejącego kodu (przy użyciu funkcji CGPDFContext*), a także nowo obsługiwane funkcje UIGraphics*, z takimi samymi wynikami.

W jaki sposób można utworzyć pliki PDF na iPadzie, aby wyświetlać poprawnie w systemie Windows?

+0

Wygląda na to, że próbkowanie innych (darmowych) czytników PDF w systemie Windows może dokładnie odczytać te pliki, więc może to być po prostu Acrobat 9.3.1. To byłoby ironiczne. – Morgan

+0

Mam ten sam problem z programem Acrobat reader 9.4.0! – Icode4food

Odpowiedz

3

Ważna aktualizacja: od wersji 4.2 systemu iOS firma Apple naprawiła zgłaszany błąd; Pliki PDF generowane z Quartz na iOS zawierają poprawnie osadzone czcionki. Pozostawiam pozostałą część tej odpowiedzi tak, jak jest, ale nie używaj tego mechanizmu w systemie iOS 4.2 lub nowszym.

Adobe Reader jest poprawny, jeśli nie jest to pomocne, zgodnie ze specyfikacją PDF. Sprawdziłem to, ponieważ wpłynęło to na jedną z moich aplikacji i udokumentowałem tutaj moje wyniki: http://blog.nomzit.com/2010/08/18/annoying-bug-in-quartz-pdfcontext-font-handling/

Udokumentowano tam proste obejście, które powoduje, że Adobe Reader zachowuje się tak samo, jak bardziej przydatne alternatywy.

Mam również zgłosił błąd do Apple

+0

Dzięki za ten wpis. Chciałbym zagłosować na twoją odpowiedź, ale nie mogę jeszcze. – Morgan

+0

masz na myśli "... zgłosiłeś błąd do Adobe"? –

+0

Nie, program Adobe Reader zachowuje się poprawnie w tym przypadku, jest to plik PDF, który jest nieprawidłowy –

1

spróbuje użyć Foxit Reader do otwierania plików PDF w systemie Windows zamiast Adobe Reader. To zadziałało dla mnie.

0

Oprócz analizy Phila, odkryłem, że wielu użytkowników systemu Windows nie mają jedną lub więcej standardowych czcionek (jak Helvetica) zainstalowane. Pliki PDF generowane przez Quartz będą odwoływać się do jednej z tych standardowych czcionek, którą Adobe Reader wyrenderowałby przy użyciu następnej najbliższej czcionki w tabeli odnośników, co prowadzi do dziwnie wyglądających plików PDF. Standardowe czcionki systemowe iPhone/iPad nie zostały poprawnie osadzone, prawdopodobnie z powodu tego, co Phil znalazł w plikach PDF generowanych przez kwarc.

We wszystkich przypadkach, na które natknąłem się, rozwiązanie to zostało rozwiązane przez zainstalowanie Helvetica (lub dowolnej innej brakującej czcionki) na komputerze z systemem Windows, w którym to momencie pliki PDF były renderowane poprawnie.