Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "AmbienteGrafico/FileManager/ScriptStampa"
Differenze tra le versioni 15 e 45 (in 30 versioni)
Versione 15 del 19/03/2018 16.09.23
Dimensione: 9336
Autore: mary3
Commento:
Versione 45 del 23/11/2023 05.44.47
Dimensione: 12778
Autore: jeremie2
Commento: Tabelle: rimozione vecchi colori standard
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 7: Linea 7:
<<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=627033"; rilasci="16.04 14.04")>> <<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=627033"; rilasci="20.04 18.04")>>
Linea 11: Linea 11:
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 che ciascun file debba essere aperto per fare clic su '''Stampa''' uno alla volta.
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.<<BR>>
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.<<BR>> Per '''Dolphin''' si rimanda alla [[AmbienteGrafico/Kde/DolphinMenuStampa|guida]] specifica.<<BR>> Per '''PCManFM/PcManFM-Qt''' si rimanda alla [[AmbienteGrafico/FileManager/PCmanFmMenuStampa|guida]] specifica.
}}}
Linea 17: Linea 20:
Assicurarsi di aver [[AmministrazioneSistema/InstallareProgrammi|installato]] il pacchetto [[apt://cups|cups]]. [[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`).
Linea 21: Linea 24:
Gli script sotto elencati dovranno essere creati manualmente in un'opportuna cartella a seconda del [[AmbienteGrafico/FileManager|file manager]] in utilizzo:

 * '''Script con possibilità di scelta della stampante'''
  * [[#file_selezionati|Stampa i file PDF, JPEG, PNG, TXT selezionati]]
  * [[#file_LibreOffice|Stampa file di Libreoffice selezionati]]

 * '''Script per stampante predefinita'''
  * [[#tutti_pdf|Stampa TUTTI i PDF contenuti nella cartella]]
  * [[#file_selezionati_predefinita|Stampa i file selezionati]]
  * [[#file_LibreOffice_predefinita|Stampa file di Libreoffice]]

 * '''Altro'''
  * [[#|Elimina coda di stampa]]
La modalità di aggiunta voci al menù contestuale può variare in base all'[[AmbienteGrafico|ambiente grafico]] e al [[AmbienteGrafico/FileManager|file manager]] in utilizzo.<<BR>> Gli script dovranno essere creati manualmente in un'opportuna cartella:
Linea 36: Linea 27:
||<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` ||
||<tablestyle="width:40%;"> '''File manager''' || '''Percorso file''' ||
|| '''Nautilus''' || `~/.local/share/nautilus/scripts` ||
|| '''Caja''' || `~/.config/caja/scripts` ||
|| '''Nemo''' || `~/.local/share/nemo/scripts` ||
Linea 43: Linea 34:
||<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]]''||

<<Anchor(file_selezionati)>>
== Stampa i file PDF, JPEG e PNG, TXT selezionati ==

<<Anchor(individua_stampante)>>
{{{#!wiki note
Le opzioni generali per le stampanti (come l'impostazione della stampante predefinita) sono disponibili nel [[AmministrazioneSistema/CentroDiControllo|centro di controllo]].<<BR>>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/<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
}}}

{{{#!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.
Linea 54: Linea 132:
 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. Creare nella [[#Configurazione|cartella opportuna]] lo script con il nome:{{{
Stampa con nome-stampante
}}}  
Linea 61: Linea 139:
 inserire le seguenti stringhe nello script:{{{  inserire le seguenti stringhe nello script::{{{ 
Linea 64: Linea 142:
 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 [[#individua_stampante|punto 1]] e la stringa '''$NAUTILUS''' con il rispettivo nome del file manager in utilizzo (ad es. '''$CAJA''').

    # 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
}}}

{{{#!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.}}}
Linea 73: Linea 201:
<<Anchor(file_LibreOffice)>>
== Stampa file di LibreOffice selezionati ==

Il seguente script è in grado di funzionare oltre che con i classici file utilizzati da '''!LibreOffice''' (`.odt`, `ods`, `.doc`.. ), anche con file `.pdf `, `.jpeg` e `.png`.<<BR>>
È possibile selezionare contemporaneamente più file di tipo differente (es. un `.odt` e un `ods).

<<Anchor(individua_stampante)>>
 0. Individuare il nome della stampante in utilizzo digitando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
lpstat -p -d
}}}
 0. Assicurarsi di aver [[AmministrazioneSistema/InstallareProgrammi|installato]] il pacchetto [[apt://libreoffice-pdfimport|libreoffice-pdfimport]].
 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
    do
/usr/lib/libreoffice/program/swriter --pt "$printer" "$file"
done
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''').
 ||<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. Assicurarsi di aver [[AmministrazioneSistema/InstallareProgrammi|installato]] il pacchetto [[apt://openoffice.org-pdfimport|openoffice.org-pdfimport]].
 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.

<<Anchor(tutti_pdf)>>
== Stampa tutti i PDF contenuti nella cartella ==

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
=== 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
Linea 127: Linea 218:
for FILE in *.pdf *.PDF ; do lpr "$FILE" ; done system-config-printer &
Linea 131: Linea 222:
<<Anchor(file_selezionati_predefinita)>>
== Stampa file selezionati ==

 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:{{{
= 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:{{{
Linea 141: Linea 235:
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
Linea 143: Linea 262:
       lpr -P "$file"        lpr -o page-set=odd "$file"
Linea 146: Linea 265:
}}}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 ==

  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"
}}}
 * 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"
Linea 164: Linea 278:
}}}Avere cura di sostituire la stringa '''$NAUTILUS''' con il rispettivo nome del file manager in utilizzo (ad es. '''$CAJA''').
 * 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 [[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.
}}}
 * 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'
}}}
Linea 185: Linea 301:
 * [[https://wiki.ubuntu-it.org/Hardware/StampantiScanner|Stampanti e scanner]]
 * [[https://wiki.ubuntu-it.org/Hardware/StampantiScanner/StampanteGnome|Installazione di una stampante su Gnome]]
 * [[Hardware/StampantiScanner|Stampanti e scanner]]
 * [[Hardware/StampantiScanner/StampanteGnome|Installazione di una stampante su Gnome]]
Linea 188: Linea 304:


Guida verificata con Ubuntu: 20.04

Problemi in questa pagina? Segnalali in questa discussione

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.

Per Thunar si rimanda alla guida specifica.
Per Dolphin si rimanda alla guida specifica.
Per PCManFM/PcManFM-Qt si rimanda alla guida specifica.

Preparativi

Installare i pacchetti cups, printer-driver-cups-pdf e imagemagick (per il formato .svg).

Configurazione

La modalità di aggiunta voci al menù contestuale può variare in base all'ambiente grafico e al 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.

Le opzioni generali per le stampanti (come l'impostazione della stampante predefinita) sono disponibili nel centro di controllo.
Vedere anche la pagina 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.

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

  1. Creare nella cartella opportuna lo script con il nome:

    Stampa
  2. Rendere eseguibile il file appena creato.

  3. 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.

Altri Script per stampante predefinita

Ai seguenti link sono presenti script per stampante predefinita con funzionalità parziali:

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.

  1. Individuare il nome della stampante in utilizzo digitando nel terminale:

    lpstat -p -d
  2. Creare nella cartella opportuna lo script con il nome:

    Stampa con nome-stampante
  3. Rendere eseguibile il file appena creato.

  4. 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 per stampante specifica

Ai seguenti link sono presenti script per stampante specifica con funzionalità parziali:

Script - accesso impostazioni stampante

Per comodità può essere utile un accesso rapido alle impostazioni delle stampanti del Centro di controllo tramite clic destro, ad esempio per impostare rapidamente la stampante predefinita.

  1. Creare nella cartella opportuna lo script con il nome:

    Impostazioni stampanti
  2. Rendere eseguibile il file appena creato.

  3. Inserire le seguenti stringhe nello script:

    #!/bin/bash
    system-config-printer &
  4. 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 lanciatore sulla scrivania o sul pannello.

  1. Creare nella cartella opportuna lo script con il nome:

    Eliminare coda di stampa
  2. Rendere eseguibile il file appena creato.

  3. Inserire le seguenti stringhe nello script:

    #!/bin/bash
    cancel -a
    exit 0
  4. 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

  1. Creare nella cartella opportuna lo script con il nome:

    Stampa_pag_dispari
  2. Rendere eseguibile il file appena creato.

  3. Inserire le seguenti stringhe nello script:

    echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read file
        do
           lpr -o page-set=odd "$file"
    done
    exit 0
  4. Salvare e chiudere il file.
  5. Con la medesima procedura creare lo script con il nome:

    Stampa_pag_pari
  6. Inserire le seguenti stringhe nello script:

    echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read file
       do
           lpr -o page-set=even -o outputorder=reverse "$file"
    done
    exit 0
  7. Salvare e chiudere il file.

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:

  1. Stampare prima le pagine dispari.
  2. Girare i fogli con la parte stampata a faccia in giù.
  3. 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 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


CategoryProduttivita CategoryGrafica