iText

HommeCocoa

Membre actif
3 Janvier 2003
173
0
Vevey - Suisse
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
 
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
 
Désolé :) mais, j'ai pas compris ce que tu cherches à faire... :-D
 
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:
 
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:
Ah c'est ça que tu veux faire !

tu dois avoir moyen de lancer une commande depuis Java
Bloc de code:
open -a 'Preview' /path/to/your.pdf
 
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)
 
son vrai nom c'est pas: "Invite de commande"?
 
son vrai nom c'est pas: "Invite de commande"?
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..)
 
Tu peux aussi utiliser Linux, histoire d'abandonner Windoze pour de bon! :)
 
Je sais bien! Mais au moins, sous Linux, il y a un vrai terminal ^^
 
Bon ben tip top ça marche, je fais comme ça:

Bloc de code:
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:
 
Acrobat reader, s'il est installé… :siffle:
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.
 
J'ai fait une commande du style :

Bloc de code:
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...
 
J'ai fait une commande du style :

Bloc de code:
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...
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 ?
 
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... ;)
 
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
 
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:

Bloc de code:
open -a Preview Factures/Mon Super PDF.pdf

par reflexe j'ai tenté avec les guillemet

Bloc de code:
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...