Lancer des conversion PDF à partir d'une page php d'un Intranet

Intro || Précisions || Technologies utilisées || Prérequis || Principe de fonctionnement || Mise en oeuvre || Notes supplémentaires || Commentaires et contact

/! AVERTISSEMENT : Cette page n'a pas pour objectif de mettre un disposition un script "prêt à l'emploi" mais plutôt d'offrir des pistes et des solutions pour des developpeurs souhaitant mettre en place un tel système. Vous pouvez laisser vos questions mais aucun support n'est garanti. En fonction de votre configuration, cette solution peut aussi ne pas marcher. Aucun résultat n'est garanti. Si vous pensez que cette solution est une bidouille, hé bien oui c'en est une! Mais elle fonctionne bien chez moi! :-p

Voici comment réaliser gratuitement un système de conversion de fichier au format pdf pour lancer des conversions à partir d'un Intranet en php :

La solution ci dessous permet d'obtenir le résultat suivant (l'interface est épurée pour simplifier le code) :


A partir d'un formulaire web le client sélectionne le fichier à convertir en pdf :


puis on clique sur valider, un message s'affiche :


Quelques secondes plus tard une nouvelle page s'affiche :


Dans cet exemple on peut ainsi récupérer le fichier pdf créé en cliquant sur le lien.


L'avantage est que l'on peut ensuite manipuler le fichier pdf créé avec php et donc associer n'importe quel traitement possible en php : publier, renommer, envoyer par mail, visualisation....etc

Cette solution a été testée avec succès sous Windows2000 avec un serveur IIS/php. Elle devrait aussi fonctionner avec un serveur Apache. Par contre, elle ne fonctionnera pas sous Linux :'-(


Précisions :

>> La conversion s'effectue sur la machine du client, ce qui a pour avantage de ne pas faire travailler le serveur. Cependant, il est nécessaire d'installer pdfcreator (logiciel gratuit) sur tous les clients (installation rapide, voir procédure ci-après)

>> Sachez que cette solution est avant tout adaptée à un Intranet car il est nécessaire que certaines fonctionalités de sécurité soient activées ce qui est rarement le cas sur les hébergeurs web mais qui est tout à fait envisageable sur un Intranet. Les paramétrages requis sont détaillés ci dessous dans les prérequis.


Technologies utilisées :

> logiciel PDFCreator 0.8.1 à installer sur chaque client de cette solution (nb : rapide à installer)
> php
> javascript


PREREQUIS


Voici les prérequis INDISPENSABLES pour pouvoir mettre en oeuvre cette solution sans mauvaise surprise :

>> La sécurité javascript doit être désactivée sur le domaine du serveur (voir mise en oeuvre)
C'est pourquoi cette solution est essentiellement adaptée à un Intranet.

>> Les clients (Postes Utilisateurs) du système doivent être "Utilisateurs avec pouvoir" sur leur poste
Ceci est une restriction de PDFCreator. Cependant, il est apparement possible de faire fonctionner PDFCreator sur un compte Utilisateur normal, voir la Page de Framasoft.net ou le Forum de SourceForge.net

>> Les clients doivent posséder le logiciel correspondant au format du fichier qu'il veulent convertir
Par exemple pour convertir un fichier .doc, il est nécessaire d'avoir Word d'installé sur la machine cliente

>> Le service affichage des message doit être activé sur les machines clientes (voir mise en oeuvre)



PRINCIPE DE FONCTIONNEMENT

Lisez ceci pour mieux comprendre les étapes de la mise en oeuvre :

Il y a deux étapes lors de la conversion pdf en ligne (gérée par deux fichiers):
1 - Lancement de pdf créator à partir d'une page html
2 - Récupération du fichier généré par PDFCreator avec une page php


1 - La première étape lance PDFCreator à partir d'une formulaire html
Cela se déroule comme suit :
> Le client choisi le fichier à convertir via un formulaire sur une page web
> Une fonction javascript lance PDFCreator sur le poste du client (en local) de manière à créer le fichier pdf sur un lecteur partagé sur le serveur

C'est pourquoi il faut :
- Créer un répertoire partagé sur le serveur
- Installer le logiciel PDFCreator et le configurer correctement
- Copier la page contenant le formulaire et la fonction javascript pour lancer PDFCreator


2 - L'objectif de la deuxième étape est de pouvoir récupérer le fichier pdf généré avec php puis en faire ce que l'on désire

Cela se déroule comme suit :
> Le formulaire renvoie l'utilisateur vers une page php
> Le script php récupère le fichier dans le répertoire partagé du serveur

C'est pourquoi il faut :
- Copier le script permettant de récupérer le fichier sur le serveur
- Personnaliser un traitement pour ce fichier (visualisation, publication...)

Pour réaliser ces étapes, poursuivez avec le détail de la mise en oeuvre


MISE EN OEUVRE

Sommaire

a) Paramétrer la machine cliente (Paramètres javascript, service affichage des message activé)
b) Créer un répertoire partagé sur le serveur, accessible par php et par le web
c) Installer PDFCreator sur la machine cliente / Configurer PDFCreator sur la machine cliente
d) Copier les 2 fichiers 'formulaire_conversion.html' et 'conversion.php' sur le serveur dans un même répertoire
e) Paramétrer les variables du fichier conversion.php puis Tester en tapant http://votreserveur/.../formulaire_conversion.html dans la navigateur client
f) Personnaliser le traitement si nécessaire

Pour mieux comprendre les étapes de la mise en oeuvre, consulter le principe de fonctionnement
Sinon poursuivez avec le détail de la mise en oeuvre

Etape (a) Paramétrer la machine cliente :

-> Pour désactiver la sécurité javascript sur le domaine sous Internet Explorer : Menu Outils -> Options Internet -> Sécurité -> Sites de confiances : ajouter le nom de votre serveur Intranet sur lequel la page figurera. Ensuite dans "Personnaliser le niveau", assurer vous que les options "Contrôles ActiveX et Plugins" sont sur 'Activé'

->Pour activer le service affichage des messages, Aller dans gestion de l'ordinateur, services et paramétrer ce service en "automatique", si besoin le démarrer ensuite.

 

Etape (b) Créer un répertoire partagé sur le serveur :

Créer un répertoire partagé sur le serveur.
Ce répertoire doit être accessible par php et par accès web : il doit donc se situer dans le site lui même.
Ce répertoire contiendra les fichiers générés par PDFCreator
Pour la suite de la procédure, ce répertoire sera intitulé "Repertoire_cible"

 

Etape (c) Installer PDFCreator sur la machine cliente, le configurer et le tester :
Télécharger PDFCreator V0.8.1 à cette adresse :
http://prdownloads.sourceforge.net/pdfcreator/PDFCreator-0_8_1_AFPLGhostscript.exe
> L'installer sur une machine cliente en mode "Installation standard" (mode par défaut)
> Le configurer comme suit :
- Paramètres Généraux : Activer "Pas de message de confirmation pour basculer en mode imprimante par défaut"
- Paramètres Autosave : Activer Autosave avec comme nom de fichier "" et comme répertoire pour la sauvegarde automatique le chemin UNC (nomserveurnompartage) du "Repertoire_cible" (étape 1a) par exemple votre serveur s'appelle "srvintranet" et vous avez partagé votre Répertoire cible sous le nom rep_cible (étape 1a) : donc vous écrirez "srvintranetrep_cible"
> Le tester en imprimant un document Word avec l'imprimante nommée PDFCreator. En cas de problème, voir ici ou ici

NB : Cette étape doit être répétée sur chaque poste client du système / Si vous ne voulez pas configurer PDFCreator en AutoSave lisez "A propos de l'option /Optionsfile"




Etape (d) Placer les 2 fichiers 'formulaire_conversion.html' et 'conversion.php' sur le serveur dans un même répertoire
Voici le formulaire qui permettra de sélectionner le fichier et de lancer la conversion avec PDFcreator

formulaire_conversion.html (faire clic droit > Enregistrer sous) : Placer ce fichier sur le serveur

Conversion.php (faire clic droit > Enregistrer sous) : Placer ce fichier sur le serveur dans le même répertoire que le formulaire

 

Etape (e) Paramétrer les variables du fichier conversion.php

Editer le fichier conversion.php et paramétrer les deux variables php

Vous pouvez dès à présent tester la solution en tapant http://votreserveur/.../formulaire_conversion.html dans la navigateur client

 

Etape (2b)Créer un traitement pour ce fichier (visualisation, publication...)

Compléter éventullement le code du script conversion.php en fonction de vos besoins


Notes supplémentaires

> Couplé avec un script php de publication de fichier, ce système permettra aux utilisateurs de gérer efficacement eux mêmes la publication de fichier.

>Trouvez de l'aide sur PDFCreator aux adresses suivantes :

Liens Sponsorisés :

http://www.framasoft.net/article1572.html
http://sourceforge.net/forum/forum.php?forum_id=194224

> A propos de l'option /Optionsfile

L'utilisation de l'option sauvegarde automatique ne permettra plus aux utilisateurs d'utiliser PDFCreator comme imprimante pdf manuelle. Si vous souhaitez toutefois préserver cette possibilité pour pouvoir permettre aux utilisateurs de continuer à utiliser PDFCreator en mode sauvegarde manuelle, sachez qu'il existe une option nommé OptionsFile qui permet - d'après la documentation de PDFC 0.8.1 - de pouvoir lancer PDFCreator en fonction de paramètre différents fournis dans un fichier .ini.

L'utilisation de ce paramètre dans la fonction javascript du fichier formulaire_conversion.htm pourrait permettre aux utilisateurs de continuer à utiliser Pdfcreator en mode sauvegarde manuelle.

Toutefois, je n'ai personnellement pas réussi à faire fonctionner ce paramètre en ligne de commande, c'est pourquoi il n'est pas utilisé dans cette solution. Rendez vous sur les adresses ci dessus pour en savoir plus.

>Vous pouvez laissez des commentaires ou me contacter à cette adresse :
http://zepsilon.over-blog.com/article-821172.html

 

 

 

©2005 by ZPICAUT