## 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 (attivabili tramite click destro) dei [[AmbienteGrafico/FileManager|file manager]] '''Nautilus''', '''Caja''' e '''Nemo''' .
L'integrazione avviene tramite la creazione di [[Programmazione/Script|script]] che permettono di selezionare uno o più file e avviarne la stampa immediata, senza la necessità di aprire singolarmente ogni documento.
{{{#!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]] e [[apt://printer-driver-cups-pdf|printer-driver-cups-pdf]].<
>
Installare inoltre i pacchetti [[apt://imagemagick|imagemagick]], per il supporto ai file `.svg`, e [[apt://libnotify-bin|libnotify-bin]], per le notifiche a schermo.
= Configurazione =
La modalità per l'aggiunta di voci al menù contestuale varia in base all'[[AmbienteGrafico|ambiente grafico]] e al [[AmbienteGrafico/FileManager|file manager]] di utilizzo.<
>
Gli script devono essere creati manualmente nelle seguenti cartelle:
<>
|| '''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]].
}}}
== Individuare il nome stampante specifica ==
Individuare il nome della stampante in utilizzo digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
lpstat -p -d
}}}
= Script di stampa =
Lo script verrà avviato accedendo tramite clic destro al menù contestuale alla voce '''''Script → [Nome Script]'''''. Per fare ciò è possibile agire in diversi modi.
* '''Selezione multipla''': selezionando uno o più file contemporaneamente di vario tipo (PDF, testo, immagini, documenti di !LibreOffice).
* '''Spazio vuoto''': cliccando in un'area vuota di una cartella, vengono stampati tutti i file supportati presenti.
* '''Su una cartella:''' selezionando una cartella chiusa, vengono stampati tutti i file supportati in essa contenuti.
{{{#!wiki note
Lo script identifica automaticamente il tipo di file. Qualora venga selezionato un file non stampabile (ad esempio un file `.mp3`), viene generata una notifica di errore, mentre per i file compatibili vengono eseguiti i relativi comandi di stampa.
}}}
== Script per stampante predefinita ==
0. [[#Individuare_il_nome_stampante_specifica|Individuare il nome della stampante]] in utilizzo.
0. Creare nella [[#Configurazione|cartella opportuna]] lo script con il nome:{{{
Stampa
}}}
0. Rendere [[Programmazione/Script#exec|eseguibile]] il file appena creato.
0. Aprire un nuovo file script con un [[Ufficio/EditorDiTesto|editor di testo]] e inserire le seguenti stringhe:{{{
#!/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
Se si utilizza un file manager diverso da '''Nautilus''' sostituire la voce «`NAUTILUS`» con «`CAJA`» oppure «`NEMO`», a seconda dei casi.
}}}
0. Chiudere il file e l'editor di testo.
=== 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_stampante_specifica|Individuare il nome della stampante]] in utilizzo.
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
}}}Salvare e chiudere il file.
{{{#!wiki important
Se si utilizza un file manager diverso da '''Nautilus''' sostituire la voce «`NAUTILUS`» con «`CAJA`» oppure «`NEMO`», a seconda dei casi.
}}}
=== 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 per gestione stampante =
== Accesso rapido impostazioni ==
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
}}}
* Per annullare l'ultimo lavoro di stampa, inserire il comando:{{{
lprm
}}}
= Stampare PDF fronte retro =
== Script - Pagine fronte retro ==
* Pagine dispari
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.
Se si utilizza un file manager diverso da '''Nautilus''' sostituire la voce «`NAUTILUS`» con «`CAJA`» oppure «`NEMO`», a seconda dei casi.
* Pagine pari:
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
}}}
Se si utilizza un file manager diverso da '''Nautilus''' sostituire la voce «`NAUTILUS`» con «`CAJA`» oppure «`NEMO`», a seconda dei casi.
0. Salvare e chiudere il file.
== 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