Drukuj z wiersza poleceń

28

Jak wydrukować dane wyjściowe z wiersza poleceń bezpośrednio na drukarce.

Używam serwera Ubuntu 12.04 i muszę skopiować pliki do udostępnionego katalogu, a następnie pobrać je z stacjonarnej dystrybucji ubuntu, aby je wydrukować.

Każda pomoc jest mile widziana

Kamil
źródło
Nie powiedziałeś, czy będziesz drukować zwykły tekst czy PDF. Niektóre systemy obsługują tylko zwykły tekst po wyjęciu z pudełka, więc należy to uwzględnić.
Alexis
nie wiem, dlaczego głosują za moją odpowiedzią, po prostu spróbuj.
nux
@nux +1 Wszystkie odpowiedzi są świetne, dziękuję wam wszystkim
kamil
@alexis Jestem pewien: chcę wydrukować dane wyjściowe konsoli. Na przykład wyjście ls bezpośrednio do drukarki
kamil
Ups, rzeczywiście powiedziałeś, ale mi tego brakowało, przepraszam!
Alexis

Odpowiedzi:

35

Głównie są dwa domyślne polecenia:

lpr i lp

man lpr daje wynik:

lpr przesyła pliki do wydrukowania. Pliki nazwane w wierszu poleceń są wysyłane do nazwanej drukarki (lub domyślnego miejsca docelowego, jeśli nie podano miejsca docelowego). Jeśli w wierszu poleceń nie ma żadnych plików, lpr odczytuje plik wydruku ze standardowego wejścia.

man lp daje wynik:

lp przesyła pliki do wydrukowania lub zmienia oczekujące zadanie. Użyj nazwy pliku „-”, aby wymusić drukowanie ze standardowego wejścia.

tak łatwo użyj polecenia:

lp /path-to-file-to-print

Lub

lpr /path-to-file-to-print
Maythux
źródło
15

Możesz użyć lp

Na przykład:

man firefox | lp -d printername

Spowoduje to wydrukowanie strony man z Firefoxa na określonej drukarce

Noosrep
źródło
1
Dzięki, musiałem również użyć, o fit-to-pageaby tekst na stronie był nieco lepszy. man bash | lp -o media=letter -o portrait -o fit-to-page -, -na końcu zapewnia odczyt standardowego wejścia.
Elijah Lynn,
1
Jeśli drukarka jest domyślna, -dparametr nie jest potrzebny . W systemie Ubuntu z Unity domyślną drukarkę ustawia się, klikając przycisk Wyszukaj, a następnie wpisując „drukuj”, a przeniesie Cię we właściwe miejsce, w którym można ustawić domyślną drukarkę. Ponadto lpw tym przykładzie mówi się, że jesteś w Unixie od jakiegoś czasu. lprdziała tak samo na Ubuntu.
SDsolar
4

Jeśli masz je zainstalowane, to kolejna para opcji, o których warto wiedzieć

i

Są one przydatne do zapewnienia numerowanym stronom nagłówków i opcjonalnych numerów linii. Możesz także użyć następnie do wydrukowania stylu broszury (np. Dwie strony po każdej stronie arkusza)

Używam ich z drukarkami obsługującymi Postscript, ale wierzę, że system drukowania Ubuntu może zrasteryzować PS dla dowolnej obsługiwanej drukarki.

RedGrittyBrick
źródło
to fajny pomysł
kamil
Na pewno bije kodowanie bezpośrednio w PostScript.
SDsolar
3

Możesz najpierw dowiedzieć się, jak uzyskać dostęp do drukarki - lpstatpoda te informacje. Porównując jego wyniki w obu systemach, można prawdopodobnie stwierdzić, czy dana drukarka została skonfigurowana w obu systemach. lpstat -p -dwyświetla listę wszystkich drukarek z ich statusem i informuje, która z nich została ustawiona jako drukarka domyślna.

Następnie możesz po prostu przesłać dane wyjściowe do polecenia lplub lpr. Możesz jednak wstawić filtr do drukowania lub stronicowania. W podręczniku debiana „Podświetlanie i formatowanie danych tekstowych” znajduje się dobre podsumowanie narzędzi , ale zwykle używam tylko seddo podświetlania podpowiedzi i innych rzeczy przed przesłaniem wszystkiegoa2ps

Tatjana Heuser
źródło
2

Aby wydrukować plik .txt w użyciu:

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

Przykład:

ls -l | lpr -P printername -p 1 
nux
źródło
1

Pytanie dotyczy tego, jak drukować z wiersza poleceń na serwerze . Wygląda na to, że nie masz jeszcze zdefiniowanych drukarek w tym systemie. Nie mam systemu do sprawdzenia, więc poniższe są przybliżone, ale powinny dać ogólny pomysł:

  1. Upewnij się, że system CUPS jest zainstalowany i działa. Udostępnia demony, które będą obsługiwać zadania drukowania.
  2. Gdy to się stanie, musisz skonfigurować jedną lub więcej drukarek sieciowych do drukowania. Zwykle sposób instalowania drukarek odbywa się za pomocą narzędzia Printer Admin , ale najwyraźniej nie jesteś skonfigurowany do uruchamiania żadnych programów GUI z serwera - wystarczy dostęp do linii poleceń za pośrednictwem ssh. Ponieważ masz już system stacjonarny Ubuntu w tej samej sieci, spróbuję skopiować zawartość katalogu /etc/cupsz pulpitu na serwer. Powinien zawierać wszystkie potrzebne definicje drukarek i sterowniki. Sprawdź pliki pod kątem wszelkich niezbędnych korekt (na wypadek gdyby Twoja konfiguracja wymieniała identyfikatory użytkowników lub hasła, które różnią się między dwoma systemami), uruchom ponownie cupsd, a jeśli będziesz miał szczęście, będziesz mógł lprdrukować z wiersza poleceń.

PS. W skrócie, możesz zainstalować wystarczającą liczbę narzędzi X, aby uruchomić narzędzie Print Admin GUI za pośrednictwem zdalnego połączenia X z komputerem stacjonarnym Ubuntu (zaloguj się ssh -X) i zdefiniować potrzebne drukarki. Ale mam nadzieję, że nie będzie to konieczne.

Alexis
źródło
1

Możesz użyć lppolecenia.

Aby wydrukować wynik polecenia na domyślnej drukarce (użyj, lpstat -daby zobaczyć, jaka jest domyślna drukarka):

echo "test" | lp

Aby drukować na określonej drukarce (użyj, lpstat -p | awk '{print $2}'aby wyświetlić listę dostępnych nazw drukarek):

echo "test" | lp -d printername

Aby wydrukować plik zamiast wyniku polecenia:

lp /path/to/file
waldyrious
źródło