WWDC22:iOS 16/macOS VenturaのPDFKit、テキスト認識表示機能をサポート
※本サイトは、アフィリエイト広告および広告による収益を得て運営しています。購入により売上の一部が本サイトに還元されることがあります。
Appleが、WWDC22において、PDFに関する「What's new in PDFKit」を公開しています。
PDFKitは、アプリケーションがPDFファイルを表示、編集、書き込みできるようにする、フル機能のフレームワークです。
PDFKitはLive Textをサポートするようになりました。写真とは異なり、テキストはタップしてコピーすることが多いのですが、そのテキストは少量です。
写真と違って、PDFでは、テキストが表示されれば、それは一般的にテキストであり、人々は特別なことをしなくても、そのように動作することを期待しています。
Live Textを使えば、このようなPDF文書内のテキストを選択し、検索することができます。
これはビットマップをスキャンしただけのもので、テキストは全くありません。
PDFには何ページもあることがあります。
PDF文書を開くときにすべてのページでOCRをかけたいとは思わないでしょう。
そこでPDFKitは、各ページを操作するときに、必要に応じてOCRを実行します。
OCRはその場で行われるので、ドキュメントのコピーを取る必要はありません。
また、文書全体のテキストを保存する場合は、保存時にそのようにするオプションが用意されています。
PDFKitではフォームの処理も改善されています。
フォームフィールドを含む文書は、たとえ組み込みのテキストフィールドを含まない場合でも、自動的に認識されます。
これらのテキストフィールドをタブで移動して、期待通りにテキストを入力することができます。
iOS 16 と macOS Ventura では、アプリが画像を入力として PDF ページを作成できる、新しい柔軟な API が提供されています。
アプリは「CGImageRef」を使用して画像を提供します。
PDFKit は、提供された CGImageRef を受け取り、高品質の JPEG エンコーディングで圧縮します。
CGImageRef は CoreGraphics のネイティブデータ型であるため、追加の変換は不要です。
PencilKitを使ってPDFのページに絵を描く方法として、これまで、PDFに追加で描画するには、PDFPageのサブクラスで描画メソッドをオーバーライドするか、カスタムPDFアノテーションを使用するしかありませんでした。
しかし、iOS 16とmacOS Venturaから、各PDFページの上に独自のビューをオーバーレイ表示することが可能になりました。
これにより、アプリに、PDFページの上に表示されるライブで完全にインタラクティブなビューを作成することができます。
iOS 16とmacOS Venturaには新しいPDFDocumentWriteOptionがあり、注釈をページの一部として「焼き付け」することが簡単に行えるようになります。
CoreGraphicsは常にPDFの画像を最大限に忠実に保存するように努めてきましたので、画像はフル解像度で、ロスレス圧縮で保存されます。
そのため、画像はフル解像度で保存され、可逆圧縮されます。これは、PDFが大判のプリンターで印刷される場合には素晴らしいことです。
saveAllImagesAsJPEGは、その名の通り、画像を保存します。画像がどのように作成されたかにかかわらず、PDFにJPEGエンコーディングで保存されます。
optimizeImagesForScreenは、画像を最大HiDPIスクリーン解像度にダウンサンプリングします。
この2つのオプションは、同時に使用することができます。