Toute l'actualité de [self-access.com] en direct sur votre ordinateur !  Vous êtes ici : Accueil » Access » Tutoriaux » Etats PDFConnexion
 


GhostScript et RedMon : le principe

L'idée est tout simplement de produire depuis Access un état qui soit lisible sur une autre machine (PC, Max, Unix...) et qui conserve une mise en forme proche de l'original. La solution abordée ci-dessous repose sur 2 logiciels (GhostScript et RedMon) qui sont en téléchargement libre.

GhostScript est un logiciel qui permet de lire des fichiers au format PostScript (.PS) et de les convertir au format Acrobat (.PDF). Une fois le document converti, il peut être lu sur n'importe quelle machine disposant du logiciel gratuit Acrobat Reader (disponible en téléchargement sur www.adobe.fr).

Dans ce qui nous intéresse, GhostScript a quelques inconvénients : il fonctionne en ligne de commande, n'est pas facilement automatisable, et doit impérativement recevoir un fichier PS en entrée, pour pouvoir le convertir en PDF.

La solution consiste à :

  • Installer sur votre ordinateur une imprimante virtuelle capable de produire du PostScript (PS).
  • Transférer le code PostScript résultant à GhostScript qui fera la conversion du PS vers le PDF. C'est ici qu'intervient subtilement (si, si !) RedMon : Redirection Port Monitor (ou Moniteur de Redirection de Port) est capable de récupérer ce qui a été préparé par une imprimante et de le rediriger vers un autre logiciel (en l'occurrence, GhostScript).

En clair :

  1. J'imprime un état Access sur mon imprimante virtuelle PostScript.
  2. L'imprimante virtuelle transforme mon état en fichier PS.
  3. RedMon intercepte ce fichier PS et l'envoie à GhostScript.
  4. GhostScript reçoit le fichier PS et le convertit au format PDF.
  5. Je peux transmettre mon document PDF à n'importe qui disposant d'une visionneuse PDF (comme Acrobat Reader).

Une fois l'ensemble mis en place, la conversion d'un état Access au format PDF sera aussi simple que d'imprimer un état. Si ça vous tente, suivez les étapes de configuration ci-dessous...

Avertissement
L'installation est un peu technique : GhostScript se mérite !
Complétez cet article par la documentation du logiciel (accessible en général via Démarrer / Programmes / GhostScript / GhostScript Readme).

Si vous êtes débutant, essayez plutôt des solutions  comme PDF995, sur le site du même nom, PDFCreator, ou eXpert PDF (payant). Ces logiciels s'installent très simplement et créent aussi une imprimante virtuelle.

Info
Le "grenier" du site contient aussi plusieurs articles concernant les fichiers PDF dans Access.

Vers le haut

Installer les logiciels

Téléchargez les logiciels GhostScript et RedMon à partir de l'adresse web : http://www.cs.wisc.edu/~ghost
Vous trouverez également à cette adresse GSView, qui est une interface graphique pour GhostScript (utile si vous souhaitez visualiser des fichiers PS ou PDF, effectuer des conversions en manuel, mais hors de propos ici).

Installer Aladdin GhostScript

A titre d'exemple, lors de la rédaction de ces lignes, le fichier d'installation pour Windows 95/98 s'appelait gs700w32.exe (version 7.00, donc ; une version 8.00 existe déjà...). Un double-clic sur ce fichier, puis sur le bouton Setup lance l'installation.

Vous pouvez accepter le dossier d'installation proposé par GhostScript.
Personnellement, j'ai sélectionné le dossier C:\Program Files\Aladdin. GhostScript s'installe alors dans le sous-dossier C:\Program Files\Aladdin\gs7.00, et des polices de caractères se placent dans C:\Program Files\Aladdin\fonts.
Notez ces 2 dossiers, ils seront utiles par la suite.

Info
GhostScript lui-même pourrait se placer dans un dossier C:\Program Files\Aladdin\gs7.00\gs7.00 (deux sous-dossiers de même nom étant créés). Si c'est le cas, tenez-en compte dans ce qui suit.

Si les dossiers d'installation ne vous conviennent pas, ne les déplacez pas "manuellement". GhostScript ne fonctionnerait plus. Vous déplaceriez le dossier du pack Office, vous ? Préférez une désinstallation puis une réinstallation.

Installer RedMon

RedMon (version 1.5) est livré sous la forme d'un fichier compacté : redmon15.zip.

  1. Décompactez ce fichier dans un dossier de votre choix (vous aurez besoin d'un logiciel tel que WinZip).
  2. Double-cliquez sur l'icône Setup. Un message de confirmation s'affiche, répondez par Oui/Yes. L'installation est quasi instantanée.

Vers le haut

Installer une imprimante PostScript virtuelle

Comme expliqué plus haut, il vous faut une imprimante capable de générer du PostScript (.PS). Il peut s'agir d'une imprimante PostScript quelconque, puisque le résultat n'est pas imprimé, mais simplement redirigé vers RedMon puis GhostScript. Une "Apple LaserWriter II NT" ou une "Apple Color LaserWriter 12/600" fera l'affaire !

  1. Sur Windows 95/98, cliquez sur Démarrer / Paramètres / Imprimantes.
  2. Double-cliquez sur Ajout d'imprimante, puis Suivant.
  3. Activez ensuite Imprimante locale (c'est déjà fait en principe) puis cliquez sur Suivant.
  4. Dans la liste proposée, cliquez sur Apple à gauche, puis sur "Apple LaserWriter II NT" à droite. Validez par Suivant.

  5. Choisissez le port (la sortie) qui sera associée à l'imprimante. Vous pouvez conserver LPT1:, qui est le port imprimante standard : vous changerez ce réglage plus tard pour rediriger la sortie sur RedMon (voir plus loin).

  6. Donnez ensuite donner un nom à cette imprimante (conservez "Apple LaserWriter II NT", ou tapez "GhostScript PDF Writer" par exemple) et indiquez qu'il ne s'agit pas de votre imprimante par défaut.

  7. Enfin, Windows vous demandera si vous souhaitez imprimer une page de tests. Répondez Non : l'imprimante n'existe pas, le test n'a aucune chance de fonctionner ! 

L'imprimante devrait s'installer (le CD-Rom de Windows 95/98 vous sera peut-être demandé).

Vers le haut

Définir les paramètres de conversion PDF

Si vous avez suivi depuis le début (!), vous savez que nous allons utiliser GhostScript pour convertir un fichier PS en fichier PDF. Pour ce faire, il faut paramétrer quelques options qui serviront à GhostScript.

Important

Il va être question plus loin d'un fichier nommé pdfprinter.rsp créé via le bloc-notes de Windows.

Par défaut, Windows n'affiche pas les extensions des fichiers. En enregistrant le fichier depuis le bloc-notes, celui-ci risque d'ajouter une extension suppllémentaire (.txt), d'où un fichier nommé au final pdfprinter.rsp.txt. Pas bon, ça !

Pour éviter toute ambiguïté, faites au préalable ce qui suit :

  1. Démarrez votre Explorateur Windows.
  2. Cliquez sur le menu Affichage / Options des dossiers.
  3. Activez l'onglet Affichage.
  4. Videz une case intitulée (clairement !) "Masquer les extensions des fichiers dont le type est connu".

Paramétrage

  1. Démarrez le bloc-notes de Windows (Démarrez / Programmes / Accessoires) ou votre éditeur de texte favori.
  1. Recopiez ou collez dans le bloc-notes ce qui suit :
-I"c:\Program Files\Aladdin\gs7.00";"c:\Program Files\Aladdin\fonts"
-sDEVICE=pdfwrite
-r300
-sPAPERSIZE=a4
-dSAFER
-dNOPAUSE
  1. Enregistrez ce fichier quelque part sur votre disque dur, et notez l'endroit en question.
    Dans mon cas : le dossier est <code>c:\Program Files\Aladdin\gs7.00</code>, et le fichier <code>pdfprinter.rsp</code>.

Quelques explications sur les paramètres ci-dessus :

  • Le -I précède les 2 dossiers d'installation de GhostScript (celui qui contient GhostScript lui-même, et celui qui contient les polices de caractères additionnelles). Les 2 chemins sont séparés par un point-virgule, et entourés chacun de guillemets (dans la mesure où ils comportent des espaces). Ces 2 chemins servent à GhostScript pour localiser ses éléments, mais d'après mes test, GhostScript 7.00 fonctionne même s'ils ne sont pas définis. A vous d'aménager ces chemins en fonction de votre dossier d'installation de GhostScript !
  • Le -sDEVICE=pdfwrite indique que le dispositif utilisé par GhostScript pour la conversion sera le dispositif pdfwrite (celui qui convertit un PS en PDF).
  • Le -r300 indique qu'on souhaite une résolution de 300x300 dpi pour la création du fichier (conseillé).
  • Le -sPAPERSIZE=a4 parle de lui-même...
  • -dNOPAUSE évite certaines attentes clavier faites par GhostScript. Ces attentes sont inutiles dans la mesure où GhostScript doit travailler en automatique.
  • -dSAFER est utilisé pour améliorer la gestion de certains spoolers d'imprimante.

Pour plus de détails sur les nombreuses options d'impression, consultez la documentation de GhostScript.

Vers le haut

Relier l'imprimante à RedMon

Souvenez-vous : c'est RedMon qui sert de liaison entre l'imprimante virtuelle et GhostScript. Il faut donc que notre imrpimante soit elle-même connectée sur RedMon.

  1. Ouvrez le menu Démarrer / Paramètres / Imprimantes.
  2. Cliquez avec le bouton droit de la souris sur votre imprimante virtuelle (Apple LaserWriter II NT).
  3. Cliquez sur l'option Propriétés.
  4. En haut de la boîte, activez l'onglet Détails.

  5. Vous notez que l'imprimante est dirigée vers le port LPT1: (que nous avons choisi lors de l'installation). Il faut à terme changer ce port en RPT1: (RedMon), lisez ce qui suit !

    Normalement, aucun port RPT1: n'existe encore (vérifiez quand même dans la liste des ports !).
  6. Si RPT1: n''existe pas, cliquez sur le bouton "Ajouter un port".
  7. Dans la boîte qui s'affiche, intitulée "Ajout d'un port", activez l'option "Autre", puis sélectionnez "Port redirigé" ou "Redirected port".

  8. Confirmez par OK. Une autre boîte vous demandant le nom du port apparaît. Acceptez RPT1:

Voilà ! Le port RPT1: a été créé et automatiquement associé à votre imprimante. En d'autres termes : toute sortie vers Apple LaserWriter II NT sera interceptée par RedMon. Reste à connecter RedMon et GhostScript !!!

Vers le haut

Relier RedMon à GhostScript

Toujours sur la boîte de réglage d'imprimante, onglet Détails, cliquez sur le bouton "Paramètres du port", et définissez les réglages comme suit :

Rediriger ce port vers le programme (Redirect this port to the program)
Notez dans cette zone le chemin d'accès à l'interpréteur de commandes GhostScript (gswin32c.exe). Vous pouvez utiliser le bouton Parcourir (Browse) pour pointer sur gswin32c.exe.

Les arguments pour ce programme sont (Arguments for this program are)
@"c:\Program Files\Aladdin\gs7.00\pdfprinter.rsp" -sOutputFile="%1" -

  • Le @xyz désigne le fichier de paramètres défini plus haut (contenant entre autres -sDEVICE=pdfwrite). Si le chemin vers ce fichier comporte des espaces, ajoutez des guillemets autour du chemin. N'oubliez pas qu'il peut y avoir deux fois le sous-dossier <code>gs7.00</code>, en fonction de votre installation.
  • Le -sOutputFile désigne le nom du fichier à créer en final par GhostScript (le fichier PDF). Si vous y mettez par exemple : -sOutputFile="c:\windows\bureau\test.pdf", GhostScript  créera un fichier qui s'appellera toujours test.pdf et qui sera placé sur le bureau de Windows. Le fait de mettre %1 à la place vous donne la possibilité de changer ce nom. En fait, à chaque fois que vous imprimerez via l'imprimante virtuelle, un nom de fichier vous sera demandé et ce nom remplacera le %1 dans GhostScript.
  • Important : la ligne d'arguments doit se terminer par un espace suivi d'un tiret.

Impression (Output)
Choisissez pour ce réglage "Demander le nom de fichier" (Prompt for filename).

Imprimante (Printer)
Ce paramètre devrait être désactivé.

Lancer (Run)
En principe, si vous souhaitez que GhostScript n'apparaisse pas, choisissez Masqué (Hidden).

Vers le haut

Quelques réglages pour fignoler :o)

  1. Toujours dans l'onglet Détails de l'imprimante, cliquez sur le bouton Paramètres du spouleur.
  2. Définissez le format de données sur RAW.
  3. Sélectionnez l'option "Désactiver le support bidirectionnel pour cette imprimante".

Vers le haut

Le grand moment !

Une fois tous les réglages effectués, voici le moment de tester :

  1. Démarrez Word (ou Access, Excel...).
  2. Ouvrez un document quelconque.
  3. Cliquez sur le menu Fichier, puis sur l'option Imprimer.
  4. Dans la liste des imprimantes, choisissez votre imprimante virtuelle Apple LaserWriter II NT.
  5. Cliquez sur le bouton Imprimer.
  6. Normalement, une boîte de dialogue devrait vous demander le nom du fichier à créer (ainsi que le dossier de destination). Tapez par exemple test.pdf.
  7. Validez par OK.

Un fichier PDF devrait être créé à l'emplacement choisi par vous. Vous pouvez utiliser Acrobat Reader (ou GSView mentionné plus haut) pour le visualiser. Hop là !

A titre d'exemple, cliquez sur l'icône ci-contre pour télécharger le présent article au format PDF/ZIP (environ 350K). Il a suffit d'une impression depuis Internet Explorer pour construire le fichier. 

Vers le haut

Et si ça ne marche pas ?

  • Vérifiez que l'imprimante virtuelle est bien connectée au port RPT1:.
  • Vérifiez les réglages du spooler d'imprimante comme indiqué plus haut.
  • Vérifiez surtout les réglages du port :
    • Est-ce que le chemin d'accès à GhostScript (gswin32c.exe) est correct ?
    • Est-ce que la ligne de commande associée est correcte (guillemets compris) ?
    • Est-ce que le fichier de paramètres existe et est correct ?
    • Activez éventuellement le fichier trace (log file) pour diagnostiquer les problèmes.

Consultez sinon la documentation de GhostScript et de RedMon.

Vers le haut

Compléments

  • Aladdin GhostScript et RedMon comportent de nombreuses autres options. Je vous conseille fortement de lire la documentation livrée avec ces 2 logiciels pour en tirer parti au maximum, mais aussi pour en connaître les limites.
  • Notez qu'une fois l'imprimante virtuelle installée, vous pouvez convertir tout type de document (en théorie) en document PDF. J'ai pu faire quelques tests sur Access, Excel, Word, Internet, Paint Shop Pro...
  • Sur Access, si vous souhaitez une automatisation en Visual Basic (pour la transmission du document PDF par e-mail par exemple) :
    1. Donnez un nom fixe au paramètre -sOutputFile, par exemple -sOutputFile="c:\Mes documents\test.pdf".
    2. Dans les détails du paramétrage de l'imprimante, remplacez "Prompt for filename" (Demander le nom du fichier) par "Program handles output" (le programme se charge de l'impression).

Ensuite, Access pourra manipuler le fichier test.pdf en automatique. A vous de jouer !

  • Si vous souhaitez désinstaller GhostScript et RedMon, procédez comme pour tout programme Windows :
  1. Cliquez sur le menu Démarrer / Paramètres / Panneau de configuration.
  2. Double-cliquez sur l'icône "Ajout/ Suppression de programmes".
  3. Double-cliquez ensuite sur chacun des 2 logiciels à désinstaller.

Dans le cas de RedMon, il est important de désactiver au préalable toute imprimante utilisant le port virtuel de redirection (RPT1: en général), puis de détruire le port RTP1:.

  • Un phénomène curieux sur Powerpoint 97 : l'impression semble se dérouler correctement, mais aucun fichier n'est produit. Pour éviter cet effet paranormal :-), faites Fichier / Imprimer deux fois. Ca devrait suffire.

Vers le haut


Mes livres sur Access...
[cliquez pour plus d'infos]





Hit-Parade 
 
[ Copyright 1997-2018 hervé inisan, self-access.com Reproduction interdite ]