« PS2PDF » : différence entre les versions

De Lea Linux
Aller à la navigation Aller à la recherche
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 &copy; 11/01/2002, Dimitri CLATOT
Copyright &copy; 11/01/2002, Dimitri CLATOT
{{CC-BY-NC-SA}}
{{CC-BY-NC-SA}}

Version du 4 février 2009 à 11:49


Copyright

Copyright © 11/01/2002, Dimitri CLATOT

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike iconCreative Commons Noncommercial
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique, Contexte non commercial 2.0 :
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/