2011-11-08 8 views
1

Je souhaite ouvrir un fichier PDF à partir d'un fichier jsp. Le fichier jsp et le fichier PDF se trouvent dans le même répertoire. J'utilise le morceau de code suivant:comment ouvrir un fichier pdf à partir de java?

if (Desktop.isSupported()) { 
    try { 
     File myFile = new File("<file name>.pdf"); 
     Desktop.getDesktop().open(myFile); 
    } catch (IOException ex) { 
     // no application registered for PDFs 
    } 
} 

Cependant, je reçois l'erreur que le fichier est introuvable. Vérifié user.dir et il pointe vers mon tomcat/bin. Comment puis-je me référer au pdf pour l'ouvrir?

+0

Vous avez obtenu le code de cette question http://stackoverflow.com/questions/2546968/open-pdf-file-on-fly-from-java-application/2547004#2547004 – user811433

+0

ci-dessus code ouvrira PDF sur le serveur si le bureau est disponible, vous devez utiliser forward ou rediriger de jsp à pdf pour l'exposer à l'utilisateur – gertas

+0

gertas, pouvez-vous me donner un échantillon de code pour le faire? – user811433

Répondre

4

Vous devez spécifier le chemin absolu du fichier. En supposant qu'il y ait un filename.pdf dans la racine du webcontent public, cela devrait faire:

File myFile = new File(getServletContext().getRealPath("/filename.pdf")); 

Cependant, cette construction ne fonctionne pas la façon dont vous vous attendez. Il montrera le dossier de pdf dans la machine de serveur de Web, pas dans la machine de webbrowser! Ce n'est que lorsque vous exécutez à la fois le serveur Web et le navigateur Web au physiquement la même machine que cela fonctionnera. Mais cela ne se produit évidemment pas dans le monde réel lorsque vous publiez votre webapp sur Internet où le serveur Web et le navigateur Web fonctionnent sur des machines physiquement différentes.

Au lieu de cela, vous avez juste besoin de lier directement au fichier PDF.

<a href="filename.pdf">View PDF</a> 

et laisser le navigateur gérer l'affichage.

+0

Je l'ai travailler au format HTML. Mais, je veux vraiment savoir comment le faire fonctionner à partir de java/jsp. – user811433

+2

Vous avez vraiment besoin de réaliser que le code Java/JSP s'exécute dans le serveur web, pas dans webbrowser. Toutes les exécutions de webbrowser sont HTML/CSS/JS qui est généré et envoyé par Java/JSP. Si vous voulez exécuter du code Java dans webbrowser, vous devez créer un [applet] (http://download.oracle.com/javase/tutorial/deployment/applet/index.html) et l'intégrer comme '' dans la page HTML. Ceci est cependant terriblement maladroit si tout ce que vous voulez est de montrer un fichier PDF au client. – BalusC

0

Avez-vous essayé? Je viens de recevoir ceci de google, donc je ne sais pas si ça va marcher.

Process p = Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler c:\\Java- Interview.pdf"); 
     p.waitFor(); 
Questions connexes