PDFCreator-Serveur

Installation et paramétrage de PDFCreator en mode serveur

Ce tutoriel présente l'installation de l'outil PDFCreator en mode serveur et des possibilités de paramétrage. Une solution de récupération des documents est proposée.

Article lu   fois.

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

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.

Image non disponible

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 ».

Image non disponible

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 ».

Image non disponible

Enfin, dans la dernière fenêtre cliquez sur « Installer ».

Image non disponible

L'installation se lance.

Image non disponible

Une fois l'opération effectuée, cliquez sur « fermer »

Image non disponible

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 » :

Image non disponible

Cochez « Paramètres avancés » puis cliquez sur suivant.

Image non disponible

Acceptez l'accord de licence puis cliquez sur « Suivant ».

Image non disponible

Cochez « Installation sur serveur » puis cliquez sur « Suivant ».

Image non disponible

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 ».

Image non disponible

Pour le choix des pilotes supplémentaires, cochez « Windows 2000/XP/2003 - 32bit ». Cliquez ensuite sur « Suivant ».

Image non disponible

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.

Image non disponible

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 ».

Image non disponible

Vous pouvez ensuite choisir le dossier des raccourcis. Ici nous laisserons l'option proposée. Cliquez ensuite sur « Suivant ».

Image non disponible

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 ».

Image non disponible

Enfin, dans la dernière fenêtre, cliquez sur « Installer ». L'installation se lancera avec les options choisies.

Image non disponible

Une fois l'installation terminée, décochez les deux cases et cliquez sur « Terminé ».

Image non disponible

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 ».

Image non disponible

Sélectionnez dans la partie de gauche les imprimantes. Il devrait y avoir l'imprimante installée précédemment : PDFCreator.

Image non disponible

Faites un clic droit sur l'imprimante puis « propriétés… »

Image non disponible

Cliquez sur l'onglet « Partage », cochez « Partager cette imprimante » puis sur « Appliquer » et enfin « OK ».

Image non disponible

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 :

Image non disponible

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.

Image non disponible

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) :

  1. Naviguez jusqu'à la clé du service que vous venez de déclarer : HKLM\SYSTEM\CurrentControlSet\Services\PDFcreator ;
  2. Créez une clé « Parameters » ;
  3. Ouvrez la clé « Parameters » ;
  4. Créez une clé « Application » de type chaîne (REG_SZ) dans la clé « Parameters » ;
  5. Éditez « Application » et déclarez le chemin complet vers notre exécutable (« C:\Program Files (x86)\PDFCreator\PDFCreator.exe »).
Image non disponible

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 ».

Image non disponible

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 ».

Image non disponible

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.

Image non disponible

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).

Image non disponible

Dans la fenêtre qui s'est ouverte, cliquez sur « Ajouter un profil ».

Image non disponible

Entrez un nom pour votre profil, ici j'utiliserai stockage. Cliquez sur « OK ».

Image non disponible

Cliquez ensuite sur « Enregistrement automatique » dans la partie gauche. Entrez les éléments comme sur la figure suivante :

Image non disponible

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 :

Image non disponible

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).

Image non disponible

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 :

Image non disponible

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.

DSI-PDFCreator.vbs
TéléchargerSélectionnez


'##==============================================## 
'##== 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.

Image non disponible

La fiche de l'utilisateur est renseignée avec l'information de lieu de partage (champ wWWHomePage).

Image non disponible

Enfin, l'imprimante PDFCreator est connectée depuis le serveur d'impression.

Image non disponible

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é »).

Image non disponible

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.

Image non disponible

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 : 32 commentaires Donner une note à l'article (4.5)

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Viduc. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.