Bei der Arbeit an einer Feed-Lesung iPhone-App, die Nsdata (HTML und PDF) in einem UIWebView anzeigt. Ich stoße in einer PDF-Validierungslogik auf einen Haken. Ich habe ein NSData-Objekt, von dem ich weiß, dass es eine Datei mit der Erweiterung .pdf enthält. Ich möchte ungültige PDFs davon abhalten, weiter zu kommen. Hier ist mein erster Versuch Validierungscode, die für eine Mehrzahl der Fälle scheint zu funktionieren:Wie validiere ich, dass eine NSData eine PDF ist?
// pdfData is an NSData *
NSData *validPDF = [[NSString stringWithString:@"%PDF"] dataUsingEncoding: NSASCIIStringEncoding];
if (!(pdfData && [[pdfData subdataWithRange:NSMakeRange(0, 4)] isEqualToData:validPDF])) {
// error
}
Leider ein neues pdf vor ein paar Tagen hochgeladen wurde. Es ist in dem Sinne gültig, dass das UIWebView es gut anzeigt, aber es schlägt meinen Validierungstest fehl. Ich habe das Problem auf die Tatsache aufgespürt, dass es am Anfang eine Menge von Müll-Bytes war, wobei die% PDF Mitte durch den 14. Satz von Hex-Zeichen kam (die 25 oder% ist genau das 54. Byte):
%PDF: 25504446
Breaking PDF: 00010000 00ffffff ff010000 00000000 000f0100 0000b5e0 04000200 01000000 ffffffff 01000000 00000000 0f010000 0099e004 00022550 44462d31 etc...
Was ist die beste Vorgehensweise für die Validierung von NSData als PDF?
Was könnte mit dieser bestimmten PDF-Datei falsch sein (sie behauptet, sie sei von PaperPort 11.0 codiert, was auch immer das ist)?
Danke,
Mike
es gibt nichts in ImageIO, die dabei helfen können? – nielsbot