Ce forum est en partie financé par l’affichage de publicités. Merci de désactiver votre bloqueur de publicités pour nous permettre de continuer à fournir ce service.

iText

Discussion dans 'Développement Mac' créé par HommeCocoa, 16 Août 2008.

  1. HommeCocoa

    HommeCocoa Membre confirmé

    Inscrit:
    3 Janvier 2003
    Messages:
    173
    J'aime reçus:
    0
    Bonjour,

    J'ai découvert dernièrement iText, l'API Java pour créer des PDF.
    Avec tous les tutoriels disponible sur internet,
    j'ai bien pour prendre le taureau par les cornes! Et ça marche pas mal!

    Mais il y a une chose que je n'ai pas trouvée, et d'ailleur ça ne doit pas dépendre de
    iText mais de l'API Java de base je pense.

    C'est ouvrir le PDF une fois qu'il a été créé de manière à directement l'afficher
    à l'écran...

    Si quelqu'un a une piste merci d'avance.
    Bon après-midi à tous,
    David
     
  2. HommeCocoa

    HommeCocoa Membre confirmé

    Inscrit:
    3 Janvier 2003
    Messages:
    173
    J'aime reçus:
    0
    Oups personne :mouais:
    D'abord, j'avais pensé à la classe File ou alors une plus spécifique comme FileReader, j'ai été regarder la doc de l'API mais j'ai pas trouvé de methode ouvrir un fichier...

    Ceci dis, je ne désespère pas... :p
     
  3. DarkPeDrO

    DarkPeDrO Membre d’élite
    Club MacG

    Inscrit:
    10 Juin 2008
    Messages:
    1 859
    J'aime reçus:
    87
    Désolé :) mais, j'ai pas compris ce que tu cherches à faire... :-D
     
  4. HommeCocoa

    HommeCocoa Membre confirmé

    Inscrit:
    3 Janvier 2003
    Messages:
    173
    J'aime reçus:
    0
    En faite, simplement ouvrir un document PDF à l'écran comme si je double cliquais dessus mais par Java.

    Si tu veux, je génére un PDF avec iText, et après j'aimerais l'afficher à l'écran :)

    J'espère que j'ai été plus clair.

    P.S. Hier j'ai regardé dans l'API du coté de la class Runtime et la methode exec() mais apparement c'est pour des applications... ça fonctionne pas :rose:
     
  5. p4bl0

    p4bl0 Membre d’élite
    Club MacG

    Inscrit:
    12 Juillet 2004
    Messages:
    4 772
    J'aime reçus:
    425
    Ah c'est ça que tu veux faire !

    tu dois avoir moyen de lancer une commande depuis Java
    Code (Text):
    open -a 'Preview' /path/to/your.pdf
     
  6. HommeCocoa

    HommeCocoa Membre confirmé

    Inscrit:
    3 Janvier 2003
    Messages:
    173
    J'aime reçus:
    0
    Haa ben oui en faite, simplement en utilisant le terminal! Merci :)

    Mais par contre si on utilise mon programme sous windows, ça marchera pas, il faut à ce moment là que j'utilise le terminal de windows (je sais plus son vrai nom)
     
  7. DarkPeDrO

    DarkPeDrO Membre d’élite
    Club MacG

    Inscrit:
    10 Juin 2008
    Messages:
    1 859
    J'aime reçus:
    87
    son vrai nom c'est pas: "Invite de commande"?
     
  8. p4bl0

    p4bl0 Membre d’élite
    Club MacG

    Inscrit:
    12 Juillet 2004
    Messages:
    4 772
    J'aime reçus:
    425
    mouais, le seul vraie terminal sur windows c'est Cygwin :p

    Je pense que sous windows il doit aussi y avoir une commande simple pour ouvrir un fichier avec l'application par défaut, faut juste trouver laquelle :)

    (Et si y a pas ça fait une raison de plus de trouver windows nul niark niark :rateau..)
     
  9. DarkPeDrO

    DarkPeDrO Membre d’élite
    Club MacG

    Inscrit:
    10 Juin 2008
    Messages:
    1 859
    J'aime reçus:
    87
    Tu peux aussi utiliser Linux, histoire d'abandonner Windoze pour de bon! :)
     
  10. p4bl0

    p4bl0 Membre d’élite
    Club MacG

    Inscrit:
    12 Juillet 2004
    Messages:
    4 772
    J'aime reçus:
    425
    C'est pas parce qu'il utilise GNU/Linux que son appli ne sera pas utilisé sous windows ^^ !
     
  11. DarkPeDrO

    DarkPeDrO Membre d’élite
    Club MacG

    Inscrit:
    10 Juin 2008
    Messages:
    1 859
    J'aime reçus:
    87
    Je sais bien! Mais au moins, sous Linux, il y a un vrai terminal ^^
     
  12. HommeCocoa

    HommeCocoa Membre confirmé

    Inscrit:
    3 Janvier 2003
    Messages:
    173
    J'aime reçus:
    0
    Ouais c'est ça le problème, je vais pas aller installer Linux chez la personne qui va utiliser mon truc! :p Même si ça lui ferait du bien... :siffle:
     
  13. HommeCocoa

    HommeCocoa Membre confirmé

    Inscrit:
    3 Janvier 2003
    Messages:
    173
    J'aime reçus:
    0
    Bon ben tip top ça marche, je fais comme ça:

    Code (Text):

    Runtime r = Runtime.getRuntime();
    Process p = r.exec("open -a Preview Factures/Essai.pdf");
     
    En faite il ne me reste plus qu'à faire un test pour savoir si on est sous OS X ou Win et lancer
    une autre commande en fonction.

    Sous Windows, je dois ouvrir "Invite de commande" et lancer un truc plus ou moins équivalent je suppose :rose::rose:
     
  14. Anonyme

    Anonyme Invité

    Acrobat reader, s'il est installé… :siffle:
     
  15. p4bl0

    p4bl0 Membre d’élite
    Club MacG

    Inscrit:
    12 Juillet 2004
    Messages:
    4 772
    J'aime reçus:
    425
    Ouaiye ça évidemment, mais sous windows comment on appel Abode Reader en lui passant le nom du fichier en argument sachant qu'on ne sait pas où est son executable ?

    C'est ça qu'il faut que HommeCocoa puisse faire.
     
  16. Anonyme

    Anonyme Invité

    J'ai fait une commande du style :

    Code (Text):
    C:\Program Files\Adobe\Reader 8.0\Reader>acrord32.exe c:\fichier.pdf
    Et ça fonctionne... Problème : que faire quand on passe à la version 9? C'est l'installation par défaut d'abcrobat reader, si il a été installé avec un autre path...
     
  17. p4bl0

    p4bl0 Membre d’élite
    Club MacG

    Inscrit:
    12 Juillet 2004
    Messages:
    4 772
    J'aime reçus:
    425
    C'est exactement de ça que je parlais : aucun moyen de savoir où est l'executable...
    Ou même de savoir si c'est bien Abode Reader qui est utilisé pour lire les pdf...

    C'est étonnant qu'il n'y ai pas un moyen de dire au système ouvre ce fichier avec le logiciel par défaut...

    EDIT: c'est peut-être rangé dans les registres tout ça non ? un p'tit regedit pour fouiller dans la bazar ?
     
  18. Anonyme

    Anonyme Invité

    Tu peux déclencher une application (et la piloter) sans savoir où elle est avec OLE, j'ai fait ça quelques fois en VBA ou VB mais là en java je ne sais pas si c'est possible... ;)
     
  19. Zeusviper

    Zeusviper Membre confirmé

    Inscrit:
    3 Novembre 2004
    Messages:
    436
    J'aime reçus:
    30
    Hello,

    Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler file://" + AbsolutePathFile);
    fonctionnait sous windows, mais je ne pourrai dire si ca marche encore, et sous quelles versions.

    et sinon pour ton cas tu peux regarder du côté de : https://jdic.dev.java.net/
    plus précisément le 1er exemple ici : https://jdic.dev.java.net/documentation/Examples.html
    c'est quand mm vachement plus beau! (si ca marche dans ton cas! ;) )

    ++


    PS : et juste parce que je suis retombé dessus en retrouvant la page de jdic, histoire de rappeler que la fonction exec ne permet pas d'executer tout ce qu'on ferait dans Terminal : la classe Shell : http://blog.developpez.com/adiguba?title=runtime_exec_n_est_pas_des_plus_simple
     
  20. HommeCocoa

    HommeCocoa Membre confirmé

    Inscrit:
    3 Janvier 2003
    Messages:
    173
    J'aime reçus:
    0
    Merci bien pour vos réponse!
    Zeusviper, je ne connaissais pas la classe Desktop, mais ça à l'air super pratique.

    Par contre, ça va pas être donné je pense :mouais: ...
    Car déjà je rencontre un problème plus primaire car je sais pas bien utiliser le terminal et si je veux ouvrir un document ayant un nom en 2 mots, ça marche pas... Genre:

    Code (Text):
    open -a Preview Factures/Mon Super PDF.pdf
    par reflexe j'ai tenté avec les guillemet

    Code (Text):
    open -a Preview 'Factures/Mon Super PDF.pdf'
    ce qui marche super bien depuis le terminal mais pas depuis mon programme Java...
    Pourtant j'ai fais un System.out.println() et je balance bien la bonne commande avec guillemet
    et tout le bataclan.

    Héhé... le terminal, ça semble pas donné à tous...
     
Chargement...