我正在使用以下行创建PDF参考:
********** CGPDFDocumentRef thePDFDocRef = CGPDFDocumentCreateWithURL(theURL); **********
thePDFDocRef返回NULL,但加载没有密码保护的文件也可以正常运行ios 9 beta 5。
只有问题是ios 9 beta 5,但它适用于ios 9 beta 4及以下版本,如ios 8,7,6等......
CGPDFDocumentRef CGPDFDocumentCreateX(CFURLRef theURL, NSString *password)
{
CGPDFDocumentRef thePDFDocRef = NULL;
if (theURL != NULL) // Check for non-NULL CFURLRef
{
thePDFDocRef = CGPDFDocumentCreateWithURL(theURL);
if (thePDFDocRef != NULL) // Check for non-NULL CGPDFDocRef
{
if (CGPDFDocumentIsEncrypted(thePDFDocRef) == TRUE) // Encrypted
{
// Try a blank password first, per Apple's Quartz PDF example
if (CGPDFDocumentUnlockWithPassword(thePDFDocRef, "") == FALSE)
{
// Nope, now let's try the provided password to unlock the PDF
if ((password != nil) && ([password length] > 0)) // Not blank?
{
char text[128]; // char array buffer for the string conversion
[password getCString:text maxLength:126 encoding:NSUTF8StringEncoding];
if (CGPDFDocumentUnlockWithPassword(thePDFDocRef, text) == FALSE) // Log failure
{
#ifdef DEBUG
NSLog(@"CGPDFDocumentCreateX: Unable to unlock [%@] with", theURL);
#endif
}
}
}
if (CGPDFDocumentIsUnlocked(thePDFDocRef) == FALSE) // Cleanup unlock failure
{
CGPDFDocumentRelease(thePDFDocRef), thePDFDocRef = NULL;
}
}
}
}
else // Log an error diagnostic
{
#ifdef DEBUG
NSLog(@"CGPDFDocumentCreateX: theURL == NULL");
#endif
}
return thePDFDocRef;
}
答案 0 :(得分:2)
我在iOS 9 Beta 5中也发现了同样的问题。 预览不要求密码或打开受保护的PDF。
iOS Mail应用程序中的行为也相同。 STEP:将pdf附加到邮件并尝试打开...
必须是iOS 9 Beta 5错误...