Stampa dalla riga di comando


28

Come posso stampare l'output della riga di comando direttamente sulla stampante.

Sto usando Ubuntu Server 12.04 e devo copiare i file in una directory condivisa e poi scaricarli da una distribuzione Ubuntu desktop per stamparli.

Qualsiasi aiuto è apprezzato


Non hai detto se stamperai testo semplice o PDF. Alcuni sistemi supportano solo il testo normale pronto all'uso, quindi è necessario coprirlo.
alexis

non so perché abbiano declassato la mia risposta, provaci.
nux

@nux +1 Tutte le risposte sono fantastiche grazie a tutti voi
kamil

@alexis Sono chiaro: voglio stampare l'output della console. Ad esempio, l'output è diretto alla stampante
kamil

Oops, in effetti l'hai detto e mi è mancato, scusa!
alexis

Risposte:


35

Principalmente ci sono due comandi predefiniti:

lpr e lp

man lpr dà l'output:

lpr invia i file per la stampa. I file nominati sulla riga comandi vengono inviati alla stampante denominata (o alla destinazione predefinita se non viene specificata alcuna destinazione). Se nella riga di comando non sono elencati file, lpr legge il file di stampa dall'input standard.

man lp dà l'output:

lp invia i file per la stampa o modifica un lavoro in sospeso. Utilizzare un nome file di "-" per forzare la stampa dall'input standard.

quindi usa facilmente il comando:

lp /path-to-file-to-print

O

lpr /path-to-file-to-print

15

Puoi usare lp

Per esempio:

man firefox | lp -d printername

Questo stamperà la pagina man da firefox sulla stampante specificata


1
Grazie, dovevo anche usare o fit-to-pageper mantenere un po 'meglio il testo sulla pagina. man bash | lp -o media=letter -o portrait -o fit-to-page -, -alla fine garantisce la lettura dell'input standard.
Elijah Lynn l'

1
Se la stampante è predefinita, non è necessario il -dparametro. Su Ubuntu con Unity, la stampante predefinita viene impostata facendo clic sul pulsante Cerca, quindi digita "stampa" e ti porterà nel posto giusto in cui è possibile impostare il valore predefinito. Inoltre, lpnell'esempio dice che sei in giro con Unix da un po 'di tempo. lprfunziona allo stesso modo su Ubuntu.
SDsolar

4

Se li hai installati, un'altra coppia di opzioni che vale la pena conoscere sono

e

Questi sono utili per fornire alle pagine numerate intestazioni e numeri di riga opzionali. È inoltre possibile utilizzare quindi per stampare lo stile del booklet (ad esempio due pagine su ciascun lato di un foglio)

Li uso con stampanti compatibili con Postscript ma credo che il sistema di stampa di Ubuntu possa rasterizzare PS per qualsiasi stampante supportata.


questa è una bella idea
Kamil

Sicuramente batte direttamente la codifica PostScript.
SDsolar,

3

Potresti voler scoprire come si accede prima alla stampante - lpstatti fornirà tali informazioni. Se si confronta l'output su entrambi i sistemi, è possibile sapere se la stampante in questione è stata configurata su entrambi. lpstat -p -delenca tutte le stampanti con il loro stato e indica quale è stata impostata come stampante predefinita.

Quindi puoi semplicemente reindirizzare il tuo output al comando lpo lpr. Tuttavia, potresti voler inserire un filtro per la stampa o l'impaginazione. C'è un buon riassunto degli strumenti nel manuale di Debian "Evidenziare e formattare i dati di testo semplice" , ma di solito sto solo usando sedper evidenziare i prompt e altre cose prima di inviare tutto tramitea2ps


2

Per stampare un file .txt in un uso:

command | lpr -P printername -p ( periority from 1 to 100 )

Esempio :

ls -l | lpr -P printername -p 1 

1

La domanda è su come stampare dalla riga di comando su un server e sembra che tu non abbia ancora alcuna stampante definita su quel sistema. Non ho un sistema da verificare, quindi i seguenti sono approssimativi, ma dovrebbero darti l'idea generale:

  1. Assicurarsi che il sistema CUPS sia installato e in esecuzione. Fornisce i demoni che gestiranno i tuoi lavori di stampa.
  2. Al termine, è necessario configurare una o più stampanti di rete su cui stampare. Il solito modo di installare le stampanti è con l' utility Printer Admin , ma evidentemente non sei configurato per eseguire alcun programma di interfaccia grafica dal tuo server, basta accedere alla riga di comando tramite ssh. Dato che hai già un sistema desktop Ubuntu sulla stessa rete, proverei a copiare il contenuto della directory /etc/cupsdalla casella del desktop al server. Dovrebbe contenere tutte le definizioni della stampante e i driver necessari. Controlla i file per le modifiche necessarie (nel caso in cui il tuo setup menzioni ID utente o password che differiscono tra i due sistemi), riavvia cupsde se sei fortunato sarai in grado di utilizzare lprper stampare dalla riga di comando.

PS. È possibile installare un numero sufficiente di utility X per eseguire l' utilità GUI di Admin stampa tramite una connessione X remota alla casella Ubuntu desktop (accedere con ssh -X) e definire le stampanti necessarie. Ma spero che questo non sia necessario.


1

Puoi usare il lpcomando

Per stampare l'output di un comando sulla stampante predefinita (usare lpstat -dper vedere qual è la stampante predefinita):

echo "test" | lp

Per stampare su una stampante specifica (utilizzare lpstat -p | awk '{print $2}'per elencare i nomi delle stampanti disponibili):

echo "test" | lp -d printername

Per stampare un file, anziché un output del comando:

lp /path/to/file
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.