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, документ будет заблокирован паролем (но не функцией печати)

Что я делаю неправильно?

Спасибо!

CGPDFContext Reference

2 ответа

Решение

После использования CFMutableDictionaryRef вместо NSMutableDictionary, это наконец работает. Не спрашивай меня почему...:D

Задавать kCGPDFContextAllowsPrinting значение для kCFBooleanFalse но по default значение этого ключа kCFBooleanTrue,

Позволяет ли документ печатать при разблокировке с помощью пароля пользователя.

Другие вопросы по тегам