Cocoa PDFKit解锁加密文件

时间:2009-12-05 19:12:02

标签: objective-c cocoa macos pdfkit

我有一个PDF文档,其中设置了所有者密码但没有用户密码。因此它是加密的。

我知道所有者密码,并希望使用PDFKit来确认文档何时被解密。

我使用了PDFDocument unlockWithPassword方法,该方法在文件解锁时返回YES。但是,当文件已被用户密码解锁而非所有者密码时,此方法也会返回yes。

unlockWithPassword方法似乎不会改变我试图用来确认解密的isEncrpyted方法的状态。

我想解压缩文件,以便我可以使用write方法编写一个没有安全性的新文件。目前,在文档对象上调用此方法会导致创建零长度文件。我认为这是因为加密。

我是以正确的方式进行此操作还是应该使用其他方法来解密pdf文件。

1 个答案:

答案 0 :(得分:1)

解锁PDF后,您需要使用以下命令将其写回文件:

writeToFile:withOptions:

writeToURL:withOptions:

选项为NSDictionary

据Apple称:The most commonly-used options are kCGPDFContextOwnerPassword, kCGPDFContextUserPassword, kCGPDFContextAllowsCopying and kCGPDFContextAllowsPrinting.

“有关这些选项的更多详细信息,请参阅CGPDFContext参考中的辅助字典键,这是Quartz 2D Reference的一部分。”