Uso de Script Bash en Nautilus para Automatizar procesos. Conversión de imágenes y archivos

in #spanish5 years ago (edited)

code-3637299_1920.jpg

Fuente de Pixabay

Crear scripts de procesos mediante bash es algo común entre los usuarios de Linux, sobre todo entre aquellos que tienen más tiempo utilizando y probando distribuciones, esto con el objetivo de complementar y potenciar el uso de la consola.

En este post veremos cómo aprovechar el comando convert para manipular imágenes y cambiar su formato mediante el comando convert, colocando estos scrpts de forma de ejecutarlos directamente mediante Nautilus.

Nautilus es el manejador de archivos que se usa por defecto en el escritorio Gnome, la información de este post puede ejecutarse en Fedora y Ubuntu, posiblemente en la mayoría de las distribuciones que ejecutan Gnome. Por otro lado el uso de Scripts es una práctica común de cualquier distribución Linux.

Primero se creará la carpeta donde se almacenarán los scripts que se desean ejecutar:

mkdir -p ~/.local/share/nautilus/scripts/

Para los scripts se usara el comando convert dicho comando permite, transforma el tamaño, formato, voltear y colorear una imagen, entre otras funciones. Este es una función de ImageMagick(1).

Se realizarán dos ejemplos, el primero para convertir formatos de imágenes como png en jpg y el segundo para convertir imágenes en PDF.

convert archivo.png archivo.jpg este procedimiento es usado en la consola para poder convertir un archivo (png en este caso) en jpg.

convert archivo.jpg archivo.pdf para convertir una imagen en pdf.

Como se ve convert es una herramienta sencilla y rápida, sin embargo cuando es un archivo de texto u hoja de cálculo la que se desea convertir a PDF, este comando tiene un inconveniente, toda la información se verá en el PDF como una imagen, si deseamos que la información sea llevada como texto para así poder modificar el documento posteriormente es necesario utilizar otro comando, unoconv es el nombre del comando utilizado en este caso.

unoconv archivo.odt donde la extensión puede ser de libreoffice o microsoft office, con una salida que será el nombre del original en formato PDF.

Si estamos usando Ubuntu o derivadas basta con escribir sudo apt install unoconv para instalar el módulo.

En caso contrario si deseamos traer un PDF para un archivo de LibreOffice o Microsoft Office debemos usar otro procedimiento, soffice --infilter="writer_pdf_import" --convert-to odt "archivo.pdf", aqui invocamos igualmente una libreria de LibreOffice y podemos sustituir la extensión odt, por doc si lo deseamos en Microsoft Office. En prueba realizadas la importación a odt a funcionado mucho mejor, generando un texto más fácil de manipular y fiel del original, así que si desea traer un archivo para trabajar sobre él, mi recomendación es traerlo a odt modificarlo y luego si se desea en formato de Microsoft Office guardarlo directamente en este formato luego de modificado.

Creando los Scripts

Ya conocemos los comandos que aplicaremos desde nuestros script para invocar los procesos, por otro lado usaremos una variable de nautilus $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS, esta trae consigo el archivo o archivos seleccionados desde nautilus con el mouse. De esta forma pasaremos la información al script de qué archivo procesaremos.

Lo primero es crear la carpeta donde se contendrán los scripts mkdir -p ~/.local/share/nautilus/scripts/, esta ubicación contendrá cada una de nuestras rutinas.

Script para convertir imagenes a jpg

Crearemos el primer script nano ~/.local/share/nautilus/scripts/convert_to_jpeg es este crearemos el primer ejemplo que convierte imágenes como las png en jpg. Nano es un editor parecido a vi, se puede usar el que se prefiera.
#!/bin/bash
echo -e "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | xargs -i convert "{}" "{}.jpg"

Finalmente se modifica sus propiedades para que pueda ser ejecutable chmod +x ~/.local/share/nautilus/scripts/convert_to_jpeg

Script para convertir imágenes a PDF

nano ~/.local/share/nautilus/scripts/convert_to_pdf para crear el script.
#!/bin/bash
echo -e "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | xargs -i convert "{}" "{}.pdf"

Finalmente se modifica sus propiedades para que pueda ser ejecutable chmod +x ~/.local/share/nautilus/scripts/convert_to_pdf

Script para convertir documentos de texto y hojas de cálculo a PDF

nano ~/.local/share/nautilus/scripts/convert_to_office_pdf para crear el script.
#!/bin/bash
echo -e "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | xargs -i unoconv "{}"

Se modifica sus propiedades para que pueda ser ejecutable chmod +x ~/.local/share/nautilus/scripts/convert_to_office_pdf

Script para convertir PDF a documento ODT o DOC

nano ~/.local/share/nautilus/scripts/convert_to_pdf_odt para crear el script.
#!/bin/bash
echo -e "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | xargs -i  soffice --infilter="writer_pdf_import" --convert-to odt "{}"

En donde especificamos odt podemos colocar doc, sin embargo en prueba he visto que la conversión a odt es de mayor calidad para su manipulación.

Se modifica sus propiedades para que pueda ser ejecutable chmod +x ~/.local/share/nautilus/scripts/convert_to_pdf_odt

En el siguiente Gif observaremos como se aplicaría el uso del script.

script.gif

Este Gif es una secuencia grabada con OBS directo de la pantalla y convertida con ffmpeg

Referencias

Ayuda Man unoconv
Ayuda Man convert
https://fedoramagazine.org/integrating-scripts-nautilus/
https://ask.libreoffice.org/en/question/56296/convert-pdf-to-word-document-at-command-line-on-centos/

Sort:  

Buen post, @ubaldonet. Estos scripts son muy útiles; yo los he usado en más de una ocasión. A pesar de que no son muy difíciles, sí se pueden percibir de esa forma por los usuarios de las ventanas. Demuestra un buen nivel técnico. Saludos.

Un script es algo muy afín para quienes usan Linux, realmente ahorran tiempo en actividades diarias la conversión de archivos es sólo una muestra de una actividad de uso diario, sin embargo se pueden automatizar funciones diversas como serían por citar uno los respaldos

Posted using Partiko Android

Excelente estimado @ubaldonet, por explicar de una forma entendible este tema que para muchos de nosotros desconocido.

Si realmente siempre he visto que para muchos usuarios convertir sus archivos entre formatos es una necesidad Común. Espero sea de utilidad.

Posted using Partiko Android

Votado por el trail @team-mexico
Canal Discord ¡Te esperamos!

Delegaciones para @team-mexico ¡Ayúdanos a crecer!

10 SP - 25 SP - 50 SP - 100 SP - 150 SP- Mas información.
teammexico (1).png

Coin Marketplace

STEEM 0.36
TRX 0.12
JST 0.039
BTC 70223.87
ETH 3561.28
USDT 1.00
SBD 4.73