Agregados unos scripts.

This commit is contained in:
Braquistos 2023-04-13 09:10:24 -06:00
parent 07b0d045d8
commit b9b9f01e74
1 changed files with 184 additions and 4 deletions

View File

@ -23,6 +23,12 @@ En esta hoja se van a ir incluyendo comandos útiles de terminal de Linux y Mac.
* [Archivo de configuración de `tmux`](#ArchivoConfigTmuxTag)
4. [Image Magick](#ImageMagickTag)
* [Comandos sueltos de ImageMagick](#ComandosImageMagickTag)
* [Optimización de archivos PDF](#OptimizacionPdfTag)
1. [Mediante la aplicación `ps2pdf` de Ghostscript](#OptimizarPdfGSATag)
2. [Mediante script explícito de Ghostscript](#OptimizarPdfGSATag)
* [Cambiar un PDF de RGB a CMYK](#CambiarRgbCmykTag)
* [Convertir a curvas los textos contenidos en un archivo SVG](#ConvertirACurvasTag)
5. [Audio](#audioTag)
* [Modificación de etiquetas y metadatos de MP3](#ModificacionMP3Tag)
@ -661,12 +667,9 @@ Agregar lo siguiente para que las nuevas ventanas creadas dentro de una sesión
# <a id=ImageMagickTag></a> Image Magick
## <a id=ComandosImageMagickTag></a> Comandos sueltos de ImageMagick
Recortar una imagen en PNG con fondo transparente de manera que sólo deje el contenido.
@ -759,6 +762,183 @@ Extraer imágenes de un pdf en su formato original:
## <a id=OptimizacionPdfTag></a> Optimización de archivos PDF
### <a id=OptimizarPdfGSATag></a> Mediante la aplicación `ps2pdf` de Ghostscript
```
$ ps2pdf entrada.pdf salida.pdf
```
### <a id=OptimizarPdfGSATag></a> Mediante script explícito de Ghostscript
1. Se crea un script de bash con un nombre apropiado como `optimizarPdf.sh` que tenga el siguiente contenido:
```
#!/usr/bin/bash
# Para optimizar el pdf de nombre "archivo.pdf" se corre como:
#
# ./optimizarPdf.sh archivo 300
#
# en donde 300 es la resolución que también puede ser de 150 y 72
archivo=$1
res=$2
echo "Se seleccionó $res dpi"
archIn=$archivo.pdf
archOut=$archivo-${res}dpi.pdf
case $res in
300)
resTipo='/printer' # o usar /prepress
;;
150)
resTipo='/ebook'
;;
72)
resTipo='/screen'
;;
*)
echo "Resolucion no valida. Puede ser 300, 150 o 72"
exit 0
;;
esac
gs \
-sDEVICE=pdfwrite \
-dMaxSubsetPct=100 \
-dPDFSETTINGS=$resTipo \
-sOutputFile="$archOut" \
-dNOPAUSE \
-dBATCH \
-dAutoFilterColorImages=false \
-dColorImageFilter=/FlateEncode \
-dAutoFilterGrayImages=false \
-dGrayImageFilter=/FlateEncode \
-dMonoImageFilter=/FlateEncode \
"$archIn"
exit 0
```
2. Se le cambian los permisos para que pueda ser ejecutable y se mueve a un directorio que sea reconocido por el `$PATH`, por ejemplo, `/home/$USER/bin`.
```
$ chmod +x optimizarPdf.sh
$ mv optimizarPdf.sh /home/$USER/bin
```
3. El script optimiza las imágenes dentro del PDF para que queden a 72 dpi, 150 dpi o 300 dpi. Entonces, para optimizar un archivo PDF de nombre `archivo.pdf` a 300 dpi el script se ejecuta como:
```
$ optimizarPdf.sh archivo 300
```
en donde el nombre del archivo se indica sin la extensión. Los posibles valores de resolución en dpi son los indicados.
## <a id=CambiarRgbCmykTag></a> Cambiar un PDF de RGB a CMYK
1. Se crea un script de bash con un nombre apropiado como `pdfRgb2Cmyk.sh` que tenga el siguiente contenido:
```
#!/usr/bin/bash
# Para cambiar el pdf de nombre "archivo.pdf" de RGB a CMYK se corre como:
#
# ./pdfRgb2Cmyk.sh archivo
archivo=$1
archIn=$archivo.pdf
archOut=$archivo-cmyk.pdf
gs \
-sDEVICE=pdfwrite \
-dNOPAUSE \
-dNOCACHE \
-dBATCH \
-dSAFER \
-dAutoRotatePages=/None \
-sColorConversionStrategy=CMYK \
-dProcessColorModel=/DeviceCMYK \
-sOutputFile="$archOut" \
"$archIn"
exit 0
```
2. Se le cambian los permisos para que pueda ser ejecutable y se mueve a un directorio que sea reconocido por el `$PATH`, por ejemplo, `/home/$USER/bin`.
```
$ chmod +x pdfRgb2Cmyk.sh
$ mv pdfRgb2Cmyk.sh /home/$USER/bin
```
3. El script cambia a CMYK las imágenes de un archivo PDF que estén en RGB y se ejecuta como:
```
$ pdfRgb2Cmyk.sh archivo
```
en donde el nombre del archivo se indica sin la extensión.
## <a id=ConvertirACurvasTag></a> Convertir a curvas los textos contenidos en un archivo SVG
1. Se crea un script de bash con un nombre apropiado como `inkCurva.sh` que tenga el siguiente contenido:
```
#!/usr/bin/bash
# Para ejecutar
#
# $ inkCurva.sh archivo
#
# en donde 'archivo' es el archivo.svg. El resultado tiene por nombre archivocurvas.svg
ruta=`pwd`
# Descomentar si se usa en MacOS
# correInks=/Applications/Inkscape.app/Contents/Resources/bin/inkscape
# En este caso cambiar el hashbang de la primera línea a #!/bin/bash
# Descomentar si se usa un Inkscape instalado mediante gestor de paquetes
# correInks=/usr/bin/inkscape
# Descomentar si se ejecuta Inkscape desde un binario tipo AppImage, ajustar la ruta y el nombre
correInks=/home/$USER/local/inkscape122/Inkscape-b0a8486-x86_64.AppImage
$correInks $ruta/$1.svg --export-text-to-path --export-plain-svg=$ruta/$1curvas.svg
```
2. Se le cambian los permisos para que pueda ser ejecutable y se mueve a un directorio que sea reconocido por el `$PATH`, por ejemplo, `/home/$USER/bin`.
```
$ chmod +x inkCurva.sh
$ mv inkCurva.sh /home/$USER/bin
```
3. El script convierte a curvas todos los textos contenidos en `archivo.svg` de Inkscape y se ejecuta como:
```
$ inkCurva.sh archivo
```
en donde el nombre del archivo se indica sin la extensión.
# <a id=audioTag></a> Audio