2013-07-28 83 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

這是不是在所有的工作:(是否有任何替代方法來檢查是否損壞或不? –