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.
Plusieurs solutions sont possibles (voir ici). 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 :
- J'imprime un état Access sur mon imprimante virtuelle PostScript.
- L'imprimante virtuelle transforme mon état en fichier PS.
- RedMon intercepte ce fichier PS et l'envoie à GhostScript.
- GhostScript reçoit le fichier PS et le convertit au format PDF.
- 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...
|
 |
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). |
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.
|
 |
-
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.
- Décompactez ce fichier dans un dossier de votre choix (vous aurez besoin d'un logiciel
tel que WinZip).
- Double-cliquez sur l'icône Setup. Un message de confirmation s'affiche, répondez par
Oui/Yes. L'installation est quasi instantanée.
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 !
- Sur Windows 95/98, cliquez sur Démarrer / Paramètres / Imprimantes.
- Double-cliquez sur "Ajout d'imprimante", puis "Suivant".
- Activez ensuite "Imprimante locale" (c'est déjà fait en
principe) puis cliquez sur "Suivant".
- Dans la liste proposée, cliquez sur Apple à gauche, puis sur "Apple
LaserWriter II NT" à droite. Validez par "Suivant".

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

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

- 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é).
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.
|
 |
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 :
- Démarrez votre Explorateur Windows.
- Cliquez sur le menu Affichage / Options des
dossiers.
- Activez l'onglet Affichage.
- Videz une case intitulée (clairement !) "Masquer
les extensions des fichiers dont le type est connu".
|
- Démarrez le bloc-notes de Windows (Démarrez / Programmes /
Accessoires) ou votre
éditeur de texte favori.
- 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
- Enregistrez ce fichier quelque part sur votre disque dur, et notez l'endroit en
question.
Dans mon cas : le dossier est c:\Program
Files\Aladdin\gs7.00, et le fichier pdfprinter.rsp.
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.
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.
- Ouvrez le menu Démarrer / Paramètres / Imprimantes.
- Cliquez avec le bouton droit de la souris sur votre imprimante virtuelle (Apple
LaserWriter II NT).
- Cliquez sur l'option Propriétés.
- En haut de la boîte, activez l'onglet Détails.

- 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 !).
- Si RPT1: n''existe pas, cliquez sur le bouton "Ajouter un port".
- 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".

- 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 !!!
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
gs7.00, 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).
Quelques réglages pour fignoler :o)
Pour s'assurer que tout fonctionne bien, 2 petites choses :
- Toujours dans l'onglet Détails de l'imprimante,
cliquez sur le bouton "Paramètres du spouleur".
- Définissez le format de données sur "RAW".
- Sélectionnez l'option "Désactiver le support
bidirectionnel pour cette imprimante".

Le grand
moment !
Une fois tous les réglages effectués, voici le moment de tester
:
- Démarrez Word (ou Access, Excel...).
- Ouvrez un document quelconque.
- Cliquez sur le menu Fichier, puis sur l'option Imprimer.
- Dans la liste des imprimantes, choisissez votre imprimante
virtuelle Apple LaserWriter II NT.
- Cliquez sur le bouton Imprimer.
- 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.
- 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.
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.
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) :
- Donnez un nom fixe au paramètre -sOutputFile, par
exemple -sOutputFile="c:\Mes documents\test.pdf".
- 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 :
- Cliquez sur le menu Démarrer / Paramètres / Panneau de
configuration.
- Double-cliquez sur l'icône "Ajout/ Suppression de
programmes".
- 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.
|
|
Le saviez-vous ? Un nom d'objet dans la base de données ne doit pas dépasser 64 caractères. Il peut par contre comporter des espaces.
A demain pour une nouvelle astuce ! |
|
|