Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/06/2015, à 17:08

Gloops

[RESOLU] Pour un script d'impression

Bonjour tout le monde,
En attendant le débogage, pour pouvoir exploiter au mieux un système qui ne sait m'imprimer que la première page de chaque tâche (d'ailleurs, maintenant que les erreurs d'impression donnent lieu à la sortie d'un fichier d'erreurs, si quelqu'un sait où l'envoyer ça m'intéresse), sur une imprimante LQ100 Epson, je cherche à écrire un script qui imprime un fichier PDF à raison d'une tâche d'impression par page.

J'ai trouvé là (sur ask-ubuntu.com) comment extraire d'un fichier PDF des pages selon les numéros de la première et de la dernière, saisis dans une interface graphique, il me restera à modifier ça pour recueillir les numéros de pages en arguments, ça ne devrait pas être hors d'atteinte.

J'ai trouvé là, aussi sur askubuntu.com, comment faire apparaître un script dans le menu contextuel de Nautilus pour l'exécuter sur le fichier sélectionné (il serait d'ailleurs intéressant de limiter cela à un type de fichiers).

J'ai essayé depuis la console d'imprimer un fichier PDF par la commande lp, je le vois bien apparaître dans la file d'attente de l'imprimante, mais pas sortir sur l'imprimante. Il doit manquer une option à lp ? J'en ai essayé plusieurs ...

Je précise qu'avec la visionneuse Evince j'imprime sans problème, à part qu'il faut sélectionner la page voulue avec l'interface graphique.

Par ailleurs dans ce que j'ai trouvé il va manquer un élément : comment connaître (et recevoir dans une variable de script) le nombre de pages d'un fichier PDF.

Donc pour récapituler les deux points d’achoppement à ce qu'il me semble sont :

  • comment connaître dans un script le nombre de pages d'un fichier PDF

  • quelle est la syntaxe exacte d'impression d'un fichier PDF à partir de la ligne de commande ?

Accessoirement, si quelqu'un sait où envoyer un rapport d'erreur d'impression Ubuntu, ou voit un autre commentaire à faire ...

Dernière modification par Gloops (Le 10/06/2015, à 19:44)


Ah, oui, Ubuntu ... Ça va me rappeler des souvenirs.

Hors ligne

#2 Le 09/06/2015, à 19:22

Gloops

Re : [RESOLU] Pour un script d'impression

La première question a sa réponse là :
https://forum.ubuntu-fr.org/viewtopic.php?id=251671

pdftk fichier.pdf  dump_data | grep NumberOfPages | cut -f 2 -d ' '

Manque plus que l'impression en ligne de commande ...


Ah, oui, Ubuntu ... Ça va me rappeler des souvenirs.

Hors ligne

#3 Le 09/06/2015, à 21:19

Gloops

Re : [RESOLU] Pour un script d'impression

Quelqu'un a suggéré d'imprimer avec lpr, j'essaierai ça.
A part ça j'ai installé xpdf, dont on a dit du bien aussi.
Je vous dis ça d'une autre machine, parce qu'avant de réussir à fermer la logithèque Ubuntu, il va falloir du temps ...
Donc théoriquement ça doit être résolu, mais je ne peux pas tester pour le moment, pour cause de lenteur de la machine.

Logiquement, il ne me restera donc plus que le rapport d'erreur d'impression à faire parvenir à bon port. C'est dommage qu'on n'ait pas écrit en première ligne l'adresse mail où l'envoyer ...

Dernière modification par Gloops (Le 09/06/2015, à 21:24)


Ah, oui, Ubuntu ... Ça va me rappeler des souvenirs.

Hors ligne

#4 Le 10/06/2015, à 07:55

Sciensous

Re : [RESOLU] Pour un script d'impression

en effet:

lp -P <nom imprimante> fichier.pdf

l'option  -P <nom imprimante> est à mettre si +sieurs imprimantes installées et que la LQ n'est pas celle par défaut.
cool


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#5 Le 10/06/2015, à 08:11

Gloops

Re : [RESOLU] Pour un script d'impression

Sciensous a écrit :

en effet:

lp -P <nom imprimante> fichier.pdf

l'option  -P <nom imprimante> est à mettre si +sieurs imprimantes installées et que la LQ n'est pas celle par défaut.
cool

Oui, c'est bien la syntaxe que j'ai utilisée, et rien ne sort à l'imprimante. J'ai regardé les propriétés de la tâche, et je vois "no page found", alors que j'ai visualisé le document et qu'il comporte une ou plusieurs pages.

J'ai essayé d'ajouter l'option -P pour préciser les numéros de pages (attention que ce n'est pas la même casse avec lp ou lpr), mais c'est pareil.

Qu'est-ce qui a bien pu se passer ?

J'ai essayé xpdf, ça m'affiche une fenêtre avec un bouton pour imprimer, pour le moment je n'ai pas vu de commande en ligne permettant d'imprimer sans confirmation de l'utilisateur.

Dernière modification par Gloops (Le 10/06/2015, à 08:12)


Ah, oui, Ubuntu ... Ça va me rappeler des souvenirs.

Hors ligne

#6 Le 10/06/2015, à 11:37

Gloops

Re : [RESOLU] Pour un script d'impression

Alors voilà où j'en suis : j'avais quelques tâches d'impression lancées avec lp et avec xpdf, qui ne sortaient pas, j'ai tout supprimé de la file d'attente, et demandé l'impression depuis Evince.
ça n'est sorti à l'imprimante qu'au redémarrage du système. Donc, je soupçonne un problème d'installation, donc la question va déménager vers un forum d'impression.

Pendant que je suis dans le forum des scripts, toutefois : dans le message 2 j'ai trouvé comment afficher le nombre de pages d'un fichier PDF

pdftk fichier.pdf  dump_data | grep NumberOfPages | cut -f 2 -d ' '

Bon, c'est bien, mais ça ne me dit pas comment mettre ce nombre dans une variable du script ...

Dernière modification par Gloops (Le 10/06/2015, à 11:38)


Ah, oui, Ubuntu ... Ça va me rappeler des souvenirs.

Hors ligne

#7 Le 10/06/2015, à 16:04

Sciensous

Re : [RESOLU] Pour un script d'impression

N=$(pdftk fichier.pdf  dump_data | grep NumberOfPages | cut -f 2 -d ' ');

ou en plus "propre":

f=fichier.pdf
N=$(pdftk "$f"  dump_data | grep NumberOfPages | cut -f 2 -d ' ');

bon courage avec ton imprimante
cool


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#8 Le 10/06/2015, à 17:04

Gloops

Re : [RESOLU] Pour un script d'impression

Merci.


Ah, oui, Ubuntu ... Ça va me rappeler des souvenirs.

Hors ligne