Automatizza la stampa con le opzioni?

2

Sto cercando di stampare un file (un pdf), senza intervento. Non specifico di Automator, posso occuparmi di meleScript o terminali o altro. Le specifiche di ciò che voglio sono:

  • Stampa su stampante specifica
  • Stampa su dimensioni pagina specifiche (non standard)
  • Rotazione automatica (opzionale)
  • Adatta in scala, Stampa pagina intera (finisce per essere dal 109 al 112%. Il 110% funziona)

Posso farlo manualmente attraverso il menu di stampa di Anteprima, solo la dimensione della pagina non è predefinita, ma voglio automatizzarla, trascinarla e rilasciarla, in qualche modo.

Cose che ho provato:

  1. Se stampo da Finder, utilizza l'anteprima, ma è fuori misura e dimensioni della pagina sbagliate.
  2. Se lo trascino sulla stampante in ~ / Library / Printers / printername, è come usare LP, ma senza le opzioni.
  3. Le opzioni di stampa di Applescript sono scarsamente documentate.
  4. "Oggetti del Finder di stampa" di Automator è come il numero 1.
  5. Le "immagini di stampa" di Automator sono come l'anteprima ma "Adatta" non funziona come l'anteprima, non posso scegliere le dimensioni della pagina e "Rotazione automatica" non funziona affatto.
  6. Se stampo dal terminale tramite LP o LPR, posso impostare le dimensioni della pagina e l'orientamento / adattamento alla pagina, ma non posso ridimensionarlo al 110%. Questa è la cosa più vicina a ciò che voglio.

Come posso fare questo? Non dovrebbe essere così difficile, voglio fare quello che può fare la GUI, non come voglio funzionalità extra.

Nel peggiore dei casi, come posso emulare il controllo del mouse o della tastiera del menu di stampa di Anteprima? Tutto ciò che sarebbe necessario è 1. aprire il file, 2. Aprire il menu di stampa, 3. passare a un preset o al formato della pagina, poiché tutte le altre opzioni incluso il ridimensionamento sono predefinite ., 4. premere stampa / enter.

    
posta cde 03.03.2016 - 10:06
fonte

2 risposte

2

Dividiamo il problema in due parti: ridimensionamento e stampa.

Scaling

È possibile ridimensionare un PDF sulla riga di comando. Prendi in considerazione la possibilità di creare un PDF temporaneo e ridimensionato da stampare.

Vedi ridimensionamento del contenuto PDF e delle dimensioni della pagina dalla riga di comando per gli approcci suggeriti a questo. La risposta più votata suggerisce di utilizzare cpdf con un comando del tipo:

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

Uno strumento alternativo è sips . Questo strumento è incluso con OS X ed è sorprendentemente capace.

Stampa

Come hai scoperto, il sistema di stampa di OS X è il Sistema di stampa Unix comune (CUPS). CUPS include lo strumento da riga di comando lpr che può accettare tutte le impostazioni e le opzioni necessarie.

Per stampare il PDF tramite la riga di comando, vedere:

Per elencare le stampanti disponibili, utilizzare:

lpstat -p -d

Per stampare un file PDF sulla stampante predefinita, utilizzare:

lpr file.pdf
    
risposta data 10.03.2016 - 11:36
fonte
0

Ciò che ho finito per fare era usare open e osascript insieme a uno strumento pdfcrop da utente del forum MacRumor Oligarch (backup Wayback Machine su archivio )

./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. Prende il file originale e crea tre copie. Uno con il pdf ritagliato per taglia (casella di ritaglio, nessuno distruttivo) che tengo, e due ritagliati a misura (media box) che sono temporanei.
  2. Quindi li apre con Anteprima, come due pagine / file nella stessa finestra.
  3. Quindi dice a Finder tramite Applescript di eliminare i file temporanei, in un Finder, spostati nel modo cestino. Uguale a come se io ⌘-Delete i file.
  4. Una volta in Anteprima, posso ⌘-P per stampare entrambi i file. L'unica cosa che devo fare è cambiare la dimensione della carta, Anteprima gestisce il ridimensionamento.

Ovviamente, non fa tutto ciò che voglio, ma aiuta a ridurre la quantità di ritaglio manuale e ad andare avanti e indietro per garantire che tutto ciò che mi serve stampato sia stampato.

Poiché CPDF può ridimensionare e ritagliare, dovrebbe essere più facile fare tutto tramite la riga di comando. Ho solo bisogno di provarlo.

    
risposta data 22.03.2016 - 01:09
fonte

Leggi altre domande sui tag