2013-07-28 8 views
7

Mam plik PDF, który pobrałem z serwera, czasami użytkownicy ładują uszkodzony plik PDF i muszę sprawdzić, czy moja aplikacja może otworzyć taki plik, czy nie.Jak sprawdzić uszkodzony plik PDF w systemie iOS?

Czy jest jakiś wbudowany sposób, w jaki mogę sprawdzić uszkodzenie pliku PDF? Jeśli nie, istnieje wolna lekka frameworka PDF, której mógłbym użyć do przeglądania lub sprawdzania korupcji?

Uwaga: Aktualnie otwieram pliki PDF na UIWebView.

+0

Uszkodzone? Radzić sobie ze śmieciami lub tylko niektórymi wadami? – mkl

+0

Cóż, nie jestem pewien, która część pliku jest uszkodzona. Wiedziałem, że jest uszkodzony, gdy próbowałem otworzyć go za pomocą czytnika PDF (na przykład Adobe Reader). W moim przypadku widzę tylko białą stronę podczas otwierania tego pliku, więc chcę poinformować użytkownika, że ​​plik jest uszkodzony, tak jak zrobiłby to normalny czytnik PDF. –

Odpowiedz

14

Znalazłem rozwiązanie za pomocą interfejsów API rysowania CoreGraphics PDF. Dziękujemy za 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

dzięki temu pomógł mi – kevinl

+0

to nie działa w ogóle :(czy istnieje inny sposób sprawdzenia, czy jest uszkodzony, czy nie? –

Powiązane problemy