<préambule>
Je n'ai pas trouvé de groupe parfaitement adapté pour cette question à
cheval sur le monde Unix (via cygwin) et le monde Windows, alors je la
pose à la fois sur fco.unix et fco.ms-windows. J'ai placé le suivi sur
fco.unix mais bien sûr vous pouvez le mettre ailleurs en fonction de la
réponse.
</préambule>
[ EDIT ]
Suite à une erreur dans le nom du groupe fr.comp.os.ms-windows, je
republie cet article avec supersedes. Désolé.
[ / ]
Sur mon PC, j'ai un Windows 2000 qui accède à une imprimante sans aucun
problème (imprimante réseau fournie avec un pilote Windows). Sur la même
machine j'ai installé cygwin, et la commande lpr imprime aussi très bien
mes fichiers de texte vers la même imprimante, avec une taille des
caractères par défaut (un peu grosse) et une longueur des tabulations
par défaut (environ 7,5 fois la largeur d'un caractère).
Ce que je voudrais, c'est passer mes fichiers texte par une moulinette
telle que la commande enscript, pour réduire la taille de la police de
caractères, fixer le nombre de lignes par page, ajouter des numéros de
ligne, fixer la largeur des tabulations à 4 caractères, et ainsi de
suite. Malheureusement, mon imprimante (HP Photosmart C7280) ne semble
pas comprendre le PostScript car elle imprime les instructions reçues
au lieu de les interpréter.
Par exemple (on peut rêver), est-ce que je peux trouver un pilote pour
cette imprimante qui soit directement accessible depuis cygwin, et un
utilitaire du type d'enscript mais qui sache parler à ce pilote ?
Ou bien est-il possible d'installer une imprimante virtuelle sous
Windows qui comprendrait le PostScript et le traduirait au pilote
d'imprimante dans le monde Windows, imprimante virtuelle à laquelle
je pourrais accéder depuis cygwin ?
Ou encore, existe-t-il une autre solution à laquelle je n'ai pas pensé ?
En désespoir de cause, je me rabattrai sur un filtre se contentant de
traduire les tabulations en séries d'espace selon une taille donnée.
Mais je ne pourrai malheureusement pas diminuer la taille de la police.
Je n'ai pas installé la commande start. C'est dans quelle partie de cygwin ?
start est une commande de Windows XP, interne au shell cmd.exe qui, pour une installation normale, se trouve dans C:WINDOWSsystem32. Donc, pour utiliser la commande start, le répertoire: /cygdrive/c/WINDOWS/system32 doit se trouver dans le PATH de cygwin (en fin de PATH, voir ci-dessous).
Ah, j'ai un petit problème, c'est que j'utilise Windows 2000 et que la commande start ne se trouve nulle part sous C: . Je suppose que c'est une commande interne au shell DOS car elle est reconnue quand je la lance à partir d'une fenêtre DOS, alors que cygwin ne la trouve pas. D'ailleurs un 'find' ne la trouve pas non plus.
Au passage, il n'existe pas non plus de paramètres /m ou /w à la commande start de mon Windows 2000 :
------------------------------------------------------------------------ C:>start /? Démarre une nouvelle fenêtre pour exécuter le programme ou la commande donné.
Je n'ai pas installé la commande start. C'est dans quelle partie de cygwin ?
start est une commande de Windows XP, interne au shell cmd.exe qui, pour
une installation normale, se trouve dans C:WINDOWSsystem32. Donc, pour
utiliser la commande start, le répertoire:
/cygdrive/c/WINDOWS/system32
doit se trouver dans le PATH de cygwin (en fin de PATH, voir ci-dessous).
Ah, j'ai un petit problème, c'est que j'utilise Windows 2000 et que la
commande start ne se trouve nulle part sous C: . Je suppose que c'est
une commande interne au shell DOS car elle est reconnue quand je la
lance à partir d'une fenêtre DOS, alors que cygwin ne la trouve pas.
D'ailleurs un 'find' ne la trouve pas non plus.
Au passage, il n'existe pas non plus de paramètres /m ou /w à la
commande start de mon Windows 2000 :
------------------------------------------------------------------------
C:>start /?
Démarre une nouvelle fenêtre pour exécuter le programme ou la commande
donné.
Je n'ai pas installé la commande start. C'est dans quelle partie de cygwin ?
start est une commande de Windows XP, interne au shell cmd.exe qui, pour une installation normale, se trouve dans C:WINDOWSsystem32. Donc, pour utiliser la commande start, le répertoire: /cygdrive/c/WINDOWS/system32 doit se trouver dans le PATH de cygwin (en fin de PATH, voir ci-dessous).
Ah, j'ai un petit problème, c'est que j'utilise Windows 2000 et que la commande start ne se trouve nulle part sous C: . Je suppose que c'est une commande interne au shell DOS car elle est reconnue quand je la lance à partir d'une fenêtre DOS, alors que cygwin ne la trouve pas. D'ailleurs un 'find' ne la trouve pas non plus.
Au passage, il n'existe pas non plus de paramètres /m ou /w à la commande start de mon Windows 2000 :
------------------------------------------------------------------------ C:>start /? Démarre une nouvelle fenêtre pour exécuter le programme ou la commande donné.
Je n'ai pas installé la commande start. C'est dans quelle partie de cygwin ?
start est une commande de Windows XP, interne au shell cmd.exe qui, pour une installation normale, se trouve dans C:WINDOWSsystem32. Donc, pour utiliser la commande start, le répertoire: /cygdrive/c/WINDOWS/system32 doit se trouver dans le PATH de cygwin (en fin de PATH, voir ci-dessous).
Ah, j'ai un petit problème, c'est que j'utilise Windows 2000 et que la commande start ne se trouve nulle part sous C: . Je suppose que c'est une commande interne au shell DOS car elle est reconnue quand je la lance à partir d'une fenêtre DOS, alors que cygwin ne la trouve pas. D'ailleurs un 'find' ne la trouve pas non plus.
Au passage, il n'existe pas non plus de paramètres /m ou /w à la commande start de mon Windows 2000 :
------------------------------------------------------------------------ C:>start /? Démarre une nouvelle fenêtre pour exécuter le programme ou la commande donné.
Je n'ai pas installé la commande start. C'est dans quelle partie de cygwin ?
start est une commande de Windows XP, interne au shell cmd.exe qui, pour
une installation normale, se trouve dans C:WINDOWSsystem32. Donc, pour
utiliser la commande start, le répertoire:
/cygdrive/c/WINDOWS/system32
doit se trouver dans le PATH de cygwin (en fin de PATH, voir ci-dessous).
Ah, j'ai un petit problème, c'est que j'utilise Windows 2000 et que la
commande start ne se trouve nulle part sous C: . Je suppose que c'est
une commande interne au shell DOS car elle est reconnue quand je la
lance à partir d'une fenêtre DOS, alors que cygwin ne la trouve pas.
D'ailleurs un 'find' ne la trouve pas non plus.
Au passage, il n'existe pas non plus de paramètres /m ou /w à la
commande start de mon Windows 2000 :
------------------------------------------------------------------------
C:>start /?
Démarre une nouvelle fenêtre pour exécuter le programme ou la commande
donné.
Je n'ai pas installé la commande start. C'est dans quelle partie de cygwin ?
start est une commande de Windows XP, interne au shell cmd.exe qui, pour une installation normale, se trouve dans C:WINDOWSsystem32. Donc, pour utiliser la commande start, le répertoire: /cygdrive/c/WINDOWS/system32 doit se trouver dans le PATH de cygwin (en fin de PATH, voir ci-dessous).
Ah, j'ai un petit problème, c'est que j'utilise Windows 2000 et que la commande start ne se trouve nulle part sous C: . Je suppose que c'est une commande interne au shell DOS car elle est reconnue quand je la lance à partir d'une fenêtre DOS, alors que cygwin ne la trouve pas. D'ailleurs un 'find' ne la trouve pas non plus.
Au passage, il n'existe pas non plus de paramètres /m ou /w à la commande start de mon Windows 2000 :
------------------------------------------------------------------------ C:>start /? Démarre une nouvelle fenêtre pour exécuter le programme ou la commande donné.
Du coup, je remets le suivi sur fr.comp.os.ms-window pour le cas où un expert Windows saurait me trouver l'équivalent sur W2000.
Cordialement, -- Olivier Miakinen
Olivier Miakinen
start est une commande de Windows XP, interne au shell cmd.exe qui, pour une installation normale, se trouve dans C:WINDOWSsystem32.
Finalement, j'ai viré purement et simplement le start, et j'utilise gswin32c au lieu de gswin32, conformément à ce que j'ai lu dans la doc. Et ça marche ! Bon, je n'ai pas encore tout ce que je voudrais (par exemple il m'imprime les pages dans le sens inverse, et il me fait du recto alors que j'aimerais du recto-verso), mais ça commence à ressembler à quelque chose. :-D
Pour info, voici mon script : ----------------------------------------------------------- for i in $* do enscript --line-numbers --font=Courier7 --fancy-header --no-job-header --lines-per-page0 --output=- --title="$i" --tabsize=4 --encoding=latin1 "$1" | gswin32c -q -sDEVICE=djet500 -dNOPAUSE -dBATCH - done -----------------------------------------------------------
start est une commande de Windows XP, interne au shell cmd.exe qui, pour
une installation normale, se trouve dans C:WINDOWSsystem32.
Finalement, j'ai viré purement et simplement le start, et j'utilise
gswin32c au lieu de gswin32, conformément à ce que j'ai lu dans la
doc. Et ça marche ! Bon, je n'ai pas encore tout ce que je voudrais
(par exemple il m'imprime les pages dans le sens inverse, et il me
fait du recto alors que j'aimerais du recto-verso), mais ça commence
à ressembler à quelque chose. :-D
Pour info, voici mon script :
-----------------------------------------------------------
for i in $*
do
enscript --line-numbers --font=Courier7 --fancy-header
--no-job-header --lines-per-page0 --output=-
--title="$i" --tabsize=4 --encoding=latin1 "$1"
| gswin32c -q -sDEVICE=djet500 -dNOPAUSE -dBATCH -
done
-----------------------------------------------------------
start est une commande de Windows XP, interne au shell cmd.exe qui, pour une installation normale, se trouve dans C:WINDOWSsystem32.
Finalement, j'ai viré purement et simplement le start, et j'utilise gswin32c au lieu de gswin32, conformément à ce que j'ai lu dans la doc. Et ça marche ! Bon, je n'ai pas encore tout ce que je voudrais (par exemple il m'imprime les pages dans le sens inverse, et il me fait du recto alors que j'aimerais du recto-verso), mais ça commence à ressembler à quelque chose. :-D
Pour info, voici mon script : ----------------------------------------------------------- for i in $* do enscript --line-numbers --font=Courier7 --fancy-header --no-job-header --lines-per-page0 --output=- --title="$i" --tabsize=4 --encoding=latin1 "$1" | gswin32c -q -sDEVICE=djet500 -dNOPAUSE -dBATCH - done -----------------------------------------------------------
gswin32c au lieu de gswin32, conformément à ce que j'ai lu dans la doc. Et ça marche ! Bon, je n'ai pas encore tout ce que je voudrais (par exemple il m'imprime les pages dans le sens inverse, et il me fait du recto alors que j'aimerais du recto-verso), mais ça commence
essaye avec l'option -dDuplex de ghostscript, sinon, 1ere alternative :
gswin32c au lieu de gswin32, conformément à ce que j'ai lu dans la
doc. Et ça marche ! Bon, je n'ai pas encore tout ce que je voudrais
(par exemple il m'imprime les pages dans le sens inverse, et il me
fait du recto alors que j'aimerais du recto-verso), mais ça commence
essaye avec l'option -dDuplex de ghostscript, sinon, 1ere alternative :
2nde alternative, remplacer : echo '@PJL SET DUPLEX=ON'
par : echo -ne ' 33&l1S'
pour ce qui est d'inverser l'ordre des pages, essaye avec un :
enscript ... | psselect -r | gswin32c ...
PS : psselect fait partie du package psutils.
à ressembler à quelque chose. :-D
Pour info, voici mon script :
-----------------------------------------------------------
for i in $*
do
enscript --line-numbers --font=Courier7 --fancy-header
--no-job-header --lines-per-page0 --output=-
--title="$i" --tabsize=4 --encoding=latin1 "$1"
| gswin32c -q -sDEVICE=djet500 -dNOPAUSE -dBATCH -
done
-----------------------------------------------------------
Regards, Cordialement,
Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%nospam@laposte.net.invalid
supprimer "%nospam% et ".invalid" pour me repondre.
remove "%nospam" and ".invalid" to answer me.
gswin32c au lieu de gswin32, conformément à ce que j'ai lu dans la doc. Et ça marche ! Bon, je n'ai pas encore tout ce que je voudrais (par exemple il m'imprime les pages dans le sens inverse, et il me fait du recto alors que j'aimerais du recto-verso), mais ça commence
essaye avec l'option -dDuplex de ghostscript, sinon, 1ere alternative :
---------------------------------------------------------------------- $ man cygstart (extraits)
DESCRIPTION cygstart is a command-line tool which allows you to let Windows start a program or open a file or URL in its associated application. It is similar to the Windows command-line start command.
EXAMPLES Start Bash in a new window $ cygstart bash
Open the Cygwin website in your default browser: $ cygstart http://www.cygwin.com
Print a text file $ cygstart --print README.txt
Open a Word document in a maximized window $ cygstart --maximize ~/projects/whatever/design.doc ----------------------------------------------------------------------
Sympa comme commande, en particulier pour lancer le navigateur sur une page web donnée ! Mais dans mon cas je n'ai pas l'impression d'avoir besoin d'ouvrir une nouvelle fenêtre puisque je me sers de GhostScript en batch uniquement.
[ recto-verso ]
essaye avec l'option -dDuplex de ghostscript, sinon, 1ere alternative : [ deux exemples de scripts ]
pour ce qui est d'inverser l'ordre des pages, essaye avec un : enscript ... | psselect -r | gswin32c ...
PS : psselect fait partie du package psutils.
Encore merci pour tous tes conseils que je vais m'empresser de suivre.
Cordialement, -- Olivier Miakinen
Le 14/12/2007 04:11, Cyrille Lefevre m'a répondu :
Finalement, j'ai viré purement et simplement le start, et j'utilise
----------------------------------------------------------------------
$ man cygstart (extraits)
DESCRIPTION
cygstart is a command-line tool which allows you to let
Windows start a program or open a file or URL in its associated
application. It is similar to the Windows command-line start
command.
EXAMPLES
Start Bash in a new window
$ cygstart bash
Open the Cygwin website in your default browser:
$ cygstart http://www.cygwin.com
Print a text file
$ cygstart --print README.txt
Open a Word document in a maximized window
$ cygstart --maximize ~/projects/whatever/design.doc
----------------------------------------------------------------------
Sympa comme commande, en particulier pour lancer le navigateur sur une
page web donnée ! Mais dans mon cas je n'ai pas l'impression d'avoir
besoin d'ouvrir une nouvelle fenêtre puisque je me sers de GhostScript
en batch uniquement.
[ recto-verso ]
essaye avec l'option -dDuplex de ghostscript, sinon, 1ere alternative :
[ deux exemples de scripts ]
pour ce qui est d'inverser l'ordre des pages, essaye avec un :
enscript ... | psselect -r | gswin32c ...
PS : psselect fait partie du package psutils.
Encore merci pour tous tes conseils que je vais m'empresser de suivre.
---------------------------------------------------------------------- $ man cygstart (extraits)
DESCRIPTION cygstart is a command-line tool which allows you to let Windows start a program or open a file or URL in its associated application. It is similar to the Windows command-line start command.
EXAMPLES Start Bash in a new window $ cygstart bash
Open the Cygwin website in your default browser: $ cygstart http://www.cygwin.com
Print a text file $ cygstart --print README.txt
Open a Word document in a maximized window $ cygstart --maximize ~/projects/whatever/design.doc ----------------------------------------------------------------------
Sympa comme commande, en particulier pour lancer le navigateur sur une page web donnée ! Mais dans mon cas je n'ai pas l'impression d'avoir besoin d'ouvrir une nouvelle fenêtre puisque je me sers de GhostScript en batch uniquement.
[ recto-verso ]
essaye avec l'option -dDuplex de ghostscript, sinon, 1ere alternative : [ deux exemples de scripts ]
pour ce qui est d'inverser l'ordre des pages, essaye avec un : enscript ... | psselect -r | gswin32c ...
PS : psselect fait partie du package psutils.
Encore merci pour tous tes conseils que je vais m'empresser de suivre.
Cordialement, -- Olivier Miakinen
Olivier Miakinen
Le 14/12/2007 09:30, je répondais à Cyrille Lefevre :
[ recto-verso ]
essaye avec l'option -dDuplex de ghostscript, sinon, 1ere alternative : [ deux exemples de scripts ]
Non, rien de tout ça n'a fonctionné. L'imprimante m'affiche les commandes en question avant de s'arrêter sur un « buffer underflow ». Il faut dire que, depuis Windows, le fonctionnement est assez particulier car cela m'ouvre une fenêtre expliquant dans quel sens remettre les feuilles quand le recto sera imprimé, afin d'imprimer le verso (je n'ai pas de module recto-verso mécanique).
pour ce qui est d'inverser l'ordre des pages, essaye avec un : enscript ... | psselect -r | gswin32c ...
PS : psselect fait partie du package psutils.
Je n'ai pas encore installé ce package, j'essaierai plus tard. Encore merci pour tous tes conseils en tout cas, ainsi qu'à Jean-Louis et Jacques.
Le 14/12/2007 09:30, je répondais à Cyrille Lefevre :
[ recto-verso ]
essaye avec l'option -dDuplex de ghostscript, sinon, 1ere alternative :
[ deux exemples de scripts ]
Non, rien de tout ça n'a fonctionné. L'imprimante m'affiche les
commandes en question avant de s'arrêter sur un « buffer underflow ».
Il faut dire que, depuis Windows, le fonctionnement est assez
particulier car cela m'ouvre une fenêtre expliquant dans quel sens
remettre les feuilles quand le recto sera imprimé, afin d'imprimer
le verso (je n'ai pas de module recto-verso mécanique).
pour ce qui est d'inverser l'ordre des pages, essaye avec un :
enscript ... | psselect -r | gswin32c ...
PS : psselect fait partie du package psutils.
Je n'ai pas encore installé ce package, j'essaierai plus tard. Encore
merci pour tous tes conseils en tout cas, ainsi qu'à Jean-Louis et Jacques.
Le 14/12/2007 09:30, je répondais à Cyrille Lefevre :
[ recto-verso ]
essaye avec l'option -dDuplex de ghostscript, sinon, 1ere alternative : [ deux exemples de scripts ]
Non, rien de tout ça n'a fonctionné. L'imprimante m'affiche les commandes en question avant de s'arrêter sur un « buffer underflow ». Il faut dire que, depuis Windows, le fonctionnement est assez particulier car cela m'ouvre une fenêtre expliquant dans quel sens remettre les feuilles quand le recto sera imprimé, afin d'imprimer le verso (je n'ai pas de module recto-verso mécanique).
pour ce qui est d'inverser l'ordre des pages, essaye avec un : enscript ... | psselect -r | gswin32c ...
PS : psselect fait partie du package psutils.
Je n'ai pas encore installé ce package, j'essaierai plus tard. Encore merci pour tous tes conseils en tout cas, ainsi qu'à Jean-Louis et Jacques.
Olivier Miakinen
pour ce qui est d'inverser l'ordre des pages, essaye avec un :
enscript ... | psselect -r | gswin32c ...
Ça marche !
Non seulement ça, mais j'ai lu la doc, et du coup je vois que je peux m'en servir pour le recto-verso :
1) ... | psselect -o -r | gswin32c ... 2) petit message invitant à remettre les feuilles dans le bac d'entrée. 3) ... | psselect -e | gswin32c ... 4) petit message invitant à vérifier qu'il ne reste pas une feuille dans la bac d'entrée (dernière feuille s'il y en avait un nombre impair).
Pour éviter le (4), existe-t-il un utilitaire comptant le nombre de pages ? Ça me permettrait d'imprimer une page vide à la fin de (3) pour éviter une manipulation inutile.
pour ce qui est d'inverser l'ordre des pages, essaye avec un :
enscript ... | psselect -r | gswin32c ...
Ça marche !
Non seulement ça, mais j'ai lu la doc, et du coup je vois que je peux
m'en servir pour le recto-verso :
1) ... | psselect -o -r | gswin32c ...
2) petit message invitant à remettre les feuilles dans le bac d'entrée.
3) ... | psselect -e | gswin32c ...
4) petit message invitant à vérifier qu'il ne reste pas une feuille dans
la bac d'entrée (dernière feuille s'il y en avait un nombre impair).
Pour éviter le (4), existe-t-il un utilitaire comptant le nombre de
pages ? Ça me permettrait d'imprimer une page vide à la fin de (3) pour
éviter une manipulation inutile.
pour ce qui est d'inverser l'ordre des pages, essaye avec un :
enscript ... | psselect -r | gswin32c ...
Ça marche !
Non seulement ça, mais j'ai lu la doc, et du coup je vois que je peux m'en servir pour le recto-verso :
1) ... | psselect -o -r | gswin32c ... 2) petit message invitant à remettre les feuilles dans le bac d'entrée. 3) ... | psselect -e | gswin32c ... 4) petit message invitant à vérifier qu'il ne reste pas une feuille dans la bac d'entrée (dernière feuille s'il y en avait un nombre impair).
Pour éviter le (4), existe-t-il un utilitaire comptant le nombre de pages ? Ça me permettrait d'imprimer une page vide à la fin de (3) pour éviter une manipulation inutile.
Olivier Miakinen
Le 15/12/2007 16:38, j'écrivais :
4) petit message invitant à vérifier qu'il ne reste pas une feuille dans la bac d'entrée (dernière feuille s'il y en avait un nombre impair).
Pour éviter le (4), existe-t-il un utilitaire comptant le nombre de pages ? Ça me permettrait d'imprimer une page vide à la fin de (3) pour éviter une manipulation inutile.
Je me réponds encore une fois. Un grep sur la chaîne « %%Pages » dans le fichier PostScript généré par enscript me retourne les deux lignes suivantes pour un document de 15 pages :
%%Pages: (atend) %%Pages: 15
Je devrais donc arriver à m'en sortir tout seul. Je peux même utiliser « grep "^%%Pages.*[13579]$" » qui trouvera quelque chose si le nombre de pages est impair, et rien si ce nombre est pair.
Mais si jamais il y a plus simple je suis preneur de toute solution.
Le 15/12/2007 16:38, j'écrivais :
4) petit message invitant à vérifier qu'il ne reste pas une feuille dans
la bac d'entrée (dernière feuille s'il y en avait un nombre impair).
Pour éviter le (4), existe-t-il un utilitaire comptant le nombre de
pages ? Ça me permettrait d'imprimer une page vide à la fin de (3) pour
éviter une manipulation inutile.
Je me réponds encore une fois. Un grep sur la chaîne « %%Pages » dans
le fichier PostScript généré par enscript me retourne les deux lignes
suivantes pour un document de 15 pages :
%%Pages: (atend)
%%Pages: 15
Je devrais donc arriver à m'en sortir tout seul. Je peux même utiliser
« grep "^%%Pages.*[13579]$" » qui trouvera quelque chose si le nombre
de pages est impair, et rien si ce nombre est pair.
Mais si jamais il y a plus simple je suis preneur de toute solution.
4) petit message invitant à vérifier qu'il ne reste pas une feuille dans la bac d'entrée (dernière feuille s'il y en avait un nombre impair).
Pour éviter le (4), existe-t-il un utilitaire comptant le nombre de pages ? Ça me permettrait d'imprimer une page vide à la fin de (3) pour éviter une manipulation inutile.
Je me réponds encore une fois. Un grep sur la chaîne « %%Pages » dans le fichier PostScript généré par enscript me retourne les deux lignes suivantes pour un document de 15 pages :
%%Pages: (atend) %%Pages: 15
Je devrais donc arriver à m'en sortir tout seul. Je peux même utiliser « grep "^%%Pages.*[13579]$" » qui trouvera quelque chose si le nombre de pages est impair, et rien si ce nombre est pair.
Mais si jamais il y a plus simple je suis preneur de toute solution.