2012-08-04 5 views
2

enter image description hereComment lire le fichier PDF qui est dans le sous-dossier du dossier Resourse dans webview?

J'ai un document de formate PDF dans le dossier du sous-dossier Resourse dans mes application.i ont essayer de lire ces documents comme celui-ci way.here est mon code.

NSString *path = [[NSBundle mainBundle] pathForResource:chapter ofType:@"pdf"]; 
    NSURL *targetURL = [NSURL fileURLWithPath:path]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; 
    [[webView scrollView] setContentOffset:CGPointMake(0,500) animated:YES]; 
    [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(0.0, 50.0)"]]; 
    [webView loadRequest:request]; 
    [self.view addSubview:webView]; 
    [webView release]; 

Dans ce code « chemin » retour de la valeur Nill, quand je vérifie dans console.but quand je vérifie la chaîne « chapitre » qui emmagasinent mon désir pdf nom du document, toujours-il l'un des nom du document pdf. Dans Console quand mon programme plante, il montre quelque chose comme ça.

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 
'-[UIWebView scrollView]: unrecognized selector sent to instance 0x6587d20' 

Toute aide sera recommandée.

+0

Ici, pathForResource est une chaîne et vérifiez que vous avez fourni la bonne chaîne. Vous fournissez un chapitre qui est quoi ?? Est-ce la chaîne? –

+0

chapitre est une chaîne qui contient mon nom de document désir. – jamil

+0

remvove cette ligne [webView stringByEvaluatingJavaScriptFromString: [NSString stringWithFormat: @ "window.scrollTo (0.0, 50.0).? "]];. Supprimez cette ligne que votre contenu de réglage de décalage à 500 –

Répondre

3

Êtes-vous vérifier votre fichier pdf dans votre projet?

enter image description here

je teste un code suivant. aucun problème.

Veuillez vérifier votre fichier chapter.pdf dans votre projet. le point est le chemin relatif.

Doit être sensible à la casse. "Chapter"/"chapter" n'est pas equalString.

NSLog(@"path:%@",[[NSBundle mainBundle] pathForResource:@"chapter" ofType:@"pdf"]); 


console: 
    /var/mobile/Applications/72AFA069-D83E-469A-A687-AEAFDB0B4D97/TableViewTest.app/chapter.pdf 

NSLog(@"path:%@",[[NSBundle mainBundle] pathForResource:@"Chapter" ofType:@"pdf"]); 


console: 
    (null) 

self.myWebView = [[[UIWebView alloc] initWithFrame:webFrame] autorelease]; 
self.myWebView.backgroundColor = [UIColor whiteColor]; 
self.myWebView.scalesPageToFit = YES; 
self.myWebView.delegate = self; 
[self.view addSubview:self.myWebView]; 
[self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"chapter" ofType:@"pdf"]]]]; 

enter image description here


Dans le nom de votre dossier de projet disparaît dans un paquet iPhone réelle. Vous avez créé un dossier appelé Resource-Common, mais il finit par disparaître dans NSBundle.

enter image description here

Voir l'image ci-dessous. Les deux sont intégrés. nom du dossier dans le projet est seulement le dossier visible dans xcode.

enter image description here

Si vous voulez toutes les listes de fichiers pdf dans NSBundle. essayez de suivre le code.

NSArray *pdfCollection = [[NSBundle mainBundle] pathsForResourcesOfType:@"pdf" inDirectory:nil]; 

enter image description here

+0

doit être sensible à la casse « chapitre »/ « chapitre »n'equalString –

+0

Vous postez télécharger le code dans votre lien Pour l'instant, je ne savoir exactement quel est le problème –

+0

Quel est le chapitre ??? S'il vous plaît faites les essais suivants NSString * str = @ "votre nom de fichier pdf"; // NSString * path = [[NSBundle mainBundle] pathForResource:.. str ofType: @ "pdf "]; –

0

ScrollView de UIWebView est une propriété en lecture seule selon Apple doc: La vue de défilement associée à l'affichage Web. (lecture seulement). Mais vous l'avez traité comme un UIScrollView que ce n'était pas. C'était le message d'erreur.

Questions connexes