## page was renamed from mary3/StampaDaMenùContestuale
## page was renamed from GuidaWiki/DocumentazioneModello
#format wiki
#LANGUAGE it
<
>
<>
<>
= Introduzione =
Nella seguente guida viene mostrato come ottenere voci relative alle funzionalità di stampa nel menù contestuale dei file manager '''Nautilus''', '''Caja''' e '''Nemo''' attivabile tramite click destro.<
>
Questo è reso possibile dalla creazione di opportuni script attraverso i quali saranno possibili azioni come ad esempio, selezionare uno o più file e tramite il click destro avviarne immediatamente la stampa evitando di aprire singolarmente ogni file.
{{{#!wiki note
Per '''Thunar''' si rimanda alla [[AmbienteGrafico/Xfce/AzioniThunar|guida]] specifica.<
> Per '''Dolphin''' si rimanda alla [[AmbienteGrafico/Kde/DolphinMenuStampa|guida]] specifica.<
> Per '''PCManFM/PcManFM-Qt''' si rimanda alla [[AmbienteGrafico/FileManager/PCmanFmMenuStampa|guida]] specifica.
}}}
= Preparativi =
[[AmministrazioneSistema/InstallareProgrammi|Installare]] i pacchetti [[apt://cups|cups]], [[apt://printer-driver-cups-pdf|printer-driver-cups-pdf]] e [[apt://imagemagick|imagemagick]] (per il formato `.svg`).
= Configurazione =
La modalità di aggiunta voci al menù contestuale può variare in base all'[[AmbienteGrafico|ambiente grafico]] e al [[AmbienteGrafico/FileManager|file manager]] in utilizzo.<
> Gli script dovranno essere creati manualmente in un'opportuna cartella:
<>
|| '''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.
{{{#!wiki note
Le opzioni generali per le stampanti (come l'impostazione della stampante predefinita) sono disponibili nel [[AmministrazioneSistema/CentroDiControllo|centro di controllo]].<
>Vedere anche la pagina [[Hardware/StampantiScanner|Stampanti e scanner]].}}}
= Script di stampa =
Lo script verrà avviato accedendo tramite clic destro al menù contestuale alla voce '''''Script → Stampa'''''. Per fare ciò è possibile agire in diversi modi.
* '''Selezionando uno o più file''' contemporaneamente di vario tipo (PDF, testo, immagini, formati di !LibreOffice).
* '''Clic destro nello spazio vuoto''' in una cartella aperta, senza selezionare nessun file. Verranno così stampati tutti i file stampabili all'interno della cartella.
* '''Selezionando una cartella chiusa'''. Come nel caso precedente verranno stampati tutti i file stampabili interni alla cartella.
{{{#!wiki note
Lo script è in grado di riconoscere il tipo di file selezionato. Se per errore viene selezionato un file non stampabile (ad esempio `.mp3`), allora verrà restituito un messaggio di errore. In caso contrario saranno eseguiti i comandi appropriati per la stampa.}}}
== Script per stampante predefinita ==
0. Creare nella [[#Configurazione|cartella opportuna]] lo script con il nome:{{{
Stampa
}}}
0. Rendere [[Programmazione/Script#exec|eseguibile]] il file appena creato.
0. Inserire le seguenti stringhe nello script:{{{
#!/bin/bash
# questo script deve stare nella cartella ~/.local/share//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 , 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
}}}
{{{#!wiki important
Avere cura di sostituire la stringa '''NAUTILUS''' con il rispettivo nome del file manager in utilizzo (ad es. '''CAJA''').}}}
* Salvare e chiudere il file.
=== Altri Script per stampante predefinita ===
Ai seguenti link sono presenti script per stampante predefinita con funzionalità parziali:
* [[AmbienteGrafico/FileManager/ScriptStampa/EsempiAlternativi#tutti_pdf|Stampa TUTTI i PDF contenuti nella cartella]]
* [[AmbienteGrafico/FileManager/ScriptStampa/EsempiAlternativi#file_selezionati_predefinita|Stampa i file selezionati]]
* [[AmbienteGrafico/FileManager/ScriptStampa/EsempiAlternativi#file_LibreOffice_predefinita|Stampa file di Libreoffice]]
== Script - stampa con stampante specifica ==
La seguente procedura permette di modificare lo script precedente in modo tale che sia possibile specificare una stampante differente da quella predefinita.
0. Individuare il nome della stampante in utilizzo digitando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
lpstat -p -d
}}}
0. Creare nella [[#Configurazione|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//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 , 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
}}}
{{{#!wiki important
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 per stampante specifica ===
Ai seguenti link sono presenti script per stampante specifica con funzionalità parziali:
* [[AmbienteGrafico/FileManager/ScriptStampa/EsempiAlternativi#file_selezionati|Stampa i file PDF, JPEG, PNG, TXT selezionati]]
* [[AmbienteGrafico/FileManager/ScriptStampa/EsempiAlternativi#file_LibreOffice|Stampa file di Libreoffice selezionati]]
* [[AmbienteGrafico/FileManager/ScriptStampa/EsempiAlternativi#openoffice|Esempio con OpenOffice]]
= Script - accesso impostazioni stampante =
Per comodità può essere utile un accesso rapido alle impostazioni delle stampanti del [[AmministrazioneSistema/CentroDiControllo|Centro di controllo]] tramite clic destro, ad esempio per impostare rapidamente la stampante predefinita.
0. Creare nella [[#Configurazione|cartella opportuna]] lo script con il nome:{{{
Impostazioni stampanti
}}}
0. Rendere [[Programmazione/Script#exec|eseguibile]] il file appena creato.
0. Inserire le seguenti stringhe nello script:{{{
#!
#!/bin/bash
system-config-printer &
}}}
* Salvare e chiudere il file.
= Eliminare coda di stampa =
Questo ulteriore script è in grado di annullare tutti i lavori in attesa nella coda di stampa (per la stampante predefinita).
Oltre che essere inserito nella cartella degli script può essere creato un [[AmbienteGrafico/IconeDiAvvio|lanciatore]] sulla scrivania o sul pannello.
0. Creare nella [[#Configurazione|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.
In alternativa per cancellare la cronologia di stampa, oltre che annullare i lavori in attesa, inserire le seguenti stringhe nel suddetto script:{{{
#!
#!/bin/bash
cancel -a -x
exit 0
}}}
Il comando {{{ lprm }}} annulla l'ultimo lavoro di stampa.
= Stampare PDF fronte retro =
== Script fronte retro ==
0. Creare nella [[#Configurazione|cartella opportuna]] lo script con il nome:{{{
Stampa_pag_dispari
}}}
0. Rendere [[Programmazione/Script#exec|eseguibile]] il file appena creato.
0. Inserire le seguenti stringhe nello script:{{{
#!/bin/bash
echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read file
do
lpr -o page-set=odd "$file"
done
exit 0
}}}
* Salvare e chiudere il file.
0. Con la medesima procedura creare lo script con il nome:{{{
Stampa_pag_pari
}}}
0. Inserire le seguenti stringhe nello script:{{{
#!/bin/bash
echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read file
do
lpr -o page-set=even -o outputorder=reverse "$file"
done
exit 0
}}}
* Salvare e chiudere il file.
{{{#!wiki important
Avere cura di sostituire la stringa '''NAUTILUS''' con il rispettivo nome del file manager in utilizzo (ad es. '''CAJA''').}}}
== Procedura di stampa ==
A questo punto è possibile procedere alla stampa fronte retro:
0. Stampare prima le pagine dispari.
0. Girare i fogli con la parte stampata a faccia in giù.
0. Stampare le pagine pari.
== Stampa fronte retro da terminale ==
In alternativa se non si desidera creare altre voci nel menù contestuale, per stampare un PDF fronte retro è possibile dare i seguenti comandi da [[AmministrazioneSistema/Terminale|terminale]]:{{{
lpr -o page-set=odd 'percorso file da stampare'
}}}
Girare i fogli con la parte stampata a faccia in giù e quindi digitare {{{
lpr -o page-set=even -o outputorder=reverse 'percorso file da stampare'
}}}
= Ulteriori risorse =
* [[Hardware/StampantiScanner|Stampanti e scanner]]
* [[Hardware/StampantiScanner/StampanteGnome|Installazione di una stampante su Gnome]]
* [[https://www.cups.org/index.html|CUPS.org]]
----
CategoryProduttivita CategoryGrafica