Imprimer

De Diablotins.org.


Connecter et utiliser une imprimante
Image:brush.png
Imprimer sous FreeBSD est très simple, la ou les imprimantes ( lptx ) sont considérées comme un terminal ASCII.


Mais de nos jours, cette simple utilisation n'a quasiment plus cours et les imprimantes deviennent presque aussi complexes qu'une rotative.
Avant d'utiliser votre imprimante, vous allez devoir choisir votre gestionnaire d'impression, qui va contrôler un spool. Ce choix va essentiellement dépendre de votre imprimante:

  • lpr: c'est le gestionnaire de base du système. Il est simple à mettre en œuvre pour les imprimantes PostScript mais peu adapté aux imprimantes du commerce qui nécessitent un pilote spécifique.
  • lprNg: Une nouvelle génération de lpd.
  • Cups: Basé sur le protocole IPP, c'est la tentative du logiciel libre d'unifier les gestionnaires d'impression. Il tend à devenir le protocole le plus utilisé.


Sommaire

Bases

Le système n'intègre que lpr, les autres gestionnaires sont des ports.
Chaque gestionnaire devra gérer un Spool, souvent placé dans /var/spool et liste ses imprimantes dans /etc/printcap.
L'imprimante par défaut étant nommée «lp», je vous conseille donc d'en nommer une ainsi dans ce fichier.

Lpr

Si vous utilisez une imprimante ASCII, PostScript ou tout autre protocole qui soit une succession de commandes ASCII vers l'imprimante, lpr(1) est le moyen le plus simple d'imprimer. Le gestionnaire se contentant de diffuser le contenu ASCII du fichier à imprimer vers l'imprimante.
Si on peut le configurer pour un pilote d'impression propriétaire, la manipulation du fichier de configurer peut vous paraître barbare au premier abord.
Il est composé du démon lpd(1) et de divers outils pour le piloter.
Ajoutez l'entrée suivante dans /etc/rc.conf pour le lancer au démarrage:

lpd_enable="YES"

Un script RC du monde est disponible dans /etc/rc.d/ pour le piloter.

Configurer

Créez simplement une imprimante dans /etc/printcap et définissez en les caractéristiques.
Pour utiliser un pilote d'impression particulier, fichier «.ppd» que vous avez chargé sur un site ou par les ports, il vous faut aussi installer des filtres, scripts qui vont convertir vos documents, PostScript en général, vers le format digéré par ce pilote. En règle générale, les bannières d' entêtes ne vous sont pas agréables; Utilisez le champ «sh» pour les supprimer.

Locale

Une imprimante connectée sur le port parallèle:

lp|Mon Imprimante Parallèle:\
lp=/dev/lpt0:sh:

Une imprimante connectée sur le port USB:

lp_usb|Mon Imprimante USB:\
lp=/dev/ulpt0:sh:

Réseau

Une imprimante connectée sur réseau, nommée «lp» dans le fichier printcap de la machine 192.168.0.1 où elle est connectée:

lp_distante|Mon Imprimante réseau:\
lp=:\rm=192.168.0.1:\rp=lp:sh:

Les filtres

Obtenez un pilote pour votre imprimante.
Par exemple, le fichier HP.ppd pour une HP LaserJet récupéré sur LinuxPrinting.
Choisissez un filtre.
Dans le cas de l'imprimante HP LaserJet 4L, j'ai choisi le port print/foomatic-filters et placé HP.ppd dans /etc/foomatics:

lp|Laset Jet 4L|Laser Bureau:\
 :lp=/dev/lpt0:\
 :sd=/var/spool/lpd/l4:\
 :if=/usr/local/bin/foomatic-rip:\
 :af=/etc/foomatic/HP.ppd:\
 :sh:

Imprimer

Dans la configuration précédente, le fichier doit être de format PostScript. Pour l'imprimer, entrez simplement:

lpr FichierAImprimer.ps

Ou

lpr -Plp_usb FichierAImprimer.ps

Vérifiez:

 lpq 
1st david 42 FichierAImprimer Impression n° 42 en attente

Ou

lpq  -Plp_usb

Annulez l'impression:

lprm 42

ou toutes les impressions:

lprm

Utilisations multiples

Vous pouvez multiplier les entrées pour une même imprimante, chacune correspondant à un filtre en particulier:

lp|Laset Jet 4L|Impression PostScript:\
 :lp=/dev/lpt0:sd=/var/spool/lpd/l4:\
 :if=/usr/local/bin/foomatic-rip:af=/etc/foomatic/HP.ppd:\
 :sh:
lpRaw|Laser Sans Filtre|Impression ASCII:\
 :lp=/dev/lpt0:sd=/var/spool/lpd/raw

Notez que chaque imprimante décrite doit avoir son propre répertoire de spool.

Cups

Installez le port print/cups. Ce dernier installe le script RC pour piloter son démon: cupsd.
Ajoutez l'entrée suivante dans /etc/rc.conf pour le lancer au démarrage:

cupsd_enable="YES"


Cups est livré avec une interface Web sur le port 631 qui vous guidera dans sa gestion.

Configurer

Configurez cups dans /usr/local/etc/cups/cupsd.conf. Par défaut, il est utilisable dans un contexte local.
Cups décrit les imprimantes dans /usr/local/etc/printers.
Une fois installé, consultez la documentation du cups. Ajoutez votre imprimante:

/usr/sbin/lpadmin -p HP -D LaserJet -L Bureau -E -v parallel:/dev/lp0 -m HP.ppd 
-p est le nom
-v est la connexion.
-m est le pilote. (par défaut dans /usr/local/etc/cups/ppd/)


Vérifiez que votre imprimante se trouve dans /etc/printcap:

HP|LaserJet|Bureau:rm=localhost:rp=HP:

Vous pouvez aussi utiliser l'interface WEB.

Virtuelle

Le port print/cups-pdf va vous permettre d'installer une imprimante virtuelle qui va générer des fichiers PDF.
Par défaut, il place les fichiers dans /var/spool/cups-pdf/utilisateur/. Pour mieux retrouver ses fichiers, placez les dans votre espace:

make OUTPUT_DIRECTORY=~/cups-pdf -DFORCE_PKG_REGISTER install clean

Ensuite, ajoutez simplement cette imprimante, avec un pilote GENERIC.

Depuis la version 1.2

Une interface WEB sécurisée est disponible. Ensuite, un utilisateur et un groupe d'utilisateurs «cups» sont créés.
Il vous faut alors leur affecter les crédits sur les périphériques concernés par l'impression.
Soit, pour ceux qui sont connectés au démarrage de la machine, utiliser /etc/devfs.conf:

own lpt0 cups:cups        port parallèle 
perm lpt0 0666

Ou, pour ceux que l'on connecte à la volée, comme les imprimantes USB, utilisez /etc/devfs.rules:

[system=10]
add path 'unlpt*' mode 0660 group cups
add path 'ulpt*' mode 0660 group cups

Camoufler

Pour camoufler cups dans le système, installez le port print/cups-lpr et ajoutez les entrées suivantes dans /etc/make.conf:

NO_LPD=true                  Ne pas construire lpd
CUPS_OVERWRITE_BASE=yes      Camouflage

Ceci a disparu avec les versions de cups délivrées à partir de la version 1.2.


Pour les versions plus récentes de FreeBSD, il faut utiliser /etc/src.conf

david:~>grep LPR /etc/src.conf
WITHOUT_LPR=yes

Réseau

Ajoutez les clients à autoriser dans cupsd.conf sous la rubrique «location»:

<location>
# Par défaut 
Order Deny,Allow 
Deny From All
Allow From 127.0.0.1
# Ajoutez un client
Allow From 192.168.0.2
</location>

Lprng

LPRng est un concurrent du précédent bien que plus inspiré de LPD.
Il permet de faire énormément de chose assez complexes pour prendre en compte les spécificités des imprimantes modernes, comme une une impression recto/verso à partir du bac 7 sur 3 feuilles en colonnes. Installez le port sysutils/LPRng.

Configurer

La configuration est la même que pour LPR qui utilise /etc/printcap.
Mais sa configuration est étendue à d'autres fichiers:

  • /usr/local/etc/lpd.conf
  • /usr/local/etc/lpd.perms

Réseau

En Savoir plus

Projets :