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/EsempiAlternativi"
Differenze tra le versioni 1 e 2
Versione 1 del 11/04/2018 10.46.00
Dimensione: 16647
Autore: mary3
Commento:
Versione 2 del 11/04/2018 10.52.23
Dimensione: 16662
Autore: mary3
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 229: Linea 229:
= Altri script "predefinita" = = Altri script =
Linea 232: Linea 232:
== Stampa tutti i PDF contenuti nella cartella == == Stampa tutti i PDF contenuti nella cartella  (predefinita) ==
Linea 248: Linea 248:
== Stampa file selezionati == == Stampa file selezionati (predefinita) ==
Linea 266: Linea 266:
== Stampa file LibreOffice selezionati == == Stampa file LibreOffice selezionati (predefinita) ==
Linea 284: Linea 284:
= Altri script "con nome stampante" =
Linea 288: Linea 288:
== Stampa i file PDF, JPEG e PNG, TXT selezionati == == Stampa i file PDF, JPEG, PNG, TXT selezionati (specifica) ==
Linea 314: Linea 314:
== Stampa file di LibreOffice selezionati == == Stampa file di LibreOffice selezionati (specifica) ==


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 image-magick (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

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, ad esempio un mp3, viene notificato a schermo messaggio di errore. Verrà usata la stampante predefinita.

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