2013-07-04 5 views
0

J'ai posté d'autres questions plus petites concernant le problème que je décris ci-dessous et j'ai reçu quelques commentaires mais maintenant je vais essayer de l'expliquer plus en profondeur en espérant résoudre le problème.JavaFX WebVIew - PDF sur la fenêtre popup

J'ai construit une application de bureau en utilisant JavaFX 2.2 qui utilise un WebEngine pour accéder à un site web construit en utilisant des pages ADF Oracle. L'application suit les actions des utilisateurs sur les pages et stocke les données dans une base de données. Tout va très bien jusqu'à ce que j'ai besoin de montrer un fichier PDF sur un clic de l'utilisateur.

Sur le site Web actuel, l'utilisateur clique sur un bouton et une nouvelle fenêtre contextuelle s'ouvre pour afficher le fichier PDF.

Mon problème est qu'en raison de l'absence de support PDF dans JavaFX je ne peux pas afficher le pdf. Le lien réel vers le PDF est dynamique et il n'a pas de .pdf à la fin de celui-ci, donc je ne peux pas utiliser l'URL réelle pour l'envoyer à un locataire externe ou quelque chose pour l'afficher. De plus, la connexion est sécurisée, donc je ne peux pas ouvrir l'URL avec Chrome par exemple.

Les solutions possibles J'ai pensé à lire les données binaires de la réponse de WebView et créer le fichier PDF localement et ensuite l'ouvrir en utilisant Adobe de Chrome ou quelque chose. Est-ce possible? Une autre solution que j'ai pensé (pendant que j'écris cette question) est peut-être d'ouvrir l'URL que le navigateur par défaut des utilisateurs, mais comment puis-je envoyer le cookie de connexion sécurisée de l'application au navigateur.

L'un des éléments ci-dessus est-il possible? Est-ce que je manque quelque chose?

Toute aide, des indices, des liens, des idées seraient très appréciés.

Merci

Répondre

0

Je pense que la meilleure façon de faire ce que vous voulez est de télécharger le PDF et l'afficher localement. Le téléchargement en utilisant WebView semble fonctionner mais je ne connais pas l'expérience de l'utilisateur. Comme alternative, essayez d'utiliser curl ou wget. Vous pouvez passer le cookie d'autorisation à ces outils et les utiliser pour télécharger le fichier