OS X / iOS: как мне создать PDF, который нельзя распечатать?
Я хочу создать PDF-документ, который не может быть напечатан. Я использую Quartz Framework для этого. Это то, что я делаю (коротко):
PDFDocument *pdfDocument = ...
NSMutableDictionary *options = [[NSMutableDictionary alloc] init];
[options setValue:@"test-password" forKey:(NSString *)kCGPDFContextUserPassword];
[options setValue:@0 forKey:(NSString *)kCGPDFContextAllowsPrinting];
[pdfDocument writeToFile:savePath withOptions:options];
Но я все еще могу напечатать полученный файл с помощью Preview.app без необходимости ввода пароля.
Если я установлю kCGPDFContextOwnerPassword, документ будет заблокирован паролем (но не функцией печати)
Что я делаю неправильно?
Спасибо!
2 ответа
Решение
После использования CFMutableDictionaryRef вместо NSMutableDictionary, это наконец работает. Не спрашивай меня почему...:D
Задавать kCGPDFContextAllowsPrinting
значение для kCFBooleanFalse
но по default
значение этого ключа kCFBooleanTrue
,
Позволяет ли документ печатать при разблокировке с помощью пароля пользователя.