7246
Commento:
|
16826
Seguito stessa falsariga anche per stampante specifica, e sostituito "funziona" e messo il gerundio al posto del "noi"
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
## page was renamed from mary3/StampaDaMenùContestuale | |
Linea 5: | Linea 6: |
<<Indice>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=511838"; rilasci="16.04 14.04")>> |
<<Indice(depth=6)>> <<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=627033"; rilasci="16.04 14.04")>> |
Linea 10: | Linea 11: |
Seguire questa guida per avere '''"Stampa"''' nel menù contestuale dei '''file manager Nautilus, Caja e Nemo''', vale a dire che quando si seleziona uno o più file, si può fare click destro -> Script -> Stampa , cioè sarà possibile stampare i file selezionati. Potremo evitare che ciascun file debba essere aperto prima di stamparlo, cliccando su stampa uno alla volta. <<BR>> = "Stampa" nel menù contestuale = Controllare che il pacchetto [[https://help.ubuntu.com/lts/serverguide/cups.html|`cups`]] sia installato (in genere, eccetto che per Lubuntu è installato di default), se serve consultare [[https://wiki.ubuntu-it.org/Server/Stampa|la documentazione ufficiale]]. Sono disponibili alcuni script da inserire nella '''cartella degli script''' del proprio [[https://wiki.ubuntu-it.org/AmbienteGrafico/FileManager|file manager]],<<BR>> i primi 2 prevedono che si possa indicare quale stampante usare, utile in caso di presenza di varie stampanti. Gli altri usano la stampante predefinita, cioè quella selezionata da Configura Stampanti nel Centro di controllo: ''' 0. Stampa i file PDF, JPEG e PNG, TXT selezionati 0. Stampa file di Libreoffice selezionati 0. Stampa TUTTI i PDF contenuti in una cartella (con la stampante predefifinita) 0. Stampa i file selezionati (con la stampante predefifinita) 0. Stampa file di Libreoffice (con la stampante predefifinita) ''' Inoltre c'è anche l'utile '''Elimina coda di stampa ''' Per quanto riguarda la cartella degli script del file manager consultare le seguenti guide:<<BR>> [[https://wiki.ubuntu-it.org/AmbienteGrafico|Ambiente Grafico]]<<BR>> [[https://wiki.ubuntu-it.org/AmbienteGrafico/Gnome/ScriptNautilus|ScriptNautilus]] (sul 14.04 con Unity la cartella degli script è /home/utente/.local/share/nautilus/scripts)<<BR>> [[https://wiki.ubuntu-it.org/AmbienteGrafico/Mate/Caja#Raccolta_di_script_per_Caja|Mate: Script Caja]]<<BR>> [[https://forum.ubuntu-it.org/viewtopic.php?f=8&t=626437&p=5040532#p5040129|Cinnamon : Nemo]] ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/warning.png,,center)>> ||<style="padding:0.5em; border:none;"> La guida è stata testata con i succitati desktop. La modalità di aggiungere al menù contestuale voci che eseguano degli script, può variare in base all'ambiente grafico usato, consultare le guide relative al proprio desktop. || = Stampa i file PDF, JPEG e PNG, TXT selezionati = Lo script seguente va personalizzato con il nome della propria stampante e con il nome del proprio file manager: * Sostituire il nome stampante ( ad esempio Samsung-M2020-Series) con il proprio, che si può ottenere dando sul terminale{{{ lpstat -p -d}}} oppure vedere il file /etc/cups/printers.conf * Sostituire "$CAJA_SCRIPT_SELECTED_FILE_PATHS" con "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" o il nome del proprio file manager{{{ |
Nella seguente guida viene mostrato come ottenere la voce '''Stampa''' nel menù contestuale dei file manager '''Nautilus''', '''Caja''' e '''Nemo'''. Sarà quindi possibile selezionare uno o più file e tramite il clic destro selezionare dal menù contestuale '''''Script → Stampa''''' per avviare immediatamente la stampa.<<BR>> In questo modo è possibile evitare di aprire singolarmente ogni file per fare clic su '''Stampa'''. Per '''Thunar''' si rimanda alla [[https://wiki.ubuntu-it.org/AmbienteGrafico/Xfce/AzioniThunar|guida]] specifica. = Preparativi = Assicurarsi di aver [[AmministrazioneSistema/InstallareProgrammi|installato]] il pacchetto [[apt://cups|cups]] e [[apt://imagemagick|imagemagick]] (per il formato `.svg`). = Configurazione = Gli script sotto elencati dovranno essere creati manualmente in un'opportuna cartella a seconda del [[AmbienteGrafico/FileManager|file manager]] in utilizzo: <<Anchor(percorso)>> ||<tablestyle="width:40%;" #cccccc> '''File manager''' ||<#cccccc> '''Percorso file''' || ||<#f7f7f7> '''Nautilus''' || `~/.local/share/nautilus/scripts` || ||<#f7f7f7> '''Caja''' || `~/.config/caja/scripts` || ||<#f7f7f7> '''Nemo''' || `~/.local/share/nemo/scripts` || Nei seguenti paragrafi viene trattata nel dettaglio la configurazione degli script. ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''La modalità di aggiunta voci al menù contestuale può variare in base all'[[AmbienteGrafico|ambiente grafico]] e al [[AmbienteGrafico/FileManager|file manager]] in utilizzo.''|| ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Le opzioni generali per le stampanti (come l'impostazione della stampante predefinita) sono disponibili nel [[https://wiki.ubuntu-it.org/AmministrazioneSistema/CentroDiControllo|centro di controllo]].<<BR>>Vedere anche la pagina [[Hardware/StampantiScanner|Stampanti e scanner]]''|| = Stampa con stampante predefinita = Il seguente script è in grado di riconoscere il tipo di file selezionati, in modo tale che se per errore venisse selezionato un file non stampabile (come ad es. `.mp3`), allora viene restituito un messaggio di errore. In caso contrario eseguirà i comandi appropriati per la stampa tramite stampante predefinita. Casi di utilizzo: * selezionando uno o più file di vari tipi contemporaneamente (PDF, testo, immagini, formati di !LibreOffice) click destro -> Script-> Stampa * dando click destro nello spazio vuoto di una cartella aperta, senza selezionare nessun file, stampa tutti quelli stampabili contenuti nella cartella * lo stesso succede selezionando una cartella chiusa -> click destro -> Script-> Stampa 0. A seconda del file manager in utilizzo, creare nella [[#percorso|cartella opportuna]] lo script con il nome:{{{ Stampa }}} 0. Rendere [[Programmazione/Script#exec|eseguibile]] il file appena creato. 0. Supponendo di utilizzare come file manager: '''Nautilus''', inserire le seguenti stringhe nello script:{{{ #!/bin/bash # questo script deve stare nella cartella ~/.local/share/<FILEMANAGER>/scripts # Tutti i file eseguibili in questa cartella appariranno nel menù «Script». # # Print: (according to the selection) # all selected files # all files in the only selected folder # all files in current folder (no selection) IFS=$'\n' # don't use <space>,<tab> to split words as part of expansion # TODO eliminate the need to change $IFS PRINTER=$(lpstat -d | grep -Eo "\S+$") folder="$PWD" printable="PDF|PNG|JPEG|SVG|OpenDocument|UTF-8|ASCII|Microsoft|Windows" # FIXME # .doc & .xls created by Excel/Word are matched only if edited by LibreOffice # in case of no selection: print all files in current folder if [ $# -eq 0 ]; then selected=( $(ls "$folder") ) # if only a folder is selected, it's our target: print all its files elif [[ $# == 1 && -d "$1" ]]; then folder="${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS%$'\n'}" # strip trailing newline selected=( $(ls "$folder") ) # else: print all selected files else selected=($@) fi for f in ${selected[@]}; do fileType=$(file -b "$folder/$f" | grep -Eo "$printable") case $fileType in OpenDocument|Microsoft|Windows ) libreoffice -pt $PRINTER "$folder/$f" ;; PDF|PNG|JPEG|UTF-8|ASCII ) lpr -P $PRINTER "$folder/$f" ;; SVG ) # depends on imagemagick convert "$folder/$f" png:- | lpr -P $PRINTER ;; * ) notify-send -i error "Non stampato '$f'" ;; esac [ $? -eq 0 ] || notify-send -i error "ERRORE stampando '$f'" done exit 0 }}}Avere cura di sostituire la stringa '''NAUTILUS''' con il rispettivo nome del file manager in utilizzo (ad es. '''CAJA'''). * Salvare e chiudere il file. = Impostare stampante predefinita = Per impostare la stampante predefinita, oltre che dalle impostazione Stampanti in Centro di controllo, è possibile usare il seguente script in modo da poterlo avere anche questo nel menù contestuale {{{ #!/bin/bash system-config-printer &}}} == Altri Script per stampante predefinita == I seguenti non sono completi come come lo script "Stampa", ma stampano un solo tipo di file (PDF-testo-immagini oppure formati di !LibreOffice) possono essere utilizzati, se lo si ritiene opportuno, a seconda delle proprie esigenze (cliccare sul link, sono elencati a fondo pagina). * [[#tutti_pdf|Stampa TUTTI i PDF contenuti nella cartella]] * [[#file_selezionati_predefinita|Stampa i file selezionati]] * [[#file_LibreOffice_predefinita|Stampa file di Libreoffice]] = Script con stampante specifica = Il seguente script è in grado di riconoscere il tipo di file selezionati, in modo tale che se per errore venisse selezionato un file non stampabile (come ad es. `.mp3`), allora viene restituito un messaggio di errore. In caso contrario eseguirà i comandi appropriati per la stampa tramite la stampante indicata dello script. Sarà dunque possibile creare uno script per ogni stampante (esempio: Stampa con Samsung, Stampa con HP...). Casi di utilizzo: * selezionando uno o più file di vari tipi contemporaneamente (PDF, testo, immagini, formati di !LibreOffice) click destro -> Script-> Stampa * dando click destro nello spazio vuoto di una cartella aperta, senza selezionare nessun file, stampa tutti quelli stampabili contenuti nella cartella * lo stesso succede selezionando una cartella chiusa -> click destro -> Script-> Stampa 0. Individuare il nome della stampante in utilizzo digitando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ lpstat -p -d }}} 0. A seconda del file manager in utilizzo, creare nella [[#percorso|cartella opportuna]] lo script con il nome:{{{ Stampa con nome-stampante }}} 0. Rendere [[Programmazione/Script#exec|eseguibile]] il file appena creato. 0. Supponendo di utilizzare: * come file manager: '''Nautilus''' * come stampante: '''Samsung-M2020-Series''' inserire le seguenti stringhe nello script::{{{ #!/bin/bash # questo script deve stare nella cartella ~/.local/share/<FILEMANAGER>/scripts # Tutti i file eseguibili in questa cartella appariranno nel menù «Script». # # Print: (according to the selection) # all selected files # all files in the only selected folder # all files in current folder (no selection) IFS=$'\n' # don't use <space>,<tab> to split words as part of expansion # TODO eliminate the need to change $IFS PRINTER=Samsung-M2020-Series$ folder="$PWD" printable="PDF|PNG|JPEG|SVG|OpenDocument|UTF-8|ASCII|Microsoft|Windows" # FIXME # .doc & .xls created by Excel/Word are matched only if edited by LibreOffice # in case of no selection: print all files in current folder if [ $# -eq 0 ]; then selected=( $(ls "$folder") ) # if only a folder is selected, it's our target: print all its files elif [[ $# == 1 && -d "$1" ]]; then folder="${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS%$'\n'}" # strip trailing newline selected=( $(ls "$folder") ) # else: print all selected files else selected=($@) fi for f in ${selected[@]}; do fileType=$(file -b "$folder/$f" | grep -Eo "$printable") case $fileType in OpenDocument|Microsoft|Windows ) libreoffice -pt Samsung-M2020-Series "$folder/$f" ;; PDF|PNG|JPEG|UTF-8|ASCII ) lpr -P Samsung-M2020-Series "$folder/$f" ;; SVG ) # depends on imagemagick convert "$folder/$f" png:- | lpr -P Samsung-M2020-Series ;; * ) notify-send -i error "Non stampato '$f'" ;; esac [ $? -eq 0 ] || notify-send -i error "ERRORE stampando '$f'" done }}} Avere cura di sostituire la stringa '''NAUTILUS''' con il rispettivo nome del file manager in utilizzo (ad es. '''CAJA''') e '''Samsung-M2020-Series''' con il nome della propria stampante. * Salvare e chiudere il file. == Altri script con stampante specifica == I seguenti non sono completi come come il precedente "Stampa con ...", ma stampano un solo tipo di file (PDF-testo-immagini oppure formati di !LibreOffice) possono essere utilizzati a seconda delle proprie esigenze (cliccare sul link, sono elencati a fondo pagina). * [[#file_selezionati|Stampa i file PDF, JPEG, PNG, TXT selezionati]] * [[#file_LibreOffice|Stampa file di Libreoffice selezionati]] <<BR>> -------- -------- <<BR>> = Altri script = <<Anchor(tutti_pdf)>> == Stampa tutti i PDF contenuti nella cartella (predefinita) == Il seguente script stamperà tutti i file `.pdf` presenti in una cartella, indipendentemente dal numero di file selezionati con il mouse. 0. A seconda del file manager in utilizzo, creare nella [[#percorso|cartella opportuna]] lo script con il nome:{{{ Stampa tutti i PDF contenuti nella cartella }}} 0. Rendere [[Programmazione/Script#exec|eseguibile]] il file appena creato. 0. Inserire le seguenti stringhe nello script:{{{ #! #!/bin/bash for FILE in *.pdf *.PDF ; do lpr "$FILE" ; done }}} * Salvare e chiudere il file. <<Anchor(file_selezionati_predefinita)>> == Stampa file selezionati (predefinita) == 0. A seconda del file manager in utilizzo, creare nella [[#percorso|cartella opportuna]] lo script con il nome:{{{ Stampa file selezionati }}} 0. Rendere [[Programmazione/Script#exec|eseguibile]] il file appena creato. 0. Supponendo di utilizzare come file manager: '''Nautilus''', inserire le seguenti stringhe nello script:{{{ #! #!/bin/bash echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read file do lpr -P "$file" done exit 0 }}}Avere cura di sostituire la stringa '''$NAUTILUS''' con il rispettivo nome del file manager in utilizzo (ad es. '''$CAJA'''). * Salvare e chiudere il file. <<Anchor(file_LibreOffice_predefinita)>> == Stampa file LibreOffice selezionati (predefinita) == 0. A seconda del file manager in utilizzo, creare nella [[#percorso|cartella opportuna]] lo script con il nome:{{{ Stampa file LibreOffice selezionati }}} 0. Rendere [[Programmazione/Script#exec|eseguibile]] il file appena creato. 0. Supponendo di utilizzare come file manager: '''Nautilus''', inserire le seguenti stringhe nello script:{{{ #! #!/bin/bash echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read file do /usr/lib/libreoffice/program/swriter -p --invisible "$file" done exit 0 }}}Avere cura di sostituire la stringa '''$NAUTILUS''' con il rispettivo nome del file manager in utilizzo (ad es. '''$CAJA'''). * Salvare e chiudere il file <<Anchor(file_selezionati)>> == Stampa i file PDF, JPEG, PNG, TXT selezionati (specifica) == <<Anchor(individua_stampante)>> 0. Individuare il nome della stampante in utilizzo digitando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ lpstat -p -d }}} 0. A seconda del file manager in utilizzo, creare nella [[#percorso|cartella opportuna]] lo script con il nome:{{{ Stampa i file PDF, JPEG e PNG, TXT selezionati }}} 0. Rendere [[Programmazione/Script#exec|eseguibile]] il file appena creato. 0. Supponendo di utilizzare: * come file manager: '''Nautilus''' * come stampante: '''Samsung-M2020-Series''' inserire le seguenti stringhe nello script:{{{ |
Linea 56: | Linea 305: |
echo "$CAJA_SCRIPT_SELECTED_FILE_PATHS" | while read file | echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read file |
Linea 60: | Linea 309: |
exit 0}}} * Aprire un editor di testo e copiarci lo script opportunamente personalizzato * Dare i permessi di esecuzione e metterlo nella cartella degli script (click destro->proprietà->permessi). = Stampa file di LibreOffice selezionati = Funziona per i file odt e ods di LibreOffice, inoltre stampa tutti i file .doc .docx .pdf .jpeg .png .txt e li stampa '''come si visualizzano su anteprima di stampa'''.<<BR>> È possibile selezionare più file anche di tipo differente (es un ODT e un ODS).<<BR>> * Salvarlo come "Stampa !LibreOffice selezionati" * Dare i permessi di esecuzione e metterlo nella cartella degli script.<<BR>> Anche qui il nome della stampante e del file manager vanno cambiati a seconda delle proprie esigenze: {{{ #!/bin/bash printer=Samsung-M2020-Series echo "$CAJA_SCRIPT_SELECTED_FILE_PATHS" | while read file do /usr/lib/libreoffice/program/swriter -p "$printer" "$file" done exit 0}}} Lo script su citato utilizza !LibreoOffice.<<BR>> Per chi usa !OpenOffice: {{{ #!/bin/bash printer=Samsung-M2020-Series echo "$CAJA_SCRIPT_SELECTED_FILE_PATHS" | while read file do openoffice4 -writer -p -invisible "$printer" "$file" done exit 0}}} NB: su [[https://wiki.ubuntu-it.org/Ufficio/ApacheOpenOffice|OpenOffice]] o [[https://wiki.ubuntu-it.org/Ufficio/LibreOffice|LibreOffice]] deve essere installato pdf-import.<<BR>> Inoltre dando su teminale `libreoffice --help` oppure `openoffice4 -h` si hanno tutte le opzioni dei comandi, ad esempio l'opzione `--pt` che serve per usare una stampante specifica.<<BR>> = Stampante predefinita = '''Se non si vuole indicare il nome della stampante''', in modo da stampare sempre sulla stampante di default predefinita (nel caso siano collegate più stampanti sarà sufficiente cambiare la stampante predefinita), usare questi: = Stampa tutti i PDF contenuti in una cartella = Questo script i PDF li stampa proprio '''tutti''', anche se ne seleziona uno solo, quindi mettere tutti i PDF che dobbiamo stampare in una cartella,<<BR>> click destro-> Script-> Stampa tutti i PDF nella cartella. <<BR>> La stampante usata da questo script è quella predefinita da Gestione Stampanti. * Aprire un editor di testo e copiarci {{{ for FILE in *.pdf *.PDF ; do lpr "$FILE" ; done}}} * Salvare con nome "Stampa TUTTI i PDF nella cartella" e dare i permessi di esecuzione (click destro->proprietà->permessi). * Copiare il file nella cartella degli script del proprio gestore file. = Stampa file selezionati con stampante predefinita = {{{ #! #!/bin/bash echo "$CAJA_SCRIPT_SELECTED_FILE_PATHS" | while read file |
exit 0 }}}Avere cura di sostituire '''Samsung-M2020-Series''' con il nome della stampante individuato al [[#individua_stampante|punto 1]] e la stringa '''$NAUTILUS''' con il rispettivo nome del file manager in utilizzo (ad es. '''$CAJA'''). * Salvare e chiudere il file. <<Anchor(file_LibreOffice)>> == Stampa file di LibreOffice selezionati (specifica) == Il seguente script è in grado di funzionare oltre che con i classici file utilizzati da '''!LibreOffice''' (`.odt`, `ods`, `.doc`.. ), anche con file `.jpeg` e `.png`. <<BR>> È possibile selezionare contemporaneamente più file di tipo differente (es. un `.odt` e un `ods`). <<Anchor(individua_stampante2)>> 0. Individuare il nome della stampante in utilizzo digitando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ lpstat -p -d }}} 0. A seconda del file manager in utilizzo, creare nella [[#percorso|cartella opportuna]] lo script con il nome:{{{ Stampa file di LibreOffice selezionati }}} 0. Rendere [[Programmazione/Script#exec|eseguibile]] il file appena creato. 0. Supponendo di utilizzare: * come file manager: '''Nautilus''' * come stampante: '''Samsung-M2020-Series''' inserire le seguenti stringhe nello script:{{{ #! #!/bin/bash printer=Samsung-M2020-Series echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read file |
Linea 121: | Linea 337: |
lpr -P "$file" | /usr/lib/libreoffice/program/swriter -p "$printer" "$file" |
Linea 123: | Linea 339: |
exit 0}}} <<BR>> = Stampa file LibreOffice selezionati con stampante predefinita = {{{ #! #!/bin/bash echo "$CAJA_SCRIPT_SELECTED_FILE_PATHS" | while read file do /usr/lib/libreoffice/program/swriter -p --invisible "$file" done exit 0 0}}} Sostituire "$CAJA_SCRIPT_SELECTED_FILE_PATHS" con "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" o il nome del proprio file manager |
exit 0 }}}Avere cura di sostituire '''Samsung-M2020-Series''' con il nome della stampante individuato al [[#individua_stampante2|punto 1]] e la stringa '''$NAUTILUS''' con il rispettivo nome del file manager in utilizzo (ad es. '''$CAJA'''). ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Grandi/info.png,,center)>> ||<style="padding:0.5em; border:none;">Digitando nel teminale il comando `libreoffice --help` oppure `openoffice4 -h` si ha a disposizione l'elenco delle opzioni dei comandi, come ad es. l'opzione `--pt` per utilizzare una stampante specifica oppure `-p` per la stampante predefinita.|| * Salvare e chiudere il file. === Per chi utilizza OpenOffice === Nel caso sia utilizzato '''!OpenOffice''' al posto di '''!LibreOffice''': 0. Nello script occorre sostituire la stringa:{{{ /usr/lib/libreoffice/program/swriter -p "$printer" "$file" }}}con:{{{ openoffice4 -writer -p -invisible "$printer" "$file" }}}e quindi salvare e chiudere il file. |
Linea 143: | Linea 357: |
Attraverso quest'ulteriore script si può eliminare la coda di stampa. Si può inserire nella cartella degli script oppure creare un lanciatore sulla scrivania o sul pannello: {{{ #!/bin/bash cancel -a exit 0}}} |
Questo ulteriore script è in grado di eliminare le code di stampa. Oltre che essere inserito nella cartella degli script può essere creato un [[AmbienteGrafico/IconeDiAvvio|lanciatore]] sulla scrivania o sul pannello. 0. A seconda del file manager in utilizzo, creare nella [[#percorso|cartella opportuna]] lo script con il nome:{{{ Eliminare coda di stampa }}} 0. Rendere [[Programmazione/Script#exec|eseguibile]] il file appena creato. 0. Inserire le seguenti stringhe nello script:{{{ #! #!/bin/bash cancel -a exit 0 }}} * Salvare e chiudere il file. |
Linea 150: | Linea 373: |
Per aprire Gestione Stampanti fare clic sullo strumento stampanti nel [[https://wiki.ubuntu-it.org/AmministrazioneSistema/CentroDiControllo|centro di controllo]]. * [[https://wiki.ubuntu-it.org/Hardware/StampantiScanner|Stampanti e scanner]] * [[https://wiki.ubuntu-it.org/Hardware/StampantiScanner/StampanteGnome|Installazione di una stampante su Gnome]] * [[https://www.cups.org/index.html|CUPS.org]] ## da questo punto in poi non modificare! ---- CategoryHomepage |
* [[https://wiki.ubuntu-it.org/Hardware/StampantiScanner|Stampanti e scanner]] * [[https://wiki.ubuntu-it.org/Hardware/StampantiScanner/StampanteGnome|Installazione di una stampante su Gnome]] * [[https://www.cups.org/index.html|CUPS.org]] ------ CategoryProduttivita CategoryGrafica |
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Nella seguente guida viene mostrato come ottenere la voce Stampa nel menù contestuale dei file manager Nautilus, Caja e Nemo. Sarà quindi possibile selezionare uno o più file e tramite il clic destro selezionare dal menù contestuale Script → Stampa per avviare immediatamente la stampa.
In questo modo è possibile evitare di aprire singolarmente ogni file per fare clic su Stampa.
Per Thunar si rimanda alla guida specifica.
Preparativi
Assicurarsi di aver installato il pacchetto cups e imagemagick (per il formato .svg).
Configurazione
Gli script sotto elencati dovranno essere creati manualmente in un'opportuna cartella a seconda del file manager in utilizzo:
File manager |
Percorso file |
Nautilus |
~/.local/share/nautilus/scripts |
Caja |
~/.config/caja/scripts |
Nemo |
~/.local/share/nemo/scripts |
Nei seguenti paragrafi viene trattata nel dettaglio la configurazione degli script.
La modalità di aggiunta voci al menù contestuale può variare in base all'ambiente grafico e al file manager in utilizzo. |
Le opzioni generali per le stampanti (come l'impostazione della stampante predefinita) sono disponibili nel centro di controllo. |
Stampa con stampante predefinita
Il seguente script è in grado di riconoscere il tipo di file selezionati, in modo tale che se per errore venisse selezionato un file non stampabile (come ad es. .mp3), allora viene restituito un messaggio di errore. In caso contrario eseguirà i comandi appropriati per la stampa tramite stampante predefinita.
Casi di utilizzo:
selezionando uno o più file di vari tipi contemporaneamente (PDF, testo, immagini, formati di LibreOffice) click destro -> Script-> Stampa
- dando click destro nello spazio vuoto di una cartella aperta, senza selezionare nessun file, stampa tutti quelli stampabili contenuti nella cartella
lo stesso succede selezionando una cartella chiusa -> click destro -> Script-> Stampa
A seconda del file manager in utilizzo, creare nella cartella opportuna lo script con il nome:
Stampa
Rendere eseguibile il file appena creato.
Supponendo di utilizzare come file manager: Nautilus, inserire le seguenti stringhe nello script:
#!/bin/bash # questo script deve stare nella cartella ~/.local/share/<FILEMANAGER>/scripts # Tutti i file eseguibili in questa cartella appariranno nel menù «Script». # # Print: (according to the selection) # all selected files # all files in the only selected folder # all files in current folder (no selection) IFS=$'\n' # don't use <space>,<tab> to split words as part of expansion # TODO eliminate the need to change $IFS PRINTER=$(lpstat -d | grep -Eo "\S+$") folder="$PWD" printable="PDF|PNG|JPEG|SVG|OpenDocument|UTF-8|ASCII|Microsoft|Windows" # FIXME # .doc & .xls created by Excel/Word are matched only if edited by LibreOffice # in case of no selection: print all files in current folder if [ $# -eq 0 ]; then selected=( $(ls "$folder") ) # if only a folder is selected, it's our target: print all its files elif [[ $# == 1 && -d "$1" ]]; then folder="${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS%$'\n'}" # strip trailing newline selected=( $(ls "$folder") ) # else: print all selected files else selected=($@) fi for f in ${selected[@]}; do fileType=$(file -b "$folder/$f" | grep -Eo "$printable") case $fileType in OpenDocument|Microsoft|Windows ) libreoffice -pt $PRINTER "$folder/$f" ;; PDF|PNG|JPEG|UTF-8|ASCII ) lpr -P $PRINTER "$folder/$f" ;; SVG ) # depends on imagemagick convert "$folder/$f" png:- | lpr -P $PRINTER ;; * ) notify-send -i error "Non stampato '$f'" ;; esac [ $? -eq 0 ] || notify-send -i error "ERRORE stampando '$f'" done exit 0
Avere cura di sostituire la stringa NAUTILUS con il rispettivo nome del file manager in utilizzo (ad es. CAJA).
- Salvare e chiudere il file.
Impostare stampante predefinita
Per impostare la stampante predefinita, oltre che dalle impostazione Stampanti in Centro di controllo, è possibile usare il seguente script in modo da poterlo avere anche questo nel menù contestuale
#!/bin/bash system-config-printer &
Altri Script per stampante predefinita
I seguenti non sono completi come come lo script "Stampa", ma stampano un solo tipo di file (PDF-testo-immagini oppure formati di LibreOffice) possono essere utilizzati, se lo si ritiene opportuno, a seconda delle proprie esigenze (cliccare sul link, sono elencati a fondo pagina).
Script con stampante specifica
Il seguente script è in grado di riconoscere il tipo di file selezionati, in modo tale che se per errore venisse selezionato un file non stampabile (come ad es. .mp3), allora viene restituito un messaggio di errore. In caso contrario eseguirà i comandi appropriati per la stampa tramite la stampante indicata dello script. Sarà dunque possibile creare uno script per ogni stampante (esempio: Stampa con Samsung, Stampa con HP...).
Casi di utilizzo:
selezionando uno o più file di vari tipi contemporaneamente (PDF, testo, immagini, formati di LibreOffice) click destro -> Script-> Stampa
- dando click destro nello spazio vuoto di una cartella aperta, senza selezionare nessun file, stampa tutti quelli stampabili contenuti nella cartella
lo stesso succede selezionando una cartella chiusa -> click destro -> Script-> Stampa
Individuare il nome della stampante in utilizzo digitando nel terminale:
lpstat -p -d
A seconda del file manager in utilizzo, creare nella cartella opportuna lo script con il nome:
Stampa con nome-stampante
Rendere eseguibile il file appena creato.
- Supponendo di utilizzare:
come file manager: Nautilus
come stampante: Samsung-M2020-Series
inserire le seguenti stringhe nello script::
#!/bin/bash # questo script deve stare nella cartella ~/.local/share/<FILEMANAGER>/scripts # Tutti i file eseguibili in questa cartella appariranno nel menù «Script». # # Print: (according to the selection) # all selected files # all files in the only selected folder # all files in current folder (no selection) IFS=$'\n' # don't use <space>,<tab> to split words as part of expansion # TODO eliminate the need to change $IFS PRINTER=Samsung-M2020-Series$ folder="$PWD" printable="PDF|PNG|JPEG|SVG|OpenDocument|UTF-8|ASCII|Microsoft|Windows" # FIXME # .doc & .xls created by Excel/Word are matched only if edited by LibreOffice # in case of no selection: print all files in current folder if [ $# -eq 0 ]; then selected=( $(ls "$folder") ) # if only a folder is selected, it's our target: print all its files elif [[ $# == 1 && -d "$1" ]]; then folder="${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS%$'\n'}" # strip trailing newline selected=( $(ls "$folder") ) # else: print all selected files else selected=($@) fi for f in ${selected[@]}; do fileType=$(file -b "$folder/$f" | grep -Eo "$printable") case $fileType in OpenDocument|Microsoft|Windows ) libreoffice -pt Samsung-M2020-Series "$folder/$f" ;; PDF|PNG|JPEG|UTF-8|ASCII ) lpr -P Samsung-M2020-Series "$folder/$f" ;; SVG ) # depends on imagemagick convert "$folder/$f" png:- | lpr -P Samsung-M2020-Series ;; * ) notify-send -i error "Non stampato '$f'" ;; esac [ $? -eq 0 ] || notify-send -i error "ERRORE stampando '$f'" done
Avere cura di sostituire la stringa NAUTILUS con il rispettivo nome del file manager in utilizzo (ad es. CAJA) e Samsung-M2020-Series con il nome della propria stampante.
- Salvare e chiudere il file.
Altri script con stampante specifica
I seguenti non sono completi come come il precedente "Stampa con ...", ma stampano un solo tipo di file (PDF-testo-immagini oppure formati di LibreOffice) possono essere utilizzati a seconda delle proprie esigenze (cliccare sul link, sono elencati a fondo pagina).
Altri script
Stampa tutti i PDF contenuti nella cartella (predefinita)
Il seguente script stamperà tutti i file .pdf presenti in una cartella, indipendentemente dal numero di file selezionati con il mouse.
A seconda del file manager in utilizzo, creare nella cartella opportuna lo script con il nome:
Stampa tutti i PDF contenuti nella cartella
Rendere eseguibile il file appena creato.
Inserire le seguenti stringhe nello script:
#!/bin/bash for FILE in *.pdf *.PDF ; do lpr "$FILE" ; done
- Salvare e chiudere il file.
Stampa file selezionati (predefinita)
A seconda del file manager in utilizzo, creare nella cartella opportuna lo script con il nome:
Stampa file selezionati
Rendere eseguibile il file appena creato.
Supponendo di utilizzare come file manager: Nautilus, inserire le seguenti stringhe nello script:
#!/bin/bash echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read file do lpr -P "$file" done exit 0
Avere cura di sostituire la stringa $NAUTILUS con il rispettivo nome del file manager in utilizzo (ad es. $CAJA).
- Salvare e chiudere il file.
Stampa file LibreOffice selezionati (predefinita)
A seconda del file manager in utilizzo, creare nella cartella opportuna lo script con il nome:
Stampa file LibreOffice selezionati
Rendere eseguibile il file appena creato.
Supponendo di utilizzare come file manager: Nautilus, inserire le seguenti stringhe nello script:
#!/bin/bash echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read file do /usr/lib/libreoffice/program/swriter -p --invisible "$file" done exit 0
Avere cura di sostituire la stringa $NAUTILUS con il rispettivo nome del file manager in utilizzo (ad es. $CAJA).
- Salvare e chiudere il file
Stampa i file PDF, JPEG, PNG, TXT selezionati (specifica)
Individuare il nome della stampante in utilizzo digitando nel terminale:
lpstat -p -d
A seconda del file manager in utilizzo, creare nella cartella opportuna lo script con il nome:
Stampa i file PDF, JPEG e PNG, TXT selezionati
Rendere eseguibile il file appena creato.
- Supponendo di utilizzare:
come file manager: Nautilus
come stampante: Samsung-M2020-Series
inserire le seguenti stringhe nello script:
#!/bin/bash printer=Samsung-M2020-Series echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read file do lpr -P "$printer" "$file" done exit 0
Avere cura di sostituire Samsung-M2020-Series con il nome della stampante individuato al punto 1 e la stringa $NAUTILUS con il rispettivo nome del file manager in utilizzo (ad es. $CAJA).
- Salvare e chiudere il file.
Stampa file di LibreOffice selezionati (specifica)
Il seguente script è in grado di funzionare oltre che con i classici file utilizzati da LibreOffice (.odt, ods, .doc.. ), anche con file .jpeg e .png.
È possibile selezionare contemporaneamente più file di tipo differente (es. un .odt e un ods).
Individuare il nome della stampante in utilizzo digitando nel terminale:
lpstat -p -d
A seconda del file manager in utilizzo, creare nella cartella opportuna lo script con il nome:
Stampa file di LibreOffice selezionati
Rendere eseguibile il file appena creato.
- Supponendo di utilizzare:
come file manager: Nautilus
come stampante: Samsung-M2020-Series
inserire le seguenti stringhe nello script:
#!/bin/bash printer=Samsung-M2020-Series echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read file do /usr/lib/libreoffice/program/swriter -p "$printer" "$file" done exit 0
Avere cura di sostituire Samsung-M2020-Series con il nome della stampante individuato al punto 1 e la stringa $NAUTILUS con il rispettivo nome del file manager in utilizzo (ad es. $CAJA).
- Salvare e chiudere il file.
Per chi utilizza OpenOffice
Nel caso sia utilizzato OpenOffice al posto di LibreOffice:
Nello script occorre sostituire la stringa:
/usr/lib/libreoffice/program/swriter -p "$printer" "$file"
con:
openoffice4 -writer -p -invisible "$printer" "$file"
e quindi salvare e chiudere il file.
Eliminare coda di stampa
Questo ulteriore script è in grado di eliminare le code di stampa. Oltre che essere inserito nella cartella degli script può essere creato un lanciatore sulla scrivania o sul pannello.
A seconda del file manager in utilizzo, creare nella cartella opportuna lo script con il nome:
Eliminare coda di stampa
Rendere eseguibile il file appena creato.
Inserire le seguenti stringhe nello script:
#!/bin/bash cancel -a exit 0
- Salvare e chiudere il file.
Ulteriori risorse