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

How to check if a PDF is valid and can be open in UIWebView

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

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

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

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

可能是invalid/corrupted或者其他原因打不开,你可以试试下面几行代码,看看是不是有效的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);