Question

J'écris une application qui permettrait aux utilisateurs de modifier un calendrier, sa description et quelques autres choses. J'utilise jquery, php et mysql. Chaque fois que l'utilisateur apporte une modification, il met à jour la base de données de manière asynchrone.

Je voudrais leur donner la possibilité de transformer ce qu’ils fabriquent en pdf. Existe-t-il un moyen de publier sur mon serveur le code HTML brut de la page une fois que l'utilisateur a apporté des modifications?

Je pourrais régénérer la page en utilisant uniquement php sur le serveur, mais cette méthode serait plus facile si possible.

Était-ce utile?

La solution

Vous pouvez l'utiliser pour obtenir le maximum du code HTML de la page:

var htmlSource = document.getElementsByTagName('html')[0].innerHTML;

Cependant, il ne manquera pas les balises HTML et le doctype d'ouverture et de fermeture, ce qui ne vous importera probablement pas car vous pourrez le recréer très facilement sur le serveur.

Je suppose que vous pouvez simplement utiliser le même AJAX que vous utilisez déjà pour envoyer htmlSource au serveur une fois que vous l'avez récupéré.

Autres conseils

Vous pouvez certainement renvoyer le innerHTML à partir de jQuery de tout objet que vous pouvez sélectionner, bien que cela ne semble pas être la meilleure solution (voir les autres réponses pour obtenir des alternatives).

Surveillez les attaques XSS . Si vous exécutez le code HTML sans le vérifier au préalable, vous vous exposez à des risques majeurs.

Régénérer la page à partir du serveur sera votre meilleur choix. Pour obtenir une bonne expérience de téléchargement, vous devez pouvoir envoyer des en-têtes pour le type de contenu et la taille.

Pour répondre à votre question, j'utiliserais la la mise en mémoire tampon de la sortie pour capturez la sortie de vos scripts, puis utilisez l'un des nombreux outils disponibles pour convertir du HTML au format PDF.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top