Ruotare il Raspberry Pi in un server di stampa
Una stampante non è il più conveniente di periferiche. Guardano fuori posto sulla maggior parte dei banchi di lavoro e creare un bel racchetta quando sputando pagine.
Si potrebbe gettare qualche centinaio di sterline su una nuova stampante di rete snazzy che si trova in un angolo da qualche parte e può ricevere ordini di stampa da qualsiasi computer della rete locale o si può semplicemente collegare la stampante USB regolare per il Raspberry Pi e godere delle stesse comodità offerte dalla parte superiore delle stampanti di rete linea.
Se non avete già utilizzato la stampante su Linux, prima di iniziare con questa testa progetto per la Apri sito web Stampa per verificare se la vostra stampante è compatibile con il software del server di stampa CUPS.
Se la stampante è presente nell’elenco, collegarlo al Raspberry Pi utilizzando una delle porte USB. Per questo progetto, stiamo usando la distro Raspbian e il Raspberry Pi è collegato alla rete locale tramite una scheda di rete wireless compatibili.
Tuttavia, è anche possibile agganciare il Raspberry Pi fino alla rete tramite la porta Ethernet.
È possibile seguire le istruzioni contenute in questo tutorial accedendo al Raspberry Pi remoto da qualsiasi altro computer sulla rete. Basta fare in modo che il server SSH all’interno Raspbian è attivata utilizzando lo strumento Raspi-config. E ‘anche una buona idea di assegnare un indirizzo IP fisso per il Raspberry Pi.
Lo si può fare facilmente da all’interno della pagina di amministrazione del router. Per questo tutorial ci assumiamo che l’indirizzo IP del PI lampone è 192.168.3.111
È ora possibile accedere alla Pi da Windows utilizzando il client PuTTY o da qualsiasi distro Linux con il comando SSH CLI con:
$ sudo ssh pi@192.168 .3.111
Installa CUPS
Una volta che siete dentro Raspbian, aggiornare i repository (pronti contro termine) con $ sudo apt-get update e quindi installare eventuali aggiornamenti con $ sudo apt-get upgrade. Ora tirare nel server di stampa CUPS con $ sudo apt-get install cups
Quando è installato, aggiungere il tuo utente al gruppo creato da CUPS chiamato lpadmin che ha accesso alla stampante coda.
A meno che non è stato creato un utente personalizzato, l’utente di default su Raspbian si chiama pi greco. Utilizzare il seguente comando per consentire di interagire con la stampante: $ sudo usermod -a -G lpadmin pi
Qui si usa lo strumento usermod per aggiungere (-a), l’utente pi greco al gruppo lpadmin (-G). Per impostazione predefinita, CUPS possono essere configurati solo dal computer locale che è installato.
Dato che non funziona nel nostro caso, abbiamo bisogno di modificare il file di configurazione per permetterci di fare modifiche al server da un computer remoto. Prima di tutto, è necessario creare una copia di backup del file di configurazione originale con:
$ sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.orig
Quindi aprire il file con l’editor di testi nano: $ sudo nano /etc/cups/cupsd.conf. All’interno del file, scorrere fino alla sezione seguente:
# ascolto solo per connessioni da computer
locale Ascoltare localhost: 631
Commento che linea (aggiungendo il # all’inizio della linea) e aggiungere un altro per chiedere CUPS di accettare connette da qualsiasi computer della rete. Assicurarsi che la sezione si presenta così:
# ascolto solo per connessioni da computer
locale # Listen localhost: 631
la porta 631
Poi più in basso nel file di configurazione fino a raggiungere la
# Limitare l’accesso al server
Ordine consentire, negare
Lasciare @
locale
A questo punto aggiungere il Consenti linealocal per le altre due sezioni di localizzazione –
Salvare il file e riavviare il server CUPS con: $ sudo /etc/init.d/cups restart
Ora dovreste essere in grado di accedere al pannello di amministrazione di CUPS tramite qualsiasi computer della rete locale, puntando il browser web per la tua Pi. Poi seguire la procedura dettagliata sulla pagina per aggiungere la stampante a CUPS.
Alcune distribuzioni Linux nave con una politica di firewall iptables restrittiva che non permette connessioni tramite le porte CUPS.
Anche se non lo fa Raspbian, assicurarsi che non vomitare errori inaspettati dando un pugno buchi nel firewall con:
$ sudo iptables -A INPUT -i wlan0 -p tcp -m tcp –dport 631 -j ACCEPT
$ sudo iptables -A INPUT -i wlan0 -p udp -m udp –dport 631
-j ACCEPT
Se si collega al Raspberry Pi via Ethernet invece di un adattatore wireless, modificare il comando e sostituire wlan0 eth0. Quando si è attraverso l’impostazione della stampante utilizzando il pannello di amministrazione di CUPS, è il momento di renderlo accessibile ad altre macchine della rete.
Mentre distribuzioni Linux non avranno problemi a rilevare la stampante di rete nuova, rendendoli visibili ai dispositivi Windows e Apple richiede un paio di passaggi aggiuntivi.
di accesso a livello di rete
Per Windows, installare il server Samba sulla Raspberry Pi con $ sudo apt-get install samba. Quindi aprire il file di configurazione (/etc/samba/smb.conf) nell’editor di testo nano e caccia per la sezione denominata [printers] e assicurarsi che contenga la riga:
guest ok = yes
Poi scorrere fino alla sezione [$ stampa] e modificare il suo percorso al seguente:
PATH = / usr / share / cups / drivers
Quindi scorrere fino alla sezione Impostazioni globali nella parte superiore del file di configurazione. Modificare il parametro del gruppo di lavoro all’interno di selezionare il nome del gruppo di lavoro, che di default è denominato GRUPPO DI LAVORO.
Abilitate anche il supporto vittorie aggiungendo la riga vince sostegno = yes
Ora salva il file e riavviare Samba con $ sudo / etc / init.d / samba restart.
Per poi dirigersi verso la macchina Windows e lanciare la procedura guidata Nuovo stampante e fare clic sull’opzione per installare una stampante di rete. Grazie alla configurazione di Samba modificato, la procedura guidata rileva ed elenca tutte le stampanti agganciati fino al Raspberry Pi.
Se si dispone di dispositivi Apple, è possibile abilitare il supporto per il sistema di AirPrint di Apple, che consente di stampare da iPad e iPhone. Per questo, è sufficiente installare il demone Avahi con sudo apt-get installare avahi-daemon sul Raspberry Pi, che poi rendere la stampante collegata visibile a dispositivi compatibili con AirPrint.
Oltre alla possibilità di utilizzare la nostra stampante di rete dalle applicazioni grafiche su tutte le piattaforme, si può anche usare per stampare dalla riga di comando. Inoltre, possiamo anche interagire con la stampante utilizzando il linguaggio di programmazione Python.
- Controlla la nostra raccolta di progetti Pi fantastico Lampone
Stampare da Python
Il server di stampa CUPS installa un gruppo di riga di comando strumenti (vedere Amministrazione CUPS avanti in questa guida) per interagire con il server e tutte le stampanti collegate.
È possibile inviare file alla stampante con il comando lp, come ad esempio: $ lp /docs/a_text_file.txt
If si dispone di più stampanti, è possibile stampare su una stampante specifica specificandone il nome, come ad esempio:
$ lp -d /docs/another-text.txt EPSON_LX-300
Quando si utilizzano i comandi con un file PDF o immagine, CUPS converte i file utilizzando i driver della stampante. È inoltre possibile utilizzare Python per generare il contenuto stampabile.
Questo è meglio farlo utilizzando la libreria PyCups, che fornisce Python associazioni per il server CUPS. Installare biblioteca:
$ sudo apt-get install python-cups
Quindi creare uno script Python con example.py:
coppe importazione
conn = cups.Connection ()
stampanti = conn.getPrinters ()
per stampante in stampanti:
stampa stampante, stampanti [Stampante] [“device-uri”]
Lo script recupera i dettagli su tutte le stampanti gestite da CUPS e stampa il proprio nome e l’indirizzo del dispositivo sullo schermo. Quando si esegue lo script, che produce un output simile al seguente:
EPSON_LX-300 usb: // EPSON / LX-300 + serial = L010209081
RICOH_Aficio_SP_100 usb: / / RICOH /
Aficio seriale = T382M977983
È possibile anche stampare i file dallo script Python usando la funzione PrintFile, specificandoli nel formato:?
$ PrintFile (nome della stampante, il nome del file da stampare, titolo di lavoro,
opzioni)
Aprire lo script example.py precedente e aggiungere le seguenti righe ad essa:
file = “/home/pi/testfile.txt”
nome_stampante = printers.keys () [0]
conn.printFile (printer_name, file ” Rapporto di progetto “, {})
La prima linea salva il nome del file che si desidera stampare all’interno di una variabile denominata file. La seconda riga recupera l’elenco delle stampanti e salva il primo nome, che è la stampante predefinita all’interno di una variabile denominata printer_name. La terza linea utilizza quindi le prime due variabili e stampa il file nel formato specificato.
Conversione da HTML a PDF
Un modo più interessante per convertire le pagine HTML in file PDF è quello di utilizzare il toolkit wkhtmltopdf, che trasmette il file PDF alla stampante all’interno di uno script Python.
Prima di installare il toolkit, prima installare i componenti necessari e un set di font per elaborare le pagine web:
$ sudo apt-get install Xvfb xfonts-100dpi xfonts-75dpi xfonts
scalabili xfonts-cirillico
Quindi installare lo strumento con
sudo apt-get install wkhtmltopdf
prima installare il wrapper Python con:
git $ sudo pip install + https: //github.com/qoda/pythonwkhtmltopdf.git
È possibile ora utilizzare quanto segue per convertire una pagina web in un file PDF:
da wkhtmltopdf import wkhtmltopdf
wkhtmltopdf = wkhtmltopdf (
url=’https://www.techradar.com’,
output_file=’/home/pi/docs/lxf.pdf’,
)
wkhtmltopdf.render()
When. eseguito, il codice precedente salva il TechRadar principale in un file PDF sotto casa / pi directory / / docs
Fare riferimento alla lista qui sotto per vedere come tutti i pezzi si incastrano – wkhtmltopdf converte una pagina in un file PDF e lo stampa fuori.
#! / usr / bin / env python
tazze di importazione da wkhtmltopdf importazione wkhtmltopdf
wkhtmltopdf = wkhtmltopdf (
url = ‘http: //www.techradar.com’,
output_file = ‘/ home / PI / techradar.pdf’,
)
wkhtmltopdf.render ()
conn = cups.Connection ()
stampanti = conn.getPrinters ()
per stampante in stampanti:
stampa stampante, stampanti [stampante] [“device-uri”] del file
= “/ home / PI / techradar.pdf”
nome_stampante = printers.keys ([0])
conn.printFile ( printer_name, file “PDF Stampa”, {})
Lo script prima converte la home page TechRadar in un PDF. Si collega poi a CUPS, stampa un elenco delle stampanti collegate e configurate sullo schermo, e utilizza la stampante predefinita per stampare il PDF. La biblioteca è PyCups chockfull di metodi ) che è possibile utilizzare per controllare tutti gli aspetti del server di stampa CUPS.
Amministrazione CUPS
In aggiunta alle stampanti aggiunta, l’interfaccia web di CUPS fornisce l’accesso a varie altre impostazioni utili. È possibile amministrare la maggior parte delle operazioni di stampa dalla scheda Amministrazione, che ospita le impostazioni in varie categorie.
Nella sezione Server, per esempio, si possono trovare le opzioni per modificare la configurazione del server, nonché vedere diversi tipi di accesso e di errore dei registri.
Uso della ‘Gestione stampanti “pulsante nella sezione della stampante, è possibile controllare le impostazioni per singole stampanti. Pagina di ogni stampante dispone di opzioni di laminati in due menu a discesa etichettati manutenzione e amministrazione. Da sotto il menu Manutenzione, è possibile stampare una pagina di prova, una pagina di prova, testine di stampa puliti e gestire i lavori di stampa.
Per personalizzare il comportamento della stampante, utilizzare il menu Amministrazione di modificare la sua impostazione predefinita opzioni, impostarla come stampante predefinita, limitano l’accesso degli utenti, modificare le impostazioni o eliminarlo dal server CUPS del tutto. Oltre alla scheda Amministrazione, ci sono un paio di altre schede importanti dobbiamo menzionare pure.
Per cominciare, è necessario passare alla scheda Classi per la gestione della classe di stampanti. Una classe è una raccolta di diverse stampanti. Quando si invia processo di stampa a una classe, CUPS assegna automaticamente il processo alla successiva stampante disponibile, invece di aspettare per una stampante specifica. Poi c’è la scheda Processi, che consente di visualizzare e gestire tutti i lavori che sono attualmente nella coda di stampa.
Come aggiungere una stampante
1. Il CUPS cruscotto
Il server di stampa CUPS include un web server integrato che alimenta il suo pannello di configurazione. E ‘in esecuzione sulla porta 631 sul Raspberry Pi, che nel nostro caso è 192.168.3.111:631. Accedere all’indirizzo da qualsiasi browser sulla rete.
Si deve accettare la sua certificato di sicurezza e quindi accedere all’interfaccia utilizzando le credenziali dell’utente che si è aggiunto al gruppo lpadmin, che nel nostro caso è l’utente pi greco.
2. Aggiungi stampante
Una volta effettuato il login, passare alla scheda Amministrazione e fare clic sul pulsante ‘Aggiungi stampante’, che porta in primo piano l’elenco delle stampanti. Alternare il pulsante di opzione accanto alla stampante e la testa al passaggio successivo. Qui si sta chiesto di aggiungere o modificare il nome, la descrizione e la posizione della stampante.
Assicurati di abilitare l’opzione ‘Share Questa stampante’ per rendere la stampante accessibile tutta la rete.
3. Selezionare un driver
Nel passaggio successivo, ti viene chiesto di scegliere un driver per la stampante selezionata. CUPS si mostra un elenco di driver in base alla marca di stampante. Le probabilità sono che molti dei piloti sono marcati ‘raccomandato’.
Tuttavia, scorrere l’elenco fino a trovare il driver per il modello esatto. In alternativa, se si dispone di un file PPD per il driver della stampante, fare clic sul pulsante ‘Sfoglia’ e creare una rotta.
4. Impostare le opzioni di default
Nel passaggio finale, CUPS permette di impostare alcune impostazioni di stampa generiche, come la dimensione della pagina e la fonte. Il numero e il tipo di opzioni variano da una stampante ad un altro, e potrebbero sviluppa su diverse sezioni.
Quando hai finito di impostare le preferenze, fare clic su ‘impostare le opzioni predefinite. Si sta quindi portato alla pagina di amministrazione principale per quella stampante. Utilizzare il menu a discesa di manutenzione per stampare una pagina di prova.
- è piaciuto questo articolo? Espandi la tua conoscenza di Linux, ottenere di più dal codice, e scoprire gli ultimi sviluppi open source all’interno di Linux Format. Leggi il nostro campionatore oggi e approfittare dell’offerta interna.
TechRadar – Tutte le ultime notizie di tecnologia