4 votes

Automatiser l'impression avec des options?

Je suis en train d'essayer d'imprimer un fichier (un pdf), sans intervention. Pas spécifique à Automator, je peux utiliser AppleScript ou le terminal ou autre. Ce que je veux est le suivant :

  • Imprimer sur une imprimante spécifique
  • Imprimer sur une taille de page spécifique (non standard)
  • Rotation automatique (optionnelle)
  • Mettre à l'échelle pour s'adapter, imprimer la page entière (cela finit par être de 109 à 112%. 110 % fonctionne)

Je peux le faire manuellement via le menu d'impression de Preview, seule la taille de page n'est pas par défaut, mais je veux automatiser cela, glisser et déposer, d'une manière ou d'une autre.

Choses que j'ai essayées :

  1. Si j'imprime depuis le Finder, ça utilise Preview, mais c'est hors de taille, et la mauvaise taille de page.
  2. Si je le glisse sur l'imprimante dans ~/Library/Printers/nomdelimprimante, c'est comme utiliser LP, mais sans les options.
  3. Les options d'impression d'AppleScript sont mal documentées.
  4. Les items du Finder "Imprimer" de l'Automator, c'est comme le #1.
  5. Les "Imprimer des images" de l'Automator sont comme Preview mais "Mettre à l'échelle pour s'adapter" ne fonctionne pas comme Preview, je ne peux pas choisir la taille de la page, et "Rotation automatique" ne fonctionne pas du tout.
  6. Si j'imprime depuis le terminal via LP ou LPR, je peux définir la taille de la page et l'orientation/mettre-à-l'echelle-pour-page, mais je ne peux pas mettre à l'échelle à 110%. C'est la chose la plus proche de ce que je veux.

Comment puis-je faire cela? Ça ne devrait pas être si difficile, je veux faire ce que l'interface graphique peut faire, pas comme si je voulais des fonctionnalités supplémentaires.

Dans le pire des cas, comment puis-je émuler le contrôle de la souris ou du clavier du menu d'impression de Preview? Tout ce qui serait nécessaire est de 1. ouvrir le fichier, 2. afficher le menu d'impression, 3. passer à un préréglage ou à une taille de page, comme toutes les autres options y compris la mise à l'échelle sont par défaut, 4. appuyer sur imprimer/entrée.

0 votes

Pour émuler le contrôle de la souris ou du clavier (et une foule d'autres fonctionnalités dont vous vous demanderez comment vous avez pu vous en passer), vous pouvez jeter un œil à Better Touch Tool.

3voto

Graham Miln Points 39606

Divisons le problème en deux parties : mise à l'échelle et impression.

Mise à l'échelle

Vous pouvez mettre une PDF à l'échelle en ligne de commande. Considérez la création d'un PDF temporaire mis à l'échelle pour l'impression.

Consultez la mise à l'échelle du contenu et des dimensions de la page PDF en ligne de commande pour des approches suggérées à ce sujet. La réponse la mieux cotée suggère l'utilisation de cpdf avec une commande comme :

cpdf -scale-page "1.1 1.1" in.pdf -o out.pdf

Un outil alternatif est sips. Cet outil est inclus dans OS X et est étonnamment capable.

Impression

Comme vous l'avez découvert, le système d'impression d'OS X est le Common Unix Printing System (CUPS). CUPS inclut l'outil en ligne de commande lpr qui peut accepter tous les paramètres et options dont vous avez besoin.

Pour imprimer le PDF via la ligne de commande, consultez :

Pour lister les imprimantes disponibles, utilisez :

lpstat -p -d

Pour imprimer un fichier PDF sur l'imprimante par défaut, utilisez :

lpr fichier.pdf

0 votes

Est-il possible d'utiliser un tuyau et de tout faire en une seule fois? par exemple : cpdf -scale-page "1.1 1.1" in.pdf | lpr ?

0 votes

Avec cpdf, cela pourrait être possible. Avec sips, il faudrait passer par un fichier. Je soupçonne qu'un court script bash ou même un AppleScript droplet envelopperait bien la commande.

0 votes

En considérant que CPDF peut effectuer un rognage et un redimensionnement en une seule commande puis en le redirigeant vers LP, cela devrait être le mieux pour moi. Je vais devoir le tester.

0voto

cde Points 581

Ce que j'ai fini par faire était d'utiliser open et osascript en combinaison avec un outil pdfcrop du forum MacRumor de l'utilisateur Oligarch (sauvegarde de la machine Wayback sur archive)

./pdfcrop /chemin/vers/fichier.pdf -u in -p 6.68 1.82 -a tr -o 0.14 0.23 > ./0.pdf && \
./pdfcrop /chemin/vers/fichier.pdf -b m -u in -p 3.30 1.82 -a tr -o 0.14 0.23 > ./1.pdf && \
./pdfcrop /chemin/vers/fichier.pdf -b m -u in -p 3.38 1.78 -a tr -o 3.43 0.24 > ./2.pdf && \
open ./1.pdf ./2.pdf && \
osascript -e 'tell application "Finder" to delete POSIX file "'/chemin/vers/fichier.pdf'"' -e 'tell application "Finder" to delete POSIX file "'./1.pdf'"' -e 'tell application "Finder" to delete POSIX file "'./2.pdf'"'
  1. Il prend le fichier original, et crée trois copies. Une avec le pdf rogné à la taille (cadre de rognage, non destructif) que je garde, et deux rognés à la taille (cadre média) qui sont temporaires.
  2. Ensuite, il les ouvre avec Aperçu, en deux pages/fichiers dans la même fenêtre.
  3. Ensuite, il indique à Finder via Applescript de supprimer les fichiers temporaires, de manière à les déplacer dans la corbeille. Comme si je -Supprime les fichiers.
  4. Une fois dans Aperçu, je peux -P pour imprimer les deux fichiers. La seule chose que j'ai à faire est de changer la taille du papier, Aperçu gère l'ajustement.

Évidemment, cela ne fait pas tout ce que je veux, mais cela aide à réduire la quantité de rognage manuel et les allers-retours pour m'assurer que tout ce que j'ai besoin d'imprimer est imprimé.

Puisque CPDF peut redimensionner et rogner, il devrait être plus facile de tout faire via la ligne de commande. Je dois juste le tester.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X