XCode 10.3, macOS 10.14で確認。
*iOS上では未確認。
症状
macOSのPDFKitでPDFDocumentインスタンスの以下の値を使用してPDFにセットされているセキュリティ権限を取得すると、正しく取得できない場合がある。
- PDFに印刷権限(低解像度、高解像度どちらでも良い)がセットされていると、コピー権限が無くてもallowsCopying=YESが返ってくる。
- PDFにコピー権限がセットされていると、印刷権限が無くてもallowsPrinting=YESが返ってくる。
*macOSのプレビューは上記の値を見て処理をしているようで、本来コピーが許可されていないPDFでも印刷権限があれば内容のコピーができる。また印刷が許可されていないPDFでもコピー権限があれば印刷できてしまう。
対応方法
PDFDocument.documentRefを使ってCGPDFDocumentAllowsCopying()とCGPDFDocumentsAllowPrinting()を取得する。こちらは正しい値が返ってきている。