4 votos

¿Automatizar la impresión con opciones?

Estoy intentando imprimir un archivo (un pdf), sin intervención. No es algo específico de Automator, puedo tratar con applescript o terminal o lo que sea. Los detalles de lo que quiero son:

  • Imprimir en una impresora específica
  • Imprimir en un tamaño de página específico (no estándar)
  • Rotación automática (opcional)
  • Escala de ajuste, imprimir toda la página (termina siendo 109 a 112%. 110% funciona)

Puedo hacerlo manualmente a través del menú de impresión de Vista Previa, sólo que el tamaño de la página no es el predeterminado, pero quiero automatizarlo, arrastrando y soltando, de alguna manera.

Cosas que probé:

  1. Si imprimo desde el Finder, utiliza la Vista Previa, pero se desdibuja y se equivoca en el tamaño de la página.
  2. Si lo arrastro a la impresora en ~/Library/Printers/printername, es como usar LP, pero sin las opciones.
  3. Las opciones de impresión de Applescript están mal documentadas.
  4. El "Print Finder Items" de Automator es como el número 1.
  5. La opción "Imprimir imágenes" de Automator es como la de Vista Previa, pero la opción "Escalar para ajustar" no funciona como la de Vista Previa, no puedo elegir el tamaño de la página y la opción "Rotación automática" no funciona en absoluto.
  6. Si imprimo desde el terminal a través de LP o LPR, puedo establecer el tamaño de la página y la orientación/ajuste a la página, pero no puedo escalarlo al 110%. Esto es lo más parecido a lo que quiero.

¿Cómo puedo hacerlo? No debería ser tan difícil, quiero hacer lo que la GUI puede, no como quiero características adicionales.

En el peor de los casos, ¿cómo puedo emular el control del ratón o del teclado del menú de impresión de Vista Previa? Todo lo que se necesitaría es 1. Abrir el archivo, 2. Traer el menú de impresión, 3. Cambiar a un preset o tamaño de página, ya que todas las otras opciones incluyendo la escala son por defecto ., 4. pulse imprimir/introducir.

0 votos

Para emular el control del ratón o del teclado (y un montón de otras funciones sin las que te preguntarás cómo has podido vivir) puedes echar un vistazo a Herramienta Better Touch .

3voto

Steve Evans Puntos 155

Vamos a dividir el problema en dos partes: el escalado y la impresión.

Escala

Puede escalar un PDF en la línea de comandos. Considere la posibilidad de crear un PDF temporal, escalado, para imprimirlo.

Ver Escalar el contenido del PDF y las dimensiones de las páginas desde la línea de comandos para conocer los enfoques sugeridos al respecto. La respuesta más votada sugiere utilizar cpdf con un comando como:

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

Una herramienta alternativa es sips . Esta herramienta está incluida en OS X y es sorprendentemente capaz.

Impresión

Como has descubierto, el sistema de impresión de OS X es el Sistema de impresión común de Unix (CUPS). CUPS incluye la herramienta de línea de comandos lpr que puede aceptar todos los ajustes y opciones que necesitas.

Para imprimir el PDF a través de la línea de comandos, véase:

Para listar las impresoras disponibles, utilice:

lpstat -p -d

Para imprimir un archivo PDF en la impresora predeterminada, utilice:

lpr file.pdf

0 votos

¿sería posible utilizar un pipe y hacer todo el tinglado a la vez? como: cpdf -scale-page "1.1 1.1" in.pdf | lpr ?

0 votos

Con cpdf que podría ser posible. En sips tendría que ir a través de un archivo. Sospecho que un corto bash script o incluso un droplet AppleScript envolvería el comando bien.

0 votos

Teniendo en cuenta que CPDF puede hacer el recorte y la escala en un solo comando y luego pasarlos a LP, esto debería ser lo mejor para mí. Tendré que probarlo.

0voto

Richard Keller Puntos 1283

Lo que acabé haciendo fue utilizar open y osascript junto con una herramienta pdfcrop del usuario del foro de MacRumor Oligarca (Copia de seguridad de Wayback Machine a archivo )

./pdfcrop /path/to/file.pdf -u in -p 6.68 1.82 -a tr -o 0.14 0.23 > ./0.pdf && \
./pdfcrop /path/to/file.pdf -b m -u in -p 3.30 1.82 -a tr -o 0.14 0.23 > ./1.pdf && \
./pdfcrop /path/to/file.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 "'/path/to/file.pdf'"' -e 'tell application "Finder" to delete POSIX file "'./1.pdf'"' -e 'tell application "Finder" to delete POSIX file "'./2.pdf'"'
  1. Toma el archivo original y crea tres copias. Una con el pdf recortado al tamaño (caja de recorte, no destructiva) que conservo, y dos recortadas al tamaño (caja de medios) que son temporales.
  2. Luego los abre con Vista Previa, como dos páginas/archivos en la misma ventana.
  3. A continuación, le dice a Finder a través de Applescript que borrar los archivos temporales, en un Finder, se mueven a la manera de la basura. Lo mismo que si ⌘-Delete los archivos.
  4. Una vez en la vista previa, puedo ⌘-P para imprimir ambos archivos. Lo único que tengo que hacer es cambiar el tamaño del papel, Vista Previa se encarga del escalado.

Obviamente, no hace todo lo que quiero, pero ayuda a reducir la cantidad de recortes manuales y las idas y venidas para asegurarme de que todo lo que necesito se imprime.

Dado que CPDF puede escalar y recortar, debería ser más fácil hacerlo todo a través de la línea de comandos. Sólo tengo que probarlo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X