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

标签 ios objective-c cocoa-touch pdf uiwebview

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

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

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

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

最佳答案

可能是因为无效/损坏或其他原因无法打开,您可以尝试以下代码行并检查它是否是有效的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);

关于ios - 如何检查 PDF 是否有效并且可以在 UIWebView 中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45477017/

相关文章:

ios - 为什么更改实体的属性时我的 CoreData 信息会被删除?

iphone - 为什么我的 CLLocation 速度如此不准确?

objective-c - 在进行消息转发时避免编译器警告

ios - UIColor patternImage 与 UIActivityViewController barTintColor 冲突

ios - 如何在 iOS 中以编程方式检查日历订阅的 ics feed

ios - 在 Swift 中分配来自其他类的函数

objective-c - __unsafe_unretained 代表不会建立

iphone - UIImagePickerController 奇怪的效果

ios - 使字符串中的文本与同一字符串中的其他文本不同?

ios - 是否有可能在 UITextView 中找到字符串的每一次出现并归因于该出现?