iPad で作成した PDF ファイルが Windows で正しく表示されない
-
25-09-2019 - |
質問
私の iPhone アプリは PDF ファイル (Arial フォント) を作成します。通常の iPhone 3.1.x バージョンはうまく機能します (iPhone で作成された PDF ファイルが Google ドキュメントまたは BlackBerry で正しく表示されないという既知の問題を除けば)。
OS 3.2 と iPad 用にプロジェクトを更新していますが、まったく同じように動作し、PDF ファイルは iPhone、iPad、Mac OS X (プレビュー アプリ) で引き続き美しく表示されます。しかし、Windows (Vista) では、Acrobat 9.3.1 で「埋め込みフォント 'XYZABC+ArialMT' を抽出できません。」と表示されます。一部の文字は正しく表示または印刷されない場合があります。」
そして実際、Acrobat は Arial (または私が試した他のフォント) の代わりに汎用フォントを使用します。
Quartz 3.2 は、PDF ファイルを作成するたびに、これらの「ランダムな」埋め込みフォント名を生成するようです (XYZABC は毎回変わります)。問題が単にプラス記号の付いた少し奇妙な「一時的な」埋め込みフォント名にあるのか、それとも Quartz 3.2 によるフォントの埋め込み方法にあるのかはわかりません。
既存のコードを試しました(を使用して) CGPDFContext*
機能)、および新たにサポートされた UIGraphics*
関数を実行しても同じ結果が得られます。
iPad で PDF ファイルを作成して Windows で正しく表示するにはどうすればよいですか?
解決
重要なアップデート:iOS 4.2 の時点で、Apple は私が報告したバグを修正しました。iOS 上の Quartz から生成された PDF には、正しく埋め込まれたフォントが含まれるようになりました。この回答の残りの部分はそのままにしておきますが、 iOS 4.2 以降ではこのメカニズムを使用しないでください。
Adobe Reader は、役に立たない場合でも、PDF 仕様に正しく準拠しています。私のアプリの 1 つに影響を及ぼしていたため、これを調査し、その結果をここに文書化しました。 http://blog.nomzit.com/2010/08/18/annoying-bug-in-quartz-pdfcontext-font-handling/
そこには、Adobe Reader をより便利な代替手段と同じように動作させる簡単な回避策が記載されています。
Appleにもバグを報告しました
他のヒント
の代わりのAdobe ReaderのWindows上でPDFファイルを開くためののFoxit Readerのを使用してみてください。それは私のために働いています。
iPadのページを使用して、同じ問題が発生します。私は答えを見つけるために興味があると思います:
http://discussions.apple.com/thread.jspa?threadID = 2389034&TSTART = 0 の
フィルの分析に加えて、私がインストールされ、いくつかのWindowsユーザーが(ヘルベチカのような)標準フォントの一つ以上を持っていなかったことがわかりました。クォーツを経由して生成されたPDFファイルは、Adobe Readerが奇妙なPDFファイルにつながるそのルックアップテーブル内の次の最も近いフォントを使用してレンダリングされ、これらの標準フォントのいずれかを、参照します。 iPhone / iPadの標準のシステムフォントはおそらくフィルは、クォーツ、生成されたPDFファイルで見つかったものに、適切に埋め込まれていませんでした。
私は全体走ったすべての場合において、これは、ユーザーがヘルベチカ(または任意の他の不足しているフォント)をインストールすることによって解決された自分のWindowsマシン上で、PDFファイルをその時点で適切にレンダリングされます。