2013-07-28 91 views
7

我有一个PDF文件,我从服务器下载,有时用户上传损坏的PDF,我需要检查我的应用程序是否可以打开这样的文件。如何检查iOS中损坏的PDF?

那么有没有一种内置的方式可以用来检查PDF损坏?如果不是有免费的轻量级PDF框架,我可以用来查看或检查损坏?

注:目前我在UIWebView上打开PDF文件。

+0

损坏如何?竞争垃圾还是只有某些缺陷的细节? – mkl

+0

嗯,我不确定文件的哪个部分已损坏。当我试图用PDF阅读器打开它时(例如Adobe Reader),我知道它已损坏。 在我的情况下,我只在打开该文件时看到一个白页,所以我想通知用户文件已损坏,就像正常的PDF阅读器一样。 –

回答

14

我找到了使用CoreGraphics PDF绘图API的解决方案。 感谢您的this answer

NSString *path = [[NSBundle mainBundle] pathForResource:@"A_Corrupted_PDF" ofType:@"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"); 
} 
CGDataProviderRelease(provider); 
CGPDFDocumentRelease(document); 
+0

感谢这帮了我 – kevinl

+0

这是不是在所有的工作:(是否有任何替代方法来检查是否损坏或不? –