PS2PDF
PS2PDF
PS2PDF
Présentation
ps2pdf est un filtre qui permet de transformer un document postscript (.ps) en document Acrobat reader (.pdf).
Vous pouvez l'utiliser en ligne de commande très simplement (ps2pdf doc.ps doc.pdf) ; 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]: Nous l'utiliserons pour partager une imprimante 'PDF' et un répertoire public.
- 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 John Bright.
Voici le cheminement :
client --> imprimante PDF --> script printpdf--> Répertoire public
Â
Installation
Nous allons commencer par créer le répertoire public puis celui où seront stockés les fichiers traités :
en affectant les droits de lecture, ecriture et exécution (rwx) à l'utilisateur nobody :
[root@micro home]# chmod u+rwx -R /home/public
On va ensuite utiliser le script printpdf suivant :
# printpdf
# Simple script pour convertir un fichier postscript
# spécifié en un document PDF et le déposer dans un
# répertoire partagé avec Samba.
#Â
# Arguments:
# 1er - Le nom du fichier de spool
#
# John Bright, 2001, jbright@winfordeng.com
# Nous allons créer le pdf dans un fichier temporaire
# basé sur la date et l'heure courante.
# Après cela, nous le renommerons avec l'extension pdf.
# On fait cela car si un utilisateur essaie d'ouvrir un
# fichier pdf qui est encore en cours d'écriture, il
# obtiendra un message d'erreur disant que le PDF est
# corrompu, alors qu'il n'est simplement pas fini.
DATE=`date +%b%d-%H%M%S`
# Répertoire où placer la sortie.
# Assurez-vous que ce répertoire existe, et que
# l'utilisateur sous lequel tourne Samba peut y écrire
# (par exemple l'utilisateur nobody)
OUTDIR=/home/public/pdf
ps2pdf $1 $OUTDIR/$DATE.temp
mv $OUTDIR/$DATE.temp $OUTDIR/$DATE.pdf
rm $1
que l'on copie dans le répertoire /usr/bin sans oublier de lui mettre les droits d'exécution :
[root@micro root]# chmod +x /usr/bin/printpdf*
Installation de Ghostscript
Le script ps2pdf fait partie de l'application Ghostscript que l'on peut trouver sous le nom de package ghostscript sur Red Hat/Mandrake, gs ou gs-aladdin 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.
Voici le fichier de configuration mininal que vous pouvez également adapter à votre installation.
[global]
 guest account = nobody
 invalid users = root
 interfaces = 127.0.0.1 eth0
 bind interfaces only = Yes
 hosts allow = 192.168.
 security = share
 workgroup = WORKGROUP
 printer driver file = /home/printer/printers.def
[public]
 path = /home/public
 browseable = yes
 writeable = yes
 guest ok = yes
 force user = nobody
[pdf]
 path = /tmp
 printable = yes
 guest ok = yes
 print command = /usr/bin/printpdf %s
 lpq command =
 lprm command =
 printer driver = HP Color LaserJet 4500 PS
 printer driver location = \\%h\printer$
[printer]
 path = /home/printer
 guest ok = yes
 read only = yes
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 'make_printerdef' fournie avec Samba (taper sur une seule ligne) :
Après avoir tapé la commande, le programme vous demande de copier les fichiers du pilote correspondant, ici dans /home/printer.
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 smbprint 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é /home/public/pdf.
The END
Cet article est une libre adaptation avec l'accord de son auteur de celui-ci.
@ Retour à la rubrique Matériel
Copyright
Copyright © 11/01/2002, Dimitri CLATOT
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/ |