0

我想创建一个无法打印的 PDF 文档。我为此使用了 Quartz 框架。这就是我所做的(短路):

    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,文档将被密码锁定(但不是打印功能)

我究竟做错了什么?

谢谢!

CGPDF上下文参考

4

2 回答 2

2

在使用CFMutableDictionaryRef而不是NSMutableDictionary之后,它终于可以工作了。不要问我为什么... :D

于 2012-09-20T19:14:32.727 回答
0

kCGPDFContextAllowsPrinting值设置为kCFBooleanFalsebut bydefault此键的值是kCFBooleanTrue

使用用户密码解锁时文档是否允许打印。

于 2012-12-29T12:27:52.810 回答