diff --git a/cosasCLI.md b/cosasCLI.md index 0ff241e..b33ef5e 100644 --- a/cosasCLI.md +++ b/cosasCLI.md @@ -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 - - - - # Image Magick +## 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: + +## Optimización de archivos PDF + + +### Mediante la aplicación `ps2pdf` de Ghostscript + +``` + $ ps2pdf entrada.pdf salida.pdf +``` + + +### 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. + + + + +## 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. + + + + + +## 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. + + + # Audio