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 11 e 22 (in 11 versioni)
Versione 11 del 17/03/2018 13.14.57
Dimensione: 8409
Autore: jeremie2
Commento:
Versione 22 del 11/04/2018 12.19.16
Dimensione: 16741
Autore: jeremie2
Commento: inizio revisione
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(depth=2)>> <<Indice(depth=6)>>
Linea 10: 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 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.
Linea 16: Linea 18:
Assicurarsi di aver [[AmministrazioneSistema/InstallareProgrammi|installato]] il pacchetto [[apt://cups|cups]]. Assicurarsi di aver [[AmministrazioneSistema/InstallareProgrammi|installato]] il pacchetto [[apt://cups|cups]] e [[apt://imagemagick|imagemagick]] (per il formato `.svg`).
Linea 21: Linea 23:

 * '''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]]
Linea 44: Linea 34:
||<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
  * diamo click destro nello spazio vuoto di una cartella aperta, senza selezionare nessun file, stampa tutti quelli stampabili contenuti nella cartella
  * lo stesso succede se selezioniamo 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 =

Questo script prima riconosce il tipo di file, poi usa i comandi necessari a seconda del caso, e se invece viene selezionato un file non stampabile viene notificato a schermo messaggio di errore. Verrà usata la stampante indicata nello script.
Sarà dunque possibile creare uno script per ogni stampante (esempio: Stampa con Samsung, Stampa con HP...), funziona quando:

  * selezioniamo uno o più file di vari tipi contemporaneamente (PDF, testo, immagini, formati di libreoffice) click destro -> Script-> Stampa
  * diamo click destro nello spazio vuoto di una cartella aperta, senza selezionare nessun file, stampa tutti quelli stampabili contenuti nella cartella
  * lo stesso succede se selezioniamo 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




Linea 45: Linea 285:
== Stampa i file PDF, JPEG e PNG, TXT selezionati == == Stampa i file PDF, JPEG, PNG, TXT selezionati (specifica) ==
Linea 59: Linea 299:
 #!
Linea 71: Linea 311:
== 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)>>
== 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)>>
Linea 80: Linea 320:
 0. Assicurarsi di aver [[AmministrazioneSistema/InstallareProgrammi|installato]] il pacchetto [[apt://libreoffice-pdfimport|libreoffice-pdfimport]].
Linea 97: Linea 337:
}}}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'''). }}}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.||
Linea 104: Linea 345:
 0. Assicurarsi di aver [[AmministrazioneSistema/InstallareProgrammi|installato]] il pacchetto [[apt://openoffice.org-pdfimport|openoffice.org-pdfimport]].
Linea 111: Linea 351:
<<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
}}}
 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 ==

 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 ==

  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.

== Eliminare coda di stampa ==

= Eliminare coda di stampa =
Linea 185: Linea 374:
----
CategoryHomepage
------

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.
Vedere anche la pagina 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

  • diamo click destro nello spazio vuoto di una cartella aperta, senza selezionare nessun file, stampa tutti quelli stampabili contenuti nella cartella
  • lo stesso succede se selezioniamo una cartella chiusa -> click destro -> Script-> Stampa

  1. A seconda del file manager in utilizzo, creare nella cartella opportuna lo script con il nome:

    Stampa
  2. Rendere eseguibile il file appena creato.

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

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

Questo script prima riconosce il tipo di file, poi usa i comandi necessari a seconda del caso, e se invece viene selezionato un file non stampabile viene notificato a schermo messaggio di errore. Verrà usata la stampante indicata nello script. Sarà dunque possibile creare uno script per ogni stampante (esempio: Stampa con Samsung, Stampa con HP...), funziona quando:

  • selezioniamo uno o più file di vari tipi contemporaneamente (PDF, testo, immagini, formati di libreoffice) click destro -> Script-> Stampa

  • diamo click destro nello spazio vuoto di una cartella aperta, senza selezionare nessun file, stampa tutti quelli stampabili contenuti nella cartella
  • lo stesso succede se selezioniamo una cartella chiusa -> click destro -> Script-> Stampa

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

    lpstat -p -d
  2. A seconda del file manager in utilizzo, 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.

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

  1. A seconda del file manager in utilizzo, creare nella cartella opportuna lo script con il nome:

    Stampa tutti i PDF contenuti nella cartella
  2. Rendere eseguibile il file appena creato.

  3. Inserire le seguenti stringhe nello script:

    #!/bin/bash
    for FILE in *.pdf *.PDF ; do lpr "$FILE" ; done
  4. Salvare e chiudere il file.

Stampa file selezionati (predefinita)

  1. A seconda del file manager in utilizzo, creare nella cartella opportuna lo script con il nome:

    Stampa file selezionati
  2. Rendere eseguibile il file appena creato.

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

  4. Salvare e chiudere il file.

Stampa file LibreOffice selezionati (predefinita)

  1. A seconda del file manager in utilizzo, creare nella cartella opportuna lo script con il nome:

    Stampa file LibreOffice selezionati
  1. Rendere eseguibile il file appena creato.

  2. 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).

  3. Salvare e chiudere il file

Stampa i file PDF, JPEG, PNG, TXT selezionati (specifica)

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

    lpstat -p -d
  2. 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
  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
     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).

  5. 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).

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

    lpstat -p -d
  2. A seconda del file manager in utilizzo, creare nella cartella opportuna lo script con il nome:

    Stampa file di LibreOffice selezionati
  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
    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).

    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.

  5. Salvare e chiudere il file.

Per chi utilizza OpenOffice

Nel caso sia utilizzato OpenOffice al posto di LibreOffice:

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

  1. A seconda del file manager in utilizzo, 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.

Ulteriori risorse


CategoryProduttivita CategoryGrafica