PDF

Bonjour à  tous, comme je l'ai dit dans ma présentation je suis débutant en développement iPhone et je ' m'amuse un peu ' à  essayer des choses, ici ma question est la suivante :

dans ma view j'ai mit un simple button et je voudrais à  l'action sur ce bouton ouvrir un pdf qui est dans mon projet.

Merci d'avance pour vos réponses.

Réponses

  • BunoBuno Membre
    Hello,


    'Badz' a écrit:


    Merci d'avance pour vos réponses.


    Il faudrait d'abord une question... image/kiss.gif' class='bbc_emoticon' alt=':-*' />



    Aller, au hasard...utilises une webview.
  • BadzBadz Membre
    [font=helvetica, arial, sans-serif]' dans ma view j'ai mit un simple button et je voudrais à  l'action sur ce bouton ouvrir un pdf qui est dans mon projet '[/font]

    [font=helvetica, arial, sans-serif]Je pensais [/font][font=helvetica, arial, sans-serif]ma question logique, autant pour moi, le but serait juste d'ouvrir le pdf après l'action sur le bouton en faite, donc comment faire ? quelle méthode utiliser ?[/font]
  • La doc Apple traite du sujet => ici.
  • BadzBadz Membre
    La doc' jamais su la lire et l'utiliser, je ne comprends malheureusement qu'avec des exemples concrets, ce qui est difficile à  trouver des fois.
  • Ah désolé alors. N'ayant jamais essayé d'afficher du pdf avec iOS, je n'ai pas d'exemple à  te donner. Tu trouveras peut-être ton bonheur avec une recherche Google sur "ios draw pdf" ?
  • Il y a au moins un exemple Apple qui fait ça.
  • BunoBuno Membre
    'Buno' a écrit:


    Aller, au hasard...utilises une webview.


    Je pensais ma réponse logique...Utilises une webview pour afficher ton pdf.
  • BadzBadz Membre
    Effectivement dans une webview c'est simple, merci à  toi image/smile.png' class='bbc_emoticon' alt=':)' />
  • BadzBadz Membre
    mars 2012 modifié #10
    Bonjour à  tous,

    Continuant ma petite appli pour lire, chercher etc dans un pdf j'ai un soucis que je n'arrive pas à  résoudre :

    capturedcran20120323135.jpg
  • AliGatorAliGator Membre, Modérateur
    Et alors quelle est la question ?



    Le message d'erreur explique clairement ce qui ne va pas : les méthodes "highlightAllOccurencesOfString" et "removeAllHighlights" n'existent pas, ce ne sont pas des méthodes de UIWebView.

    Et même si tu mettais en doute le message d'erreur qui est pourtant plutôt clair, le premier réflexe à  avoir dans ce cas est d'aller dans la documentation Apple. Tu vas regarder dans la doc de UIWebView, et t'apercevoir qu'en effet ces méthodes sont inexistantes.



    C'est bien beau de piquer des bouts de code sur le net, mais dans ce cas il faut lire tout l'article qui explique comment faire et comprendre ce qui y est expliqué, et pas se contenter de copier simplement le code.



    Déjà  si tu lis bien l'article il fait une catégorie (au sens ObjC) sur UIWebView, et de l'injection de code JS dans la WebView pour pouvoir rajouter ces méthodes. C'est d'ailleurs une bonne idée et une pratique très propre, mais si tu veux faire de même, il faut bien sûr suivre les étapes logiques, rajouter le JS à  ton bundle, faire la catégorie, et l'importer avant de pouvoir l'utiliser.

    Et si en plus tu lis un peu l'article tu comprends comment ça marche, à  savoir que ça traverse l'arbre DOM de la page HTML (par la méthode DFS). Or si toi tu utilises une WebView non pas pour afficher du HTML mais une page PDF, forcément tu auras du mal à  avoir un DOMTree...
  • BadzBadz Membre
    mars 2012 modifié #12
    Je précise je suis débutant en prog', t'as pas du le comprendre ça ...

    J'ai utilisé la méthode SearchWebView qui se trouve dans [font=helvetica, arial, sans-serif]SearchWebView.h[/font] dans mon code, et maintenant j'ai une erreur qui me dit qu'il ne sait pas quelle méthode utiliser pour les 2 fonctions highlight et removehighlight ...

    Désolé si je suis pas clair j'ai vraiment du mal ^^
  • AliGatorAliGator Membre, Modérateur
    Heu sans le code de ton SearchWebView.h ça va être dur de t'aider en fait.

    N'oublie pas qu'on n'est pas devant ton code, on ne peut pas deviner : il nous faut un peu plus d'informations.
  • BadzBadz Membre
    SearchWebView.h :





    @interface SearchWebView : UIWebView



    - (NSInteger)highlightAllOccurencesOfString:(NSString*)str;

    - (void)removeAllHighlights;



    @end



    SearchWebView.m:





    #import "SearchWebView.h"

    #import "ViewController.h"



    @implementation SearchWebView



    - (NSInteger)highlightAllOccurencesOfString:(NSString*)str

    {

    NSString *path = [[NSBundle mainBundle] pathForResource:@UIWebViewSearch ofType:@js];

    NSString *jsCode = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

    [self stringByEvaluatingJavaScriptFromString:jsCode];



    NSString *startSearch = [NSString stringWithFormat:@uiWebview_HighlightAllOccurencesOfString(';%@';)",str];

    [self stringByEvaluatingJavaScriptFromString:startSearch];



    NSString *result = [self stringByEvaluatingJavaScriptFromString:@uiWebview_SearchResultCount];

    return [result integerValue];

    }



    - (void)removeAllHighlights

    {

    [self stringByEvaluatingJavaScriptFromString:@uiWebview_RemoveAllHighlights()];

    }



    @end



    viewController.h :





    #import <UIKit/UIKit.h>



    @interface ViewController : UIViewController <UIWebViewDelegate, UIScrollViewDelegate> {

    IBOutlet UIWebView *theWebView;

    }



    @property (retain, nonatomic) IBOutlet UIWebView *theWebView;

    -(IBAction)searchButtonPressed:(id)sender;

    -(IBAction)clearHighlights:(id)sender;



    @end



    viewController.m:





    #import "ViewController.h"

    #import "SearchWebView.h"



    @implementation ViewController

    @synthesize theWebView;



    -(IBAction)searchButtonPressed:(id)sender

    {

    [theWebView highlightAllOccurencesOfString:@Lorem];

    }



    -(IBAction)clearHighlights:(id)sender

    {

    [theWebView removeAllHighlights];

    }



    - (void)didReceiveMemoryWarning

    {

    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.

    }



    #pragma mark - View lifecycle



    - (void)viewDidLoad

    {

    [super viewDidLoad];



    //Load the HTML from the main application bundle

    NSString *thePath;

    NSBundle *thisBundle = [NSBundle mainBundle];

    thePath = [thisBundle pathForResource:@document ofType:@pdf];

    NSURL *theURL = [NSURL fileURLWithPath:thePath];

    [theWebView loadRequest:[NSURLRequest requestWithURL:theURL]];



    }



    Voilà  tout le code et j'ai bien rajouté le .js au bundle.
  • BadzBadz Membre
    Problème résolu.

    Merci à  ceux qui m'ont aidé
  • AliGatorAliGator Membre, Modérateur
    Hello



    La moindre des choses ne serait-elle pas d'indiquer la solution qui t'a permis de résoudre ton problème, pour que si certains ont le même souci que toi ils puissent profiter de cette solution ?!
  • BadzBadz Membre
    mars 2012 modifié #17
    Bien sur, je suis parti sur une autre solution que j'avais trouvé sur le net et donc j'ai utilisé FASTPDFKIT et le tuto qui va avec : [media]

    Simple et très efficace.
Connectez-vous ou Inscrivez-vous pour répondre.