« PS2PDF » : différence entre les versions
(conversion de la documentation originale de Léa par HTML::WikiConverter) |
Aucun résumé des modifications |
||
(6 versions intermédiaires par 5 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
= PS2PDF = | = PS2PDF = | ||
Ligne 23 : | Ligne 22 : | ||
Voici le cheminement : | Voici le cheminement : | ||
client <span class="code">--></span> imprimante PDF <span class="code">--></span> script <span class="code">printpdf--></span> Répertoire public <br /> | client <span class="code">--></span> imprimante PDF <span class="code">--></span> script <span class="code">printpdf--></span> Répertoire public <br />Â | ||
=== Installation === | === Installation === | ||
Ligne 37 : | Ligne 36 : | ||
<br />On va ensuite utiliser le script [http://www.linuxgazette.com/issue72/misc/bright/printpdf.sh.txt printpdf] suivant : | <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># | <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 : | que l'on copie dans le répertoire <span class="code">/usr/bin</span> sans oublier de lui mettre les droits d'exécution : | ||
Ligne 51 : | Ligne 50 : | ||
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. | 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 /> | <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 === | === Installation === | ||
Ligne 78 : | Ligne 77 : | ||
Cet article est une libre adaptation avec l'accord de son auteur de [http://www.linuxgazette.com/issue72/bright.html celui-ci]. | Cet article est une libre adaptation avec l'accord de son auteur de [http://www.linuxgazette.com/issue72/bright.html celui-ci]. | ||
<br/> | |||
<br/> | |||
'''<b>[[Matériel|@ Retour à la rubrique Matériel]]</b>''' | |||
<br/> | |||
<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> | <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 © 11/01/2002, Dimitri CLATOT | |||
{{CC-BY-NC-SA}} | |||
[[Catégorie:Matériel]] |
Dernière version du 28 décembre 2023 à 17:58
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/ |