在我的一个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文件。
先谢谢!!
答案 0 :(得分:0)
编辑:您cannot
中的open
password protected
PDF
UIWebView
除非您unlock
,否则<{1}}。
解决方案需要先unlock
使用CGPDFDocumentUnlockWithPassword
:
CGPDFDocumentUnlockWithPassword(doc, pass).
然后,您可以在unlocked version
和NSData
中生成memory
load
到web 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)