I. Prérequis▲
I-A. Environnement :▲
Comme vous l'aurez sûrement compris nous ne parlerons exclusivement que de systèmes Windows. En effet, l'imprimante PDFCreator n'existe pas dans les systèmes UNIX, MAC ou autre… L'objectif étant d'installer l'imprimante en mode serveur, nous aurons besoin d'un serveur d'impression Windows. Les machines clientes (sur lesquelles l'imprimante sera connectée) seront également sous Windows (XP, Seven).
I-B. Licence▲
PDFCreator est un outil libre et gratuit. Vous pouvez l'utiliser à titre personnel mais aussi dans votre entreprise.
PDFCreator is free software, distributed under the terms of the GPL (GNU General Public License). It contains modules with other licenses which are listed below.
Source : http://www.pdfforge.org/license.
I-C. Moyens▲
Il vous faudra récupérer la source d'installation du logiciel PDFCreator.
Concernant le serveur, j'utiliserai ici un Serveur Windows 2008 R2 64 bits avec le rôle serveur d'impression installé. Il est tout à fait possible de fonctionner avec une autre version de serveur Windows (2003, 2000…) et avec une architecture 32 bits également (mais les machines clientes en 64 bits ne pourront pas installer l'imprimante).
Pour les tests sur les machines clientes, nous utiliserons une machine sous Seven 64 bits. Si vous utilisez un serveur en 64 bits, toutes les machines clientes sous Windows pourront bénéficier de ce système, par contre un serveur en 32 bits vous restreindra l'accès aux seules machines Windows en 32 bits.
L'ensemble du système sera construit via des machines virtuelles gérées sous VirtualBox. Vous pouvez obtenir de l'aide sur l'installation et l'utilisation de Vbox sur le forum de Développez.com.
Un Active Directory viendra compléter le système (pour la récupération d'information) mais n'est pas obligatoire. L'Active Directory est un annuaire au sens informatique et technique chargé de répertorier tout ce qui touche au réseau comme le nom des utilisateurs, des imprimantes, des serveurs, des dossiers partagés, etc. L'utilisateur peut ainsi trouver facilement des ressources partagées, et les administrateurs peuvent contrôler leurs utilisations grâce à des fonctionnalités de distribution, de duplication, de partitionnement et de sécurisation des accès aux ressources répertoriées. J'utiliserai certaines possibilités de l'Active Directory pour donner des exemples mais il est possible d'adapter le système en fonction des besoins. De même, une baie de stockage (type Nettap) est utilisée mais non obligatoire.
Enfin un serveur de mail sortant (interne ou externe) peut être utilisé.
II. Installation et paramétrage▲
II-A. Installation du mode serveur▲
II-A-1. Installation du rôle Serveur d'impression▲
Ouvrez la console « Gestionnaire de serveur ». Cliquez dans le menu de gauche sur « Rôles ». Le serveur collectera les rôles déjà installés.
Cliquez sur « Ajouter des rôles », la fenêtre de sélection des rôles s'ouvre. Cochez « Services de documents et d'impression » puis cliquez sur « suivant ».
Cliquez encore sur « suivant » dans la fenêtre qui apparaît (c'est une fenêtre d'information).
Une fenêtre de sélection des services de rôle s'ouvre. Laissez les options telles quelles puis cliquez sur « suivant ».
Enfin, dans la dernière fenêtre cliquez sur « Installer ».
L'installation se lance.
Une fois l'opération effectuée, cliquez sur « fermer »
Votre service d'impression est désormais installé. Pour plus sûreté, relancez votre serveur.
II-A-2. Installation de PDFCreator▲
Ouvrez le dossier dans lequel vous avez téléchargé PDFCreator. Lancez l'exécutable d'installation.
Choisissez la langue d'installation puis cliquez sur « OK » :
Cochez « Paramètres avancés » puis cliquez sur suivant.
Acceptez l'accord de licence puis cliquez sur « Suivant ».
Cochez « Installation sur serveur » puis cliquez sur « Suivant ».
Cliquez sur « Suivant dans la fenêtre qui résume l'installation.
Vous pouvez choisir de donner un nom spécifique pour l'imprimante qui sera installée. Ici nous laisserons le nom standard « PDFCreator ». Cliquez ensuite sur « Suivant ».
Pour le choix des pilotes supplémentaires, cochez « Windows 2000/XP/2003 - 32bit ». Cliquez ensuite sur « Suivant ».
Si l'emplacement d'installation du programme vous convient, cliquez sur « Suivant ». Vous pouvez choisir d'installer le programme à un autre emplacement en cliquant sur parcourir.
Sauf si vous souhaitez utiliser sur le serveur les outils supplémentaires proposés, ne laissez cocher que « Fichiers programmes » et « GPL Ghostscript » (les éléments grisés) puis cliquez sur « Suivant ».
Vous pouvez ensuite choisir le dossier des raccourcis. Ici nous laisserons l'option proposée. Cliquez ensuite sur « Suivant ».
Dans la fenêtre des tâches supplémentaires, ne laissez coché que « Associer PDFCreator avec l'extension de fichier .ps ». Cliquez ensuite sur « Suivant ».
Enfin, dans la dernière fenêtre, cliquez sur « Installer ». L'installation se lancera avec les options choisies.
Une fois l'installation terminée, décochez les deux cases et cliquez sur « Terminé ».
II-A-3. Configuration de l'imprimante▲
La configuration de l'imprimante est assez simple, il n'y a que le partage à configurer.
Ouvrez la console du service d'impression en faisant « démarrer », « Outils d'administration » puis « Gestion de l'impression ».
Sélectionnez dans la partie de gauche les imprimantes. Il devrait y avoir l'imprimante installée précédemment : PDFCreator.
Faites un clic droit sur l'imprimante puis « propriétés… »
Cliquez sur l'onglet « Partage », cochez « Partager cette imprimante » puis sur « Appliquer » et enfin « OK ».
II-A-4. Paramétrage du service PDFCreator▲
PDFCreator en mode serveur nécessite la création d'un service Windows. Deux utilitaires vont nous permettre de créer ce service : SRVANY et INSTSRV. Téléchargez-les dans le dossier d'installation de PDFCreator.
Il faut ensuite déclarer SRVANY en tant que service grâce à INSTSRV. Pour ce faire, ouvrez une console Dos et entrez le code suivant :
« C:\Program Files (x86)\PDFCreator\instsrv.exe » PDFCreator « C:\Program Files (x86)\PDFCreator\srvany.exe «Â
Vous devriez avoir ce résultat :
Ouvrez l'éditeur de la Base de Registre (Démarrer → regedit) et vérifiez que la valeur du champ HKLM\SYSTEM\CurrentControlSet\Services\PDFCreator\ImagePath est bien le chemin complet vers SRVANY.EXE.
Si vous lancez le service maintenant, vous aurez un message d'erreur. Il vous faut auparavant lancer l'éditeur de la base de registre (regedit) :
- Naviguez jusqu'à la clé du service que vous venez de déclarer : HKLM\SYSTEM\CurrentControlSet\Services\PDFcreator ;
- Créez une clé « Parameters » ;
- Ouvrez la clé « Parameters » ;
- Créez une clé « Application » de type chaîne (REG_SZ) dans la clé « Parameters » ;
- Éditez « Application » et déclarez le chemin complet vers notre exécutable (« C:\Program Files (x86)\PDFCreator\PDFCreator.exe »).
Enfin, il faut maintenant reconfigurer le service à proprement parler pour qu'il puisse être lancé par un utilisateur qui possède les droits d'écriture dans les dossiers de destinations (ici les dossiers des utilisateurs enregistrés sur la Baie de stockage).
Ouvrez la console des services (Démarrer → services.msc). Rechercher le service PDFCreator que vous avez créé, puis faites un clic droit dessus et « Propriétés ».
Cliquez sur l'onglet « Connexion » puis cochez « Ce compte ». Ici j'utiliserai le compte Administrateur de l'Active Directory. Vous pouvez bien sûr créer un utilisateur AD spécifique à condition de lui donner les droits d'écriture suffisants sur les dossiers de destination. Enregistrez votre utilisateur puis cliquez sur « Appliquer » et « OK ».
Ensuite faites un clic droit de nouveau sur le service puis « Démarrer ». Si tout se passe bien votre service démarre sans problème.
II-B. Configuration des fonctionnalités de PDFCreator▲
L'idée ici est de se servir d'une fonctionnalité qu'offre le mode serveur : l'exécution de script après le traitement d'un job. Un utilisateur enverra son document à l'impression sur l'imprimante PDFCreator du serveur. L'imprimante transformera son document en fichier PDF. Pour lui renvoyer son document final, il faudrait avoir accès à son ordinateur et à sa session. C'est possible mais difficilement réalisable dans un environnement réseau un minimum sécurisé. Nous allons donc procéder de deux de façons distinctes : envoyer le document dans un dossier accessible depuis le réseau (Baie de stockage) ou l'envoyer par mail à l'utilisateur.
Dans l'exemple de la Baie de stockage, nous considérons que chaque utilisateur dispose d'un espace de stockage qui est connecté en tant que montage réseau à l'ouverture de session. Ce montage est réalisé par l'Active Directory. Nous profitons donc de ce système et enregistrons dans un champ spécifique l'information du lieu de stockage (notre script ira lire cette information…). Ici nous utiliserons le champ wWWHomePage mais il vous appartient de définir le champ que vous souhaitez. Il vous faudra faire des scripts de gestion pour enregistrer ces informations dans l'AD…
Ensuite, si l'information du dossier existe, le script enverra le fichier PDF dans le dossier cible sinon il enverra le fichier via un mail. Vous pouvez organiser les choses différemment, l'important ici est l'idée du transfert de fichier. Il est possible par exemple d'utiliser une fonction plus poussée de l'AD qui permet de basculer directement le dossier « Mes documents » des utilisateurs vers leur espace de stockage. Il n'y a donc plus de montage réseau à faire.
II-B-1. Préparation de l'environnement▲
Le système va avoir besoin de quelques éléments pour fonctionner et entre autres un espace à lui. Personnellement je préfère distinguer le répertoire d'installation et l'environnement de travail. Je vais donc utiliser une autre partition (D:) de mon serveur pour cet espace. Vous êtes libre d'opérer comme vous souhaitez, il faudra simplement adapter les chemins d'accès dans la suite du tuto à vos choix de configuration. Créer un dossier sur D : qui se nommera PDFCreator. Dans ce dossier, créer deux autres sous-dossiers, un Log et un PDF. Tous ces dossiers doivent être accessibles en écriture à l'utilisateur qui instancie le service PDFCreator (ici l'administrateur du domaine).
II-B-2. Création d'un profil PDFcreator▲
Lancez les réglages de PDFCreator (Démarrer → PDFCreator → Réglages de PDFCreator).
Dans la fenêtre qui s'est ouverte, cliquez sur « Ajouter un profil ».
Entrez un nom pour votre profil, ici j'utiliserai stockage. Cliquez sur « OK ».
Cliquez ensuite sur « Enregistrement automatique » dans la partie gauche. Entrez les éléments comme sur la figure suivante :
L'enregistrement automatique du fichier se fera donc dans D:\PDFCreator\PDF. Si vous avez décidé d'utiliser un autre espace, modifiez le chemin d'accès en conséquence.
Cliquez ensuite sur « Actions » et choisissez « Action après l'enregistrement ». Remplissez les champs comme sur l'image suivante :
Le script qui sera lancé (que nous verrons ensuite) se trouvera dans D:\PDFCreator.
Enfin, cliquez sur l'icône d'enregistrement tout en haut et choisissez comme lieu d'enregistrement du profil D:\PDFCreator et comme nom stockage.ini (à adapter en fonction de vos précédents choix).
Cliquez ensuite sur Enregistrer.
II-B-3. Lancement du service PDFCreator avec un profil▲
Il faut maintenant modifier l'instance du service pour que PDFCreator se lance avec le profil précédemment créé.
Rouvrez l'éditeur de base de registre. Modifiez la clé application que nous avons créée de cette façon :
Il faut en fait rajouter /OptionsFile au lancement de l'application avec comme argument le fichier ini précédemment créé. Attention, il ne doit pas y avoir d'espace entre OptionFile et le guillemet.
Relancer ensuite le service PDFCreator.
II-C. Script de gestion▲
La dernière étape concerne le script de gestion. Ce script va interroger l'active directory, récupérer les informations de l'utilisateur et déclencher l'action appropriée (soit envoi du fichier dans le dossier de l'utilisateur, soit par mail).
Le script est en vbs, il n'est pas très long et est suffisamment détaillé pour être compris. Vous pouvez l'adapter sans souci à vos besoin et environnement.
'##==============================================##
'##== But : ce script gère la réception des fichiers PDF générés par pdfcreator.
'##== Il renvoie dans le dossier "Mes documents\ScanU3" de l'utilisateur le fichier
'##==si l'utilisateur est sur la Baie, sinon lui envoie par mail.
'##==============================================##
'##==============================================##
'## Déclaration des variables et objets globaux ===================##
'##==============================================##
Option
Explicit
On
Error
Resume
Next
Dim
WshShell,FSO, WshNetwork, WshProcessEnv, objDSE, Connection, CDOEmail
Set
FSO =
CreateObject
(
"Scripting.FileSystemObject"
)
Set
WshShell =
WScript.CreateObject
(
"WScript.Shell"
)
Set
WshProcessEnv =
WshShell.Environment
(
"Process"
)
Set
objDSE =
GetObject
(
"LDAP://rootDSE"
)
set
Connection =
CreateObject
(
"ADODB.Connection"
)
Set
CDOEmail =
CreateObject
(
"CDO.Message"
)
Dim
Args, Login, Repertoir, Fichier, SplitFichier, MovFichier
Set
Args =
WScript.Arguments
' tableau d'arguments
Dim
sFilter, Champs, Profondeur, Requete, RecordSet, nbRecord, Email, Scan, FichierDestination
'##==============================================##
'#========== Fonction : Mail
'#========== But : Envoi de mail
'#========== Arguments : Email_From,Email_To,sujet, message
'#========== Retour : aucun '##==============================================##
Function
Mail
(
Email_To,fichier)
CDOEmail.From
=
"pdfcreator.U3@u-grenoble3.fr"
CDOEmail.To
=
Email_To
CDOEmail.Subject
=
"Votre Fichier PDF "
CDOEmail.Textbody
=
"Veuillez trouver en pièce jointe votre fichier PDF généré avec l'imprimante PDFCreator-U3"
CDOEmail.AddAttachment
fichier
CDOEmail.Configuration.Fields.Item
(
"http://schemas.microsoft.com/cdo/configuration/sendusing"
) =
2
CDOEmail.Configuration.Fields.Item
(
"http://schemas.microsoft.com/cdo/configuration/smtpserver"
) =
"smtp.u-grenoble3.fr"
CDOEmail.Configuration.Fields.Item
(
"http://schemas.microsoft.com/cdo/configuration/smtpserverport"
) =
25
CDOEmail.Configuration.Fields.Update
CDOEmail.Send
End
Function
'##==============================================##
'#========== Fin Mail =================================#
'##==============================================##
'## Récupération du login envoyé par PDFCreator (Author)
If
Args.Count
=
1
Then
Login =
Args
(
0
)
'# Définition du dossier racine d'exécution
Repertoir =
"D:\PDFCreator"
'# Boucle sur tous les fichiers contenus dans le répertoire PDF
For
each
Fichier in
FSO.GetFolder
(
Repertoir&
"\PDF"
).Files
SplitFichier =
Split
(
Fichier.Name
, "_"
)
If
SplitFichier
(
0
) =
Login Then
'# Connexion à l'AD et récupération des infos de l'utilisateur
Connection.Provider
=
"ADsDSOObject"
Connection.Open
"ADs Provider"
sFilter =
"(&(objectclass=user)(samaccountname="
&
Login &
"))"
Champs =
";mail,wWWHomePage"
'#À modifier si vous n'utilisez pas le même champ
Profondeur =
";subtree"
Requete =
"<LDAP://"
&
objDSE.Get
(
"defaultNamingContext"
) &
">;"
&
sFilter &
Champs &
Profondeur
Set
RecordSet =
Connection.Execute
(
Requete)
nbRecord =
RecordSet.RecordCount
If
nbRecord =
0
Then
'#vérification de l'existence de l'utilisateur sur l'AD
Connection.Close
else
'#si l'utilisateur existe on récupère ses infos depuis l'ad
Email =
Recordset.Fields
(
"mail"
).Value
Scan =
Recordset.Fields
(
"wWWHomePage"
).Value
Connection.Close
'# vérification de l'existence du dossier scan
If
Scan <>
""
Then
FichierDestination =
Scan &
"\"
&
Replace
(
Fichier.Name
, Login&
"_"
, ""
)
'#Déplacement du fichier dans le répertoire de destination
FSO.MoveFile
Repertoir &
"\PDF\"
&
Fichier.Name
, FichierDestination
ElseIf
Email <>
""
Then
Mail Email,Fichier
FSO.DeleteFile
Repertoir &
"\PDF\"
&
Fichier.Name
End
If
End
if
End
If
Next
Else
WScript.Quit
End
If
Bien entendu, pour la fonction mail, il vous faut un serveur de mail sortant de disponible.
III. Test du système▲
III-A. Préparation du poste client▲
Sur l'ordinateur client, ouvrez une session avec un utilisateur test (ici utilisateur fleuryt, session ouverte depuis le domaine UGR3).
L'utilisateur dispose d'un dossier partagé et monté en tant que lecteur réseau. Un dossier Scan est présent dans ce dossier.
La fiche de l'utilisateur est renseignée avec l'information de lieu de partage (champ wWWHomePage).
Enfin, l'imprimante PDFCreator est connectée depuis le serveur d'impression.
III-B. Test depuis le poste client▲
Sur le poste client, ouvrez votre dossier de partage. Ouvrez également les propriétés de l'imprimante (clic droit sur l'imprimante puis « Propriété »).
Par défaut, le dossier est vide. Cliquez sur Imprimer une page de test. Le fichier PDF apparaîtra au bout de quelques secondes dans votre dossier.
Le fichier est déplacé du serveur dans le dossier de l'utilisateur. Vous pouvez choisir de copier seulement le fichier en modifiant le script (FSO.CopyFile) pour garder une trace par exemple.
N'hésitez pas à adapter le script à vos besoins. Il fonctionne très bien dans un environnement Active Directory, mais c'est le principe même qu'il faut retenir → faire une action après l'enregistrement du fichier…
PDFCreator affirme pouvoir enregistrer directement des fichiers sur des dossiers partagés. Après de nombreux tests, il s'avère que cette fonctionnalité n'est pas vraiment optimum. C'est pourquoi j'ai préféré faire ainsi avec l'avantage de pouvoir distinguer plusieurs cas et donc plusieurs actions…
L'envoi du mail est fonctionnel, il vous faut par contre un serveur SMTP accessible depuis votre environnement.
Si vous désirez commentez cet article merci de vous rendre sur le forum : 33 commentaires