comment faire pour afficher un document pdf dans jsf page dans un iFrame
Quelqu'un peut m'aider dans l'affichage des documents PDF en JSF page dans un iframe?
Merci d'avance,
Suresh
donc, jsp ou jsf ?
et où voulez-vous de les afficher dans une nouvelle fenêtre ou dans un iframe?
Connexes: stackoverflow.com/questions/1776142/...
et où voulez-vous de les afficher dans une nouvelle fenêtre ou dans un iframe?
Connexes: stackoverflow.com/questions/1776142/...
OriginalL'auteur Suresh | 2009-12-21
Vous devez vous connecter pour publier un commentaire.
Suffit d'utiliser
<iframe>
la manière habituelle:Si votre problème est plutôt que le PDF n'est pas situé dans le
WebContent
, mais plutôt situé quelque part d'autre dans le système de fichiers du disque ou même dans une base de données, alors vous avez essentiellement besoin d'unServlet
qui obtient unInputStream
de il et écrit sur leOutputStream
de la réponse:De cette façon, vous pouvez simplement pointer à cette servlet à la place 🙂 E. g.:
Vous pouvez trouver un exemple complet d'une semblable servlet dans cet article.
La
<iframe>
fonctionne aussi très bien dans le JSF, en supposant que vous êtes en utilisant JSF 1.2 ou plus récente. Dans JSF 1.1 ou plus, vous devez envelopper la plaine de la vanille des éléments HTML comme<iframe>
à l'intérieur d'un<f:verbatim>
de sorte qu'elles seront prises dans le cadre du programme composant de l'arbre, sinon ils vont être délogés dans la sortie:@WebServlet(name="pdfHandler", urlPatterns={"/pdfHandler"})
, et essayer<iframe src="/pdfHandler/file.pdf"></iframe>
, mais la servlet n'a pas appelé. Bizarre. Aucune idée de pourquoi elle se comporte comme cela, BalusC?Puis l'URL est simplement faux. Ne vous prenez le chemin de contexte en compte? Votre exemple s'attend à ce que votre application est déployée sur la RACINE. Edit: oh, attendez, votre modèle d'URL doit être
/pdfHandler/*
afin d'accepter l'URL de chemin supplémentaire info au lieu de paramètres de la requête.Ouais en fait, j'ai utiliser la totalité de l'url
http://localhost:8080/MyNote-war/pdfHandler
, j'ai pensé/pdfHandler
serait assezUne autre question, j'ai donc essayer d'obtenir le nom de fichier à l'aide de
request.getPathInfo()
comme vous l'avez suggéré. - Je exécuter la servlet sur mon navigateur web comme cettehttp://localhost:8080/MyNote-war/pdfHandler
, puis j'ai eunull
retour de mon chemin, ce qui est correct, mais si j'ai ajouter le nom de fichier, la servlet plus invoquer plus. Donc comme cehttp://localhost:8080/MyNote-war/pdfHandler/file.pdf
, j'ai euthe requested resource is not available
. Aucune idée, BalusC?Le modèle d'URL doit être
/pdfHandler/*
. Avez-vous remarqué le modifier dans mon commentaire précédent?OriginalL'auteur BalusC
Je vous recommande de regarder http://www.jpedal.org/. Vous pouvez convertir chacune des pages d'un document pdf vers des images et de les livrer séparément pour le navigateur.
Cette approche est plus sécurisé pour votre application, puisque le pdf est de ne jamais envoyer au client.
"Cette approche est plus sécurisé pour votre application, puisque le pdf est de ne jamais envoyer au client" Comment venir?! N'est-ce pas tout ce qui est affiché dans le navigateur est en réalité téléchargé sur la machine du client à la première fois? Et ce d'inclure tous les css, js, images, fichiers html !
Chaque page est affichée au format jpg et pdf n'est pas "directement accessible par l'utilisateur final. Bien sûr, il pourrait profiter de la "trou analogique" et télécharger chaque page. Toutefois, notez que l'utilisateur aura à parcourir l'ensemble du document, et cela peut prendre un moment. En outre, vous êtes en mesure d'enregistrer cette information sur le serveur et prendre les mesures appropriées.
OriginalL'auteur Dani Cricco