如何检查PDF是否有效并且可以在UIWebView

时间:2017-08-03 06:59:11

标签: ios objective-c cocoa-touch pdf uiwebview

我想知道是否有一种快速方法可以检查PDF文件的格式是否正确以及UIWebView可以在将其提供给UIWebView之前打开吗?

如果无法打开PDF文件,我最终会收到此委托回电,但我想根据它是否会打开来决定将此PDF传递给UIWebView。我尝试使用NSFileManager,但无法为此遇到任何可靠的API。知道如何实现这一目标吗?

public func webView(_ webView: UIWebView, didFailLoadWithError error: Error)

请注意:我正在从Documents目录加载此PDF。由于数据下载不完整,此PDF可能无效。

1 个答案:

答案 0 :(得分:1)

可能是因为它无效/已损坏或无法打开其他内容,您可以尝试下面的代码行并检查它是否是有效的pdf文档并且可以打开它:

NSString *path = [[NSBundle mainBundle] pathForResource:@"example_PDF" ofType:@"pdf"];//Path of your PDF
NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];

CGDataProviderRef provider = CGDataProviderCreateWithCFData((__bridge CFDataRef)data);
CGPDFDocumentRef document = CGPDFDocumentCreateWithProvider(provider);

if (document == nil) {
    NSLog(@"The PDF is corrupted");//Can't be opened
}
CGDataProviderRelease(provider);
CGPDFDocumentRelease(document);