wiki.bedesk-express.com
Base de données des solutions du support technique gratuit BeDesk-Express

Impossible d'imprimer sur mon imprimante CUPS 1.2 (ou supérieur)... Que faire ?

Veuillez lire attentivement toutes les explications avant de procéder aux manipulations.

TOUTES LES MANIPULATION DÉCRITES ICI SONT CRITIQUES…

VOUS LES RÉALISEZ A VOS PROPRES RISQUES…

Ce problème n'est pas lié au logiciel BeDesk. Il provient d'un conflit entre le système d'impression Java (JavaPrinting) et certaines améliorations apportées par CUPS 1.2.

Généralement, le problème survient lorsqu'on utilise, sous Linux, conjointement Java 5 ou Java 6 avec CUPS 1.2 et l'interpréteur postscript Ghostscript tout en disposant d'une imprimante non postscript.

Le problème a été soumis au support technique de Sun/Oracle (qui s'occupe du développement du système Java) ainsi qu'aux développeurs du système CUPS. Il n'est donc pas exclu qu'une solution élégante soit proposée par l'une des partie mise en cause dans le conflit.

Pour notre part, nous faisons tout notre possible pour apporter une solution alternative (et, normalement, temporaire) à ce problème.

Ce problème a été documenté dans des articles des supports techniques CUPS et Java. Pour références,vous pouvez consulter les pages suivantes:

Vous pouvez également consulter la page suivante:

Pour résoudre le problème, nous vous proposons d'utiliser un patch en 2 parties:

  1. La première partie effectue des correction dans la configuration du système et ajoute un filtre “garde-fou” dans la liste des filtres de CUPS.
  2. La deuxième partie doit être lancée directement dans la session de l'utilisateur et crée un fichier de configuration personnalisé qui permet de contourner la configuration CUPS du système d'exploitation (afin de minimiser au maximum des modification dans le système).


Comment appliquer le patch ?

  1. Télécharger cet archive : javaCUPS12-patcher.zip et extrayez sont contenu dans votre dossier utilisateur (la session où vous utilisez BeDesk).
  2. Vous devriez obtenir 2 dossiers : le premier s'appelle “1” et le suivant “2”…
  3. Ouvrez un terminal et placez-vous dans le dossier “1” à l'aide de la commande “cd <chemin>” bien connue.
  4. Passez en mode administrateur “root” en utilisant la commande “su” puis en introduisant votre mot de passe administrateur.
  5. Appliquez le premier patch à l'aide de la commande:
    ./javacups12-patcher INSTALL

    Si vous le souhaitez, vous pouvez aussi lancer ce patch de cette façon:

    python javacups12-patcher INSTALL

    (la patch est en réalité un script Python).

  6. Quittez la session “root” en introduisant la commande “exit”.
  7. Déplacez-vous maintenant dans le dossier “2”.
  8. Là, en tant qu'utilisateur, vous allez lancer la deuxième partie du patch à l'aide de la commande :
    ./userPatchPart

    Ou si vous préférez :

    bash userPatchPart
  9. Pour que les patchs prennent effet, vous devez redémarrer le serveur CUPS. Si vous ne savez pas comment faire, le plus simple consiste encore à redémarrer l'ordinateur.


Que fait la première partie du patch ?

L'application du patch javacups12patcher permet de réaliser les opérations suivantes:

  1. Vérifier et corriger la présence du fichier « /usr/lib/libcups.so » non présent dans une installation CUPS 1.2 mais recherché par les exécutables Java 5 et 6. Si le fichier n'est pas présent, un lien est automatiquement créé vers le fichier « /usr/lib/libcups.so.2 » typiquement présent dans CUPS 1.2.
  2. Créer un filtre CUPS qui supprime automatiquement l'option « DeferredMediaSelection » des fichiers Postscript envoyés à l'interpréteur Postscript. Cette fonction n'est pas correctement traité lorsque le système d'impression est lié à une imprimante non postscript. Si vous utilisez effectivement une imprimante postscript, vous pouvez utiliser le patch pour corriger le lien libcups.so. Toutefois, vous devriez consulter la note en bas du fichier LISEZ-MOI.txt dans le dossier “1”.


Que fait la deuxième partie du patch ?

Cette partie consiste simplement à créer le fichier “~/.cups/client.conf” et d'y placer l'option “ServerName 127.0.0.1”. Si vous utilisez un serveur d'impression distant, introduisez l'IP du serveur (exemple: “ServerName 192.168.1.64”).


Si cela ne marche pas...

La principale raison d'un échec provient du fait que l'utilisateur n'a pas bien suivi la procédure à la lettre…

N'oubliez pas que le premier patch doit être exécuté sous “root” et le deuxième en tant que l'utilisateur dans le dossier de l'utilisateur en cours (le deuxième patch n'affecte donc pas les autres comptes utilisateurs et ne peut pas être utilisier pour un autre compte que celui où il est démarré).

Si vous êtes vraiment sûr d'avoir suivi la procédure à la lettre, essayez ceci:

Vous pouvez retirer les modifications apportée à votre système tout simplement en lançant le patch du dossier “1” avec l'option REMOVE. Exemple:

./javacups12-patcher REMOVE

en tant qu'utilisateur “root”.

Vous pouvez ainsi restaurer votre configuration CUPS dans l'état d'avant le patch.

Pour ce qui est du fichier “~/.cups/client.conf”, il suffit soit de le supprimer ou de replacer l'ancien fichier “client.conf” sauvegardé par le patcher en “client.conf.old”.

Si vous appliquer cette procédure, vous retrouvez votre configuration initiale. Bien entendu, celle-ci prendra effet dès que CUPS aura été redémarré.


Voici une autre alternative : gtklp...

Installez l'outil “gtklp” (disponible pour la plupart des distribution Linux). Pour cela, suivez la procédure habituelle pour votre distribution et rechercher le paquet “gtklp”. Installez celui-ci de préférence à partir du gestionnaire de paquets de votre système.

Lorsque ce programme est installé, testez-le en introduisant la commande 'gtklp' dans un terminal. Le programme doit s'aouvrir…

Si tout va bien, ouvrez BeDesk et modifiez l'option “Système” / “Paramètres système” / “Options du système d'impression” en sélectionnant “Utiliser la ligne de commande” et remplacer la commande

lpr {PDF}

par

gtklp {PDF}

(attention “PDF” est placé entre des accolades et non des parenthèses). Appliquez.

Si vous avez bien configuré BeDesk, les impressions passent par l'outil gtklp.

linux_bugs/cups_printing.txt · Dernière modification: 2013/03/05 10:22 (modification externe)

Retour
Table des matires