Serveur d'impression (cups + samba) sur debian 6.0
De wikiGite
Prérequis
Un serveur samba fonctionnel. Dans notre cas l'admin du domaine samba est l'utilisateur administrateur.
CUPS
Installer cups:
aptitude install cups.
Éditer le fichier /etc/cups/raw.convs et vérifier que cette ligne est décommenté :
application/octet-stream application/vnd.cups-raw 0 -
Éditer le fichier /etc/cups/raw.types et verifier que cette ligne est décommenté :
application/octet-stream
SAMBA
Ajouter l'utilisateur administrateur au groupe lpadmin :
adduser administrateur lpadmin
Ajouter ceci dans /etc/samba/smb.conf :
[global]
load printers = Yes
printing = cups
printcap name = cups
#même nom d'imprimantes entre cups et samba
force printername = yes
[printers]
comment = Imprimantes
path = /var/spool/samba
browseable = yes
public = yes
guest ok = yes
writable = no
printable = yes
use client driver = no
[print$]
comment = drivers pour imprimantes
path = /var/lib/samba/drivers
browseable = yes
guest ok = yes
read only = yes
write list = administrateur, root
inherit permissions = yes
Puis donner les droits d'accès au répertoire :
chmod 1777 /var/spool/samba
(Le « 1 » de 1777 empêche que les fichiers soient effacés par d'autres utilisateurs que le propriétaire du fichier)
Imprimantes
Push automatique des drivers Windows
Créer l'arborescence de stockage des drivers windows pour samba dans /var/lib/samba/drivers :
drwxrwsrwx 2 root root 4096 26 déc. 17:13 COLOR drwxrwsrwx 2 root root 4096 26 déc. 17:13 IA64 drwxrwsrwx 2 root root 4096 26 déc. 17:13 W32ALPHA drwxrwsrwx 2 root root 4096 27 déc$tabLigneTmp\[5\]. 10:40 W32MIPS drwxrwsrwx 2 root root 4096 26 déc. 17:13 W32PPC drwxrwsrwx 3 root root 4096 27 déc. 17:32 W32X86 drwxrwsrwx 2 root root 4096 26 déc. 17:13 WIN40 drwxrwsrwx 3 root root 4096 27 déc. 17:32 x64
On peut la créer facilement grâce à ce script :
#!/bin/bash
BASEDIR=/var/lib/samba/drivers;
if [ -e $BASEDIR ]
then
mkdir $BASEDIR
fi
for X in COLOR IA64 W32ALPHA W32MIPS W32PPC W32X86 WIN40 x64; do
mkdir -p $BASEDIR/$X;
done
Créer maintenant le répertoire qui accueillera les drivers Windows dans Cups :
mkdir -p /usr/share/cups/drivers/x64
- Ajout du driver PostScript Windows 32bit
Pour le 32bit récupérer ces fichiers sur un système windows 32bit dans %WINDIR%\SYSTEM32\SPOOL\DRIVERS\W32X86\3 et les mettre dans /usr/share/cups/drivers/ :
Pour le 64bit récupérer ces fichiers sur un système windows 64bit dans %WINDIR%\SYSTEM32\SPOOL\DRIVERS\X64\3 et les mettre dans /usr/share/cups/drivers/x64 :
ps5ui.dll pscript.hlp pscript.ntf pscript5.dll
!!!ATTENTION!!! Ces fichiers sont en MAJUSCULE sur Windows. Il est nécessaire de les mettre en minuscule sinon cupsaddsmb ne les exportera pas.
- Ajout du driver postscript Cups V6 pour Windows
Afin d'avoir plus de fonctionnalités (comptage des pages, labels, la mise en attente...), il est possible d'ajouter en complément le driver PostScript de Cups.
Pour le 32bit récupérer ces fichiers sur http://svn.easysw.com/public/windows/trunk/i386/ et les mettre dans /usr/share/cups/drivers/ :
Pour le 64bit récupérer ces fichiers sur http://svn.easysw.com/public/windows/trunk/x64/ et les mettre dans /usr/share/cups/drivers/x64 :
cups6.inf cups6.ini cupsps6.dll cupsui6.dll
Installation
L'installation des imprimantes peut maintenant se faire sur l'interface web de Cups. Lors de la sélection du fichier PDD, il est recommandé de mettre un fichier PPD officiel afin d'avoir toutes les fonctionnalités de l'imprimante (Le comptage des pages par exemple). Ce fichier PPD peut être trouvé dans l'archive contenant les drivers PostScript pour Windows.(Fonctionne sur une Toshiba e-Studio222cs)
Il faut maintenant exporter les imprimantes et les drivers sous samba :
service samba restart service cups restart cupsaddsmb -H localhost -U administrateur -v -a
Pour vérifier la bonne installation des drivers :
rpcclient localhost > enumprinters > enumdrivers
Les drivers seront automatiquement envoyé sur Windows lors de l'installation d'une imprimante sur Windows.
Statistiques d'impressions
http://phpprintanalyze.sourceforge.net/ : stat web cups Phpprintanalyse est une interface web pour cups permettant d'analyser le fichier page_log et de faire des graphiques.
Le serveur de statistiques se trouvant sur une autre machine , ajouter cette section dans /etc/cups/cupsd.conf afin que la page $IP_CUPS:631/admin/log/page_log soit accessible sans mot de passe :
<Location /admin/log> Order allow,deny Allow from 192.168.0.5 </Location>
cd /var/www/
Installation de phpPrintAnalyser
wget http://sourceforge.net/projects/phpprintanalyze/files/phpPrintAnalyzer/1.2/phpPrintAnalyzer-1.2.tar.gz tar xvzf phpPrintAnalyzer-1.2.tar.gz
Installation de jpGraph
aptitude install php5-gd wget --content-disposition http://jpgraph.net/download/download.php?p=1 tar xvzf jpgraph-3.0.7.tar.gz mv jpgraph-3.0.7 jpgraph
chown -R www-data:www-data jpgraph phpPrintAnalyzer
configuration
cd /var/www/phpPrintAnalyzer/inc/ cp config.inc.php.sample config.inc.php vim config.inc.php
Problème de colonnes
Problème de décalage des colonnes entre les logs et le script php
Solution 1
Ajouter cette ligne à la fin du fichier /etc/cups/cupsd.conf :
PageLogFormat %p %u %j %T %P %C %{job-billing} %{job-originating-host-name} %{job-name} %{media} %{sides}
Solution 2
Modification a faire dans index.php :
- Utilisateurs :
remplacer $tabLigneTmp[1] par $tabLigneTmp[2]
:%s/$tabLigneTmp\[1\]/$tabLigneTmp\[2\]/g
sauf la première ligne :
$tabLigneTmp[1] = strtolower($tabLigneTmp[1]);
- Nombre de pages :
Remplacer $tabLigneTmp[6] par $tabLigneTmp[5]
:%s/$tabLigneTmp\[6\]/$tabLigneTmp\[5\]/g
TIPS
Installer automatiquement une imprimante sous windows
rundll32 printui.dll,PrintUIEntry /in /n \\SERVEUR\NOM_DE_IMP
rundll32 printui.dll,PrintUIEntry /in /n \\SERVEUR\NOM_DE_IMP /y
Interface web de cups en français
source http://www.cups.org/str.php?L3840
cd /usr/share/cups
Télécharger la traduction en fonction de la version de Cups ( 1.4 sous Debian Squeeze) :
wget http://www.cups.org/strfiles/3840/fr.tar.gz : cups 1.4 wget http://www.cups.org/strfiles/3840/fr-1.5.0.tar.bz2 : cups 1.5
tar xvzf fr.tar.gz
Il semblerait qu'il y ai un souci avec la page de recherche d'imprimante traduite en francais (cups 1.4). Pour contourner le problème remettre la page en anglais en faisant ceci :
cp /usr/share/cups/templates/choose-device.tmpl /usr/share/cups/templates/fr/
Sources
http://forum.ubuntu-fr.org/viewtopic.php?id=272919 : installation de cups et de samba sous ubuntu
https://wiki.samba.org/index.php/Samba_as_a_print_server : procedure de liaison de cups avec samba
http://www.cups.org/documentation.php/doc-1.6/man-cupsaddsmb.html : manuel de cupsaddsmb
http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/CUPS-printing.html : manuel d'integration de cups avec samba (très complet mais complexe)
http://www.virtualhelp.me/scripts/57-vb-script/351-adding-a-printer-using-scripts-windows : Ajouter automatiquement les imprimantes dans windows
http://blog.cybermonde.org/post/2010/06/01/Configurer-un-serveur-d-impression-pour-plusieurs-vlans : phpPrintAnalyser