2011-02-24 4 views
1

Je n'arrive pas à trouver comment générer sur le serveur un PDF à partir d'une page Web lourde de javascript provenant de Tomcat (l'application est Pentaho CE). Le contenu est un tableau de bord qui répond à l'interaction de l'utilisateur. Pentaho (l'application) remplace dynamiquement les divs avec divers contenus via les appels AJAX. Je voudrais exporter en pdf quel que soit l'état où l'utilisateur a le tableau de bord. Il n'y a pas de restrictions sur ce que je peux mettre sur le serveur, mais je dois éviter que le client installe quoi que ce soit.Générer un PDF à partir d'une page Web Tomcat

J'ai pris un coup d'œil à cela, avec un tas d'autres google-fu: JSP/HTML Page to PDF conversion

wkhtmltopdf semble être un choix populaire; avant que je commence à me heurter la tête, j'ai quelques questions:

  • Est-ce que wkhtmltopdf peut gérer les jsps protégées par mot de passe où l'authentification est gérée par l'application? Est-ce que les divs chargées dynamiquement le casseraient?
  • Existe-t-il un moyen de renvoyer éventuellement la vue client au serveur pour traitement? Je lis sur la capture d'écran ...
  • Une autre option qui pourrait fonctionner serait d'automatiser un accès local au tableau de bord sur le serveur via un navigateur web hébergé par le serveur et de générer un PDF de cette façon ... est-ce possible, compte tenu des contraintes de Tomcat et de la protection par mot de passe gérée par l'application? Les composants javascript générés par Pentaho ne sont pas accessibles en dehors de l'application.

Merci!

EDIT:

Bonne nouvelle! wkhtmltopdf fonctionne! Genre de. J'ai dépassé l'authentification par mot de passe en mettant les détails de connexion à travers une chaîne de requête, et je reçois maintenant un pdf de la bonne page. Le problème est qu'aucun composant javascript n'apparaît ... (ils fonctionnent pour des pages comme yahoo.com, alors peut-être qu'il me manque quelque chose ici).

Répondre

1

Si vous avez beaucoup d'appels AJAX, vous devriez les attendre. Utilisez l'argument --javascript-delay x, où est x est le temps d'attendre.

+0

Cela a aidé avec un problème que j'avais avec les graphiques de rendu partiel, mais j'ai abandonné le problème dans son ensemble. Quelque chose dans le webkit de wkhtmltopdf est étouffant pendant le chargement de javascript et je ne peux pas le comprendre. – don

Questions connexes