打开密码保护的PDF文件,无需在iOS中输入密码

时间:2014-03-24 07:00:23

标签: ios iphone objective-c pdf

在我的一个iPad应用程序中,我创建了PDF报告并在Web视图中显示,用户可以将该报告通过电子邮件发送给客户。以下代码我用于创建报告。

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"owner", kCGPDFContextOwnerPassword, @"user", kCGPDFContextUserPassword, kCFBooleanFalse, kCGPDFContextAllowsCopying, kCFBooleanFalse, kCGPDFContextAllowsPrinting,  nil];
UIGraphicsBeginPDFContextToFile(thefilePath, CGRectZero, dictionary);

密码保护对我来说很好。

但我们的要求是,当用户在应用程序的Web视图中打开该PDF文件时,它不应该要求密码。当用户通过电子邮件将该PDF文件发送给客户并且该客户试图查看密码时,它只会询问密码。

所以我想知道是否有任何选项,以便我们可以通过在用户在Web视图中查看时在应用程序内以编程方式提供密码来打开PDF文件。

先谢谢!!

3 个答案:

答案 0 :(得分:0)

编辑:您cannot中的open password protected PDF UIWebView除非您unlock,否则<{1}}。

解决方案需要先unlock使用CGPDFDocumentUnlockWithPassword

 CGPDFDocumentUnlockWithPassword(doc, pass).

然后,您可以在unlocked versionNSData中生成memory loadweb view(此时不受密码保护)。

答案 1 :(得分:0)

最后,我解决了这个问题,并使用滚动视图和视图创建了自己的pdf查看器。

我先解锁PDF视图,然后使用以下网址引用显示pdf视图:

http://www.cocoanetics.com/2010/06/rendering-pdf-is-easier-than-you-thought/

然后将放大/缩小分配给滚动视图。它对我来说很好。

答案 2 :(得分:0)

如果你想要的话,你可以从你创建CGPDFDocumentRef的CFURL中创建一个NSData对象:

let url = yourCFURL as NSURL
let data = NSData(contentsOfUrl: url)
相关问题