|
|
Ligne 1 : |
Ligne 1 : |
| [[Category:Gestion des impressions]] | | [[Category:Gestion des impressions]] |
| = PS2PDF =
| |
|
| |
|
| <div class="leatitre">PS2PDF</div><div class="leapar">par Dimitri Clatot</div><div class="leadesc">Ou : comment votre serveur linux convertit vos documents de différents formats en fichier PDF à partir d'un client Linux ou Windows.</div>
| |
| ----
| |
|
| |
| == PS2PDF ==jhgfjhgfjhgfvjh
| |
|
| |
| === Présentation ===
| |
|
| |
| <span class="code">ps2pdf</span> est un filtre qui permet de transformer un document postscript (<span class="code">.ps</span>) en document Acrobat reader (<span class="code">.pdf</span>).
| |
|
| |
| Vous pouvez l'utiliser en ligne de commande très simplement (<span class="code">ps2pdf ''doc''.ps ''doc''.pdf</span>) ; cet article va vous expliquer comment votre serveur linux peut convertir vos documents au format PDF à partir d'un client linux ou window$.
| |
|
| |
| Depuis votre client, vous allez imprimer sur une pseudo imprimante, qui va créer un document PDF, mis à disposition dans un répertoire public.
| |
|
| |
| Pour réaliser cette recette, nous avons besoin de 3 ingrédients :
| |
|
| |
| * [../reseau/samba.php3 Samba]<nowiki>: Nous l'utiliserons pour partager une imprimante 'PDF' et un répertoire public.</nowiki>
| |
| * [http://www.cs.wisc.edu/~ghost/ GNU Ghostscript] est l'application qui permettra à travers le script ps2pdf de transformer le travail d'impression soumis à l'imprimante 'PDF' en fichier pdf.
| |
| * Un script d'impression créé par [mailto:jbright@winfordeng.com John Bright.]
| |
|
| |
| Voici le cheminement :
| |
|
| |
| client <span class="code">--></span> imprimante PDF <span class="code">--></span> script <span class="code">printpdf--></span> Répertoire public <br />Â
| |
|
| |
| === Installation ===
| |
|
| |
| Nous allons commencer par créer le répertoire public puis celui où seront stockés les fichiers traités :
| |
|
| |
| <div class="code">[root@micro home]# mkdir -p /home/public/pdf</div>
| |
|
| |
| en affectant les droits de lecture, ecriture et exécution (rwx) à l'utilisateur nobody :
| |
|
| |
| <div class="code">[root@micro home]# chown nobody:nobody -R /home/public <br />[root@micro home]# chmod u+rwx -R /home/public</div>
| |
|
| |
| <br />On va ensuite utiliser le script [http://www.linuxgazette.com/issue72/misc/bright/printpdf.sh.txt printpdf] suivant :
| |
|
| |
| <div class="code"><nowiki>#!/bin/sh </nowiki><br /><nowiki># </nowiki>'''printpdf'''<br /><br /><nowiki># Simple script pour convertir un fichier postscript </nowiki><br /><nowiki># spécifié en un document PDF et le déposer dans un </nowiki><br /><nowiki># répertoire partagé avec Samba. </nowiki><br /><nowiki>#Â </nowiki><br /><nowiki># Arguments: </nowiki><br /><nowiki># 1er - Le nom du fichier de spool </nowiki><br /><nowiki># </nowiki><br /><nowiki># John Bright, 2001, jbright@winfordeng.com </nowiki><br /><br /><nowiki># Nous allons créer le pdf dans un fichier temporaire </nowiki><br /><nowiki># basé sur la date et l'heure courante. </nowiki><br /><nowiki># Après cela, nous le renommerons avec l'extension pdf. </nowiki><br /><nowiki># On fait cela car si un utilisateur essaie d'ouvrir un </nowiki><br /><nowiki># fichier pdf qui est encore en cours d'écriture, il </nowiki><br /><nowiki># obtiendra un message d'erreur disant que le PDF est </nowiki><br /><nowiki># corrompu, alors qu'il n'est simplement pas fini. </nowiki><br /><br />DATE=`date +%b%d-%H%M%S` <br /><br /><nowiki># Répertoire où placer la sortie. </nowiki><br /><nowiki># Assurez-vous que ce répertoire existe, et que </nowiki><br /><nowiki># l'utilisateur sous lequel tourne Samba peut y écrire </nowiki><br /><nowiki># (par exemple l'utilisateur nobody) </nowiki><br /><br />OUTDIR=/home/public/pdf <br /><br />ps2pdf $1 $OUTDIR/$DATE.temp <br />mv $OUTDIR/$DATE.temp $OUTDIR/$DATE.pdf <br />rm $1</div>
| |
|
| |
| que l'on copie dans le répertoire <span class="code">/usr/bin</span> sans oublier de lui mettre les droits d'exécution :
| |
|
| |
| <div class="code">[root@micro root]# mv printpdf.sh.txt /usr/bin/printpdf <br />[root@micro root]# chmod +x /usr/bin/printpdf*</div>
| |
|
| |
| === Installation de Ghostscript ===
| |
|
| |
| Le script <span class="code">ps2pdf</span> fait partie de l'application Ghostscript que l'on peut trouver sous le nom de package <span class="code">ghostscript</span> sur Red Hat/Mandrake, <span class="code">gs</span> ou <span class="code">gs-aladdin</span> sur Debian. Vous pouvez l'installer avec le package adapté à votre distribution ou à partir des sources disponibles sur le site des auteurs.
| |
|
| |
| === Paramètrage de Samba ===
| |
|
| |
| Nous allons créer une imprimante nommée "pdf" dans Samba. <br />Voici le fichier de configuration mininal que vous pouvez également adapter à votre installation.
| |
|
| |
| <div class="code"><nowiki>#Fichier smb.conf </nowiki><br /><br />[global] <br />Â guest account = nobody <br />Â invalid users = root <br />Â interfaces = 127.0.0.1 eth0 <br />Â bind interfaces only = Yes <br />Â hosts allow = 192.168. <br />Â security = share <br />Â workgroup = WORKGROUP <br />Â printer driver file = /home/printer/printers.def <br /><br />[public] <br />Â path = /home/public <br />Â browseable = yes <br />Â writeable = yes <br />Â guest ok = yes <br />Â force user = nobody <br /><br />'''[pdf]'''<br />'''Â path = /tmp'''<br />'''Â printable = yes'''<br />'''Â guest ok = yes'''<br />'''Â print command = /usr/bin/printpdf %s'''<br />'''Â lpq command ='''<br />'''Â lprm command ='''<br />'''Â printer driver = HP Color LaserJet 4500 PS'''<br />'''Â printer driver location = \\%h\printer$'''<br /><br />[printer] <br />Â path = /home/printer <br />Â guest ok = yes <br />Â read only = yes</div>
| |
|
| |
| === Installation ===
| |
|
| |
| ==== Pilote pour windows ====
| |
|
| |
| Pour que le pilote de l'imprimante s'installe automatiquement sous window$, il faut récupérer celui que l'on a choisi (de préférence un pilote d'imprimante couleur PostScript, ici HP Color LaserJet 4500 PS) et extraire le fichier de configuration qui a l'extension INF.
| |
|
| |
| Puis avec la commande '<span class="code">make_printerdef</span>' fournie avec Samba (taper sur une seule ligne) :
| |
|
| |
| <div class="code">[root@micro public]# make_printerdef CONFIG.INF 'PILOTE COULEUR POSTSCRIPT' > /home/printer/printers.def</div>
| |
|
| |
| <br />Après avoir tapé la commande, le programme vous demande de copier les fichiers du pilote correspondant, ici dans <span class="code">/home/printer</span>.
| |
|
| |
| ==== Poste client Windows ====
| |
|
| |
| L'installation sur un poste windows est on ne peut plus simple, il suffit d'ajouter une imprimante réseau et indiquer le chemin de la file d'impression dans notre exemple \\LE_MICRO_LINUX\PDF. Puis le pilote s'installera tout seul.
| |
|
| |
| ==== Poste client Linux ====
| |
|
| |
| Ici, je vous laisse le choix des armes pour configurer votre imprimante (vi, webmin...) qui en général se base sur le script <span class="code">smbprint</span> fourni avec Samba.
| |
|
| |
| Une fois tout installé, lancez une impression sur cette imprimante et récupérez votre fichier sous format pdf dans le répertoire partagé <span class="code">/home/public/pdf</span>.
| |
|
| |
| === The END ===
| |
|
| |
| Cet article est une libre adaptation avec l'accord de son auteur de [http://www.linuxgazette.com/issue72/bright.html celui-ci].
| |
|
| |
| <div class="merci">Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Dimitri CLATOT le 11/01/2002.</div>
| |
|
| |
|
| = Copyright = | | = Copyright = |
| Copyright © 11/01/2002, Dimitri CLATOT | | Copyright © 11/01/2002, Dimitri CLATOT |
| {{CC-BY-NC-SA}} | | {{CC-BY-NC-SA}} |