Blog Archives

Convertir imagenes a PDF desde la línea de comandos

La herramienta ImageMagick nos permite llevar a cabo esta tarea de manera sencilla.

La sintáxis es la siguiente:

$ convert a.png b.png c.png (...) x.png multipagina.pdf

Ahora bien, es muy probable que el resultado no se ajuste a un tamaño de papel estándar para lo cual debemos definir de manera explícita para el destino mediante la opción ‘resize’:

$ i=150; convert a.png b.png c.png -compress jpeg -quality 70 \
 -density ${i}x${i} -units PixelsPerInch \
 -resize $((i*827/100))x$((i*1169/100)) \
 -repage $((i*827/100))x$((i*1169/100)) multipagina.pdf

El comando convert no siempre usa DPI como la unidad predeterminada para la densidad/formato de página, así pues debemos especificar de manera explicita los DPI con la opción -units (de otro modo es probable que obtengamos resultados diferentes con distintas versiones/combinaciones de formato de entrada). El nuevo tamaño (especificado vía -resize) es la dimensión de una hoja A4 en pixeles. El argumento resize especifica el tamaño máximo de página. La resolución y calidad exacta a escoger depende del uso en cada caso. En el ejemplo se seleccionó 150 DPI y calidad promedio para ahorrar algo de espacio al tiempo que no se ve tan mal una vez impreso.

Debemos notar que convert no cambia la relación de aspecto de manera predeterminada con la operación resize:

Resize encajará la imágen en el tamaño requerido. Aunque NO rellena el tamaño de caja.

Manual de ImageMagick: http://www.imagemagick.org/Usage/resize/#resize

Dependiendo de la versión de ImageMagick y el formato de entrada involucrado se podría omitir la opción -repage. Pero algunas veces se requiere y sin esa opción el encabezado del PDF podría contener dimensiones muy pequeñas. En cualquier caso, -repage no debería molestar.

El cómputo usa aritmética de enteros ya que bash soporta eso solamente. Con zsh las expresiones pueden ser simplificadas – ej. $((i*8.27))x$((i*11.69)).

 

 

unix.stackexchange.com

Publicado en General, Miniguías

Como reparar el error ‘initramfs’ en Ubuntu y derivados

En este artículo se describe como subsanar el problema que nos arroja Ubuntu cuando al arrancar vemos una pantalla negra con el prompt (initramfs).

initramfs

  1. Arrancar con un live CD o USB.
  2. Hallar el número de partición usando:
    sudo fdisk -l|grep Linux|grep -Ev 'swap'
  3. Listar todos los superbloques usando el comando:
    sudo dumpe2fs /dev/sdax | grep superblock 
    NOTA: x es el número de dispositivo hallado con el comando anterior.
  4. Ahora verificamos y reparamos el sistema de archivos de nuestro GNU/Linux usando el superbloque alternativo # 32768:
    fsck -b 32768 -y /dev/sdax
    NOTA: -y pasará “si” a todas las preguntas y realizará las correcciones automáticamente.
  5. Ahora intentaremos montar la partición:
    mount /dev/sdax /mnt
  6. Ahora, intentaremos recorrer el sistema de archivos con los siguientes comandos:
    sudo cd /mnt
    sudo ls -l
  7. En caso que hayamos podido concretar los comandos anteriores, es muy probable que hayamos corregido el error.
  8. Reiniciamos el equipo y debería poder arrancar con normalidad.

 

boot-up-fails-drops-to-initramfs-prompt-12-04 en #2

Publicado en Miniguías, Sistemas, Ubuntu Etiquetado con:

Como actualizar Huayra 2.x (Pampero) a Huayra 3.x (Sud)

En esta guía se describe como actualizar Huayra 2.x (Pampero) a Huayra 3.x (Sud) desde la consola.

En primer lugar cambiamos el editor de texto predeterminado a Nano (no sé porqué razón insisten con usar vim).

$ sudo update-alternatives --config editor
Existen 5 opciones para la alternativa editor (que provee /usr/bin/editor).
Selección Ruta Prioridad Estado
 ------------------------------------------------------------
 * 0 /usr/bin/vim.gnome 60 modo automático
 1 /bin/nano 40 modo manual
 2 /usr/bin/mcedit 25 modo manual
 3 /usr/bin/vim.basic 30 modo manual
 4 /usr/bin/vim.gnome 60 modo manual
 5 /usr/bin/vim.tiny 10 modo manual
Pulse <Intro> para mantener el valor por omisión [*] o pulse un número de selección: 1

Instalamos todas las actualizaciones disponibles para antes de actualizar

$ sudo apt-get update && sudo apt-get upgrade -y

A continuación editamos los repositorios con las nuevas referencias

$ sudo sed -i 's/wheezy/jessie/' /etc/apt/sources.list
$ sudo sed -i 's/pampero/sud/' /etc/apt/sources.list

Será necesario eliminar la referencia al repositorio de Mate Desktop, para ello

$ sudo nano /etc/apt/sources.list

Y eliminamos estas líneas

## Repositorio de Mate Desktop
deb http://repo.huayra.conectarigualdad.gob.ar/huayra/ mate-sud main

Nuestro archivo debería verse así

## Repositorio oficial de Debian GNU/Linux
deb http://ftp.debian.org/debian/ jessie main contrib non-free
#deb http://ftp.debian.org/debian/ jessie main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free
## Repositorio de Huayra GNU/Linux
deb http://repo.huayra.conectarigualdad.gob.ar/huayra/ sud main contrib non-free
## Repositorio de Huayra GNU/Linux (actualizaciones)
deb http://repo.huayra.conectarigualdad.gob.ar/huayra/ sud-updates main contrib non-free

Procedemos a actualizar

Actualizar el listado de paquetes disponibles

$ sudo apt-get update

Realizamos una actualización mínima

$ apt-get upgrade

Actualización el resto del sistema

$ apt-get dist-upgrade

El sistema nos informará cuando deberá descargar y solicitará confirmación para comenzar con la operación

Se necesita descargar 2.929 MB de archivos.
Se utilizarán 2.977 MB de espacio de disco adicional después de esta operación.
¿Desea continuar [S/n]? S

Pulsamos S, luego <Intro> y a esperar… Ya que este proceso va a demorar bastante tiempo es recomendable que la netbook se encuentre conectada al cargador.

Publicado en Miniguías, Miniguías Etiquetado con:

Algunos tips sobre la instalación de *buntu / Mint

Debido a las numerosas y reiteradas consultas recibidas en el Departamento de Tecnología para la Gestión, sobre todo luego del Curso de Redes y Seguridad Informática, optamos por compartir estos consejos que esperamos les resulten útiles en sus primeros pasos en el maravilloso mundo del Código Abierto y el Software Libre.

[Actualizado el 19 de Septiembre de 2017]

Seg-Informatica-y-Redes-16

Instalar la última versión de LibreOffice

Por lo general, la versión incluida en los repos suele estar desactualizada. No se trata de un mero capricho, sino de contar con los últimos desarrollos en materia de interoperabilidad y soporte de pseudo estándares.

Así que para asegurarnos de tener instalada la última disponible agregamos el PPA oficial

# add-apt-repository ppa:libreoffice/ppa

Luego actualizamos los indices

# apt-get update

y actualizamos la versión instalada

# apt-get dist-upgrade
 

Sustituir Arial, Calibri, Cambria, Courier y Times New Roman por fuentes libres

No vale la pena empeñarse en utilizar fuentes sujetas a Copyright cuando tenemos alternativas válidas que son libres para su uso.

Así pues, ¿cuáles son las fuentes equivalentes de Arial, Calibri, Cambria, etc…? ¿Como reemplazarlas automáticamente en LibreOffice?

Para instalar estas fuentes y poder utilizarlas en Ubuntu y derivados, es necesario instalar algunos paquetes.

# apt-get install fonts-croscore fonts-crosextra-carlito fonts-crosextra-caladea ttf-bitstream-vera

El último paso consiste en configurar LibreOffice para sustituir de forma automática las fuentes comentadas por sus equivalentes. Para ello en Writer seleccionamos el menú Herramientas » Opciones » Tipos de letra y añadimos las fuentes que consideremos. Podemos elegir entre que este cambio sea solo en pantalla o bien que sea definitivo, dependiendo del uso definitivo que se vaya a hacer del archivo. En mi caso, los cambios son como se muestran en la siguiente imagen

Opciones-LibreOffice-Tipos-de-letra

Querés tener los datos compartidos con ese ‘otro sistema’

Como primer paso es necesario crear un punto de montaje donde se ‘cargaría’ la info de la partición compartida

# mkdir /DATOS

Luego hay que identificar el UUID de la partición de datos compartidos

# blkid

Vamos a ver el UUID de cada una de las particiones, por ejemplo

/dev/sda2: UUID="9E5C5C425C5C16FD" TYPE="ntfs"

Con esta info hay que modificar el fstab para montar la partición compartida

# nano /etc/fstab

En este punto hay dos opciones, utilizar el UUID o la etiqueta de la partición. Si se trata de una máquina particular con el UUID no habría inconvenientes.

Usando UUID la línea a agregar sería así

UUID=9E5C5C425C5C16FD /DATOS  ntfs-3g  defaults,windows_names,locale=es_AR.utf8  0 0

y si se usa la etiqueta, sería así

LABEL=DATOS /DATOS  ntfs-3g  defaults,windows_names,locale=es_AR.utf8  0 0

¿Y si la partición es FAT32?

UUID=9E5C5C425C5C16FD /DATOS vfat defaults,umask=0,errors=remount-ro 0 1
LABEL=DATOS /DATOS vfat defaults,umask=0,errors=remount-ro 0 1

Como fstab es un archivo que se lee al inicio del sistema, ¿sería necesario reiniciar el equipo para que la partición sea montada? Claro que no, solo basta con indicarle al sistema que vuelva a leer el archivo.

# mount -a

El siguiente paso es indicar al sistema que utilice las carpetas de esa partición. Para ello primero hay que eliminar las que están.

Esto hay que hacerlo como usuario normal.

$ cd /home/usuario
$ rm -rf Escritorio Descargas Documentos Imágenes Música Vídeos

Por último hay que crear los enlaces simbólicos a las carpetas de la partición compartida

$ ln -s "/DATOS/Escritorio/" Escritorio
$ ln -s "/DATOS/Descargas/" Descargas
$ ln -s "/DATOS/Documentos/" Documentos
$ ln -s "/DATOS/Imágenes/" Imágenes
$ ln -s "/DATOS/Música/" Música
$ ln -s "/DATOS/Vídeos/" Vídeos

Por supuesto que también hay que enseñar al otro sistema donde guardar las cosas, lo ideal es eliminar cualquier referencia a las ubicaciones predeterminadas y apuntar todo a la partición compartida.

Escondiendo particiones

Para evitar que el usuario ‘inquieto’ rompa algo y después no lo funcione el otro sistema, conviene esconder la partición de sistema de modo que no aparezca en el navegador de archivos. Para ello creamos una regla

# nano /etc/udev/rules.d/99-hide-disks.rules

donde agregamos

KERNEL=="sda1", ENV{UDISKS_IGNORE}=1

Podemos lograr el mismo cometido, pero haciendo referencia a la etiqueta de la partición

SUBSYSTEM=="block", ENV{ID_FS_LABEL}=="DATOS", ENV{UDISKS_IGNORE}=1

Guardamos los cambios, salimos del editor y, como estamos trabajando en un sistema como la gente, simplemente recargamos las reglas

# udevadm control --reload-rules

Escondiendo ciertos archivos

Algo particularmente molesto al acceder a un directorio compartido con ‘otro sistema’ son los archivos desktop.ini ó thumbs.db que aparecen desperdigados por todo el sistema. Y, particularmente en el Escritorio, los .lnk

En el directorio donde están aquellos archivos que queremos ocultar creamos un archivo nuevo, y colocamos todos los nombres de los archivos que no queremos que se vean dentro de él.

$ nano /DATOS/.hidden

y agregamos, por ejemplo:

$RECYCLE.BIN
System Volume Information
desktop.ini
Thumbs.db

Tiene que ir el nombre completo de cada archivo / directorio

Si el directorio con los archivos a ocultar fuera el Escritorio, la cosa sería más o menos así

$ nano /DATOS/Escritorio/.hidden

con un contenido similar a este

Acceso directo... .lnk
desktop.ini
Thumbs.db

Mmm, pero ¿hay que hacer un .hidden por directorio? Pues sí. Pero nuevamente aprovechamos la herramienta que tenemos en la punta de los dedos y, jugando un poco, podemos utilizar este comando para acelerar el proceso

$ for i in *.ini; do echo "$i"; done > .hidden

En este caso se buscan todos los archivos con extensión ini del directorio donde nos encontremos y son agregados al archivo .hidden

Publicado en Miniguías Etiquetado con: , , ,

Liberado uGet 2.0 con más características – Cómo instalarlo

uGet, la versión GUI de la popular utilidad de descarga wget ve una nueva versión tras un largo ciclo de desarrollo, numerosas correcciones y cambios. Existe también una versión para Android.

uGet

Características destacadas de uGet

    • Cola de descarga
    • Reanudar descargas
    • Descargas por lotes
    • Creación automática de carpetas
    • Monitoreo del portapapeles
    • FTP integrado
    • Soporte para HTTP, HTTPS, FTP, BitTorrent
    • Administración de Archivo y Categoría
    • Soporte de servidores proxy
    • Notificación en la bandeja del sistema

Descarga e instalaciones

Ubuntu, Debian, elementary, Mint

uGet 2.0 stable se puede encontrar en este ppa. Ejecuta los siguientes comandos en una terminal.

sudo add-apt-repository ppa:plushuang-tw/uget-stable sudo apt-get update sudo apt-get install uget

Arch

 sudo pacman -S uget

Fedora

 sudo yum install uget

Ejecución

Basta con escribir ‘uget’ en dash y hacer clic en el icono del lanzador verde.
O, ir a Aplicaciones » Internet » uGet.

 

/www.debugpoint.com

Publicado en Miniguías Etiquetado con:

Cómo transmitir contenido desde un sistema Linux a Chromecast

Chromecast es uno de los dispositivos más utilizados en mi hogar. Después de usarlo durante más de un año, creo que ya no hay un mercado para al llamada “TV inteligente”. Dispositivos de bajo costo como Chromecast pueden convertir cualquier televisor con HDMI en un televisor inteligente con inmensas posibilidades de ampliar sus características.

por Swapnil Bhartiya

Chromecast dongle

“Chromecast dongle” de EricaJoy – Flickr: Chromecast. Licencia CC BY-SA 2.0 via Wikimedia Commons.

chromecast app login

Imagen 1: ES File Manager en Android se conectará a tu servidor Samba.

Google sigue añadiendo nuevas características a Chromecast, a excepción de una muy necesaria: soporte nativo para la reproducción de contenido local. No hay manera sencilla de transmitir contenido desde tu teléfono inteligente o escritorio a Chromecast. Voy a ser honesto, hay algunas aplicaciones de Chrome que pueden reproducir vídeos almacenados en el equipo, pero ninguno ofrece una solución deseable. Sin embargo, nada es imposible para un usuario de Linux.

¿Cuál es el objetivo? El Chromecast está conectado a la televisión en la sala de estar, mientras que mis computadoras y discos duros están en mi oficina. Hay tres puertas entre estas dos habitaciones y no quiero ir y venir entre la sala de estar y la oficina para reproducir películas. Quiero el control esté en mis manos, mientras estoy en el sofá. Los datos permanecen en mis PC y puedo usar mis dispositivos Android para transmitir contenido a Chromecast, sin tener que levantarme. ¡Soy perezoso!

Bueno, eso es exactamente lo que he hecho. He creado un servidor de archivos local en mi máquina Linux, lo que me permite acceder a películas, música e imágenes desde cualquier dispositivo a través de la red local. Así uso una aplicación para Android que funciona como un mando a distancia para acceder y transmitir estos archivos al Chromecast. Y te mostraré cómo hacer esto, también.

Empecemos. Primero lo primero. Vamos a hacer nuestros datos accesible a través de la red local mediante un servidor Samba. Hay diferentes formas de instalación y configuración de Samba en diferentes distribuciones. Ya que utilizo openSUSE, Arch Linux y Kubuntu en mi PC, en este tutorial me centraré en las familias de openSUSE y Ubuntu (usuarios de Arch pueden referirse a la wiki oficial).

Instalar el servidor Samba

Lo más probable es que Samba ya se encuentre instalado en tu sistema; en ese caso, omite esta sección y avanza a la sección ‘Instalar administrador de archivos’

Paso #1: Instalar Samba

openSUSE:

 $ sudo zypper in samba

Kubuntu/Ubuntu family:

 $ sudo apt-get install samba
selección de archivos en chromecast

Imagen 2: Una vez conectado a Samba, abre el directorio de red donde se guardan tus archivos y selecciona el archivo que quieres reproducir en Chromecast.

Paso #2: Ahora tenemos que añadir un usuario a un grupo de Samba para darle los permisos deseados para acceder a los datos compartidos. Como no permito que el acceso de invitados a mi servidor de archivos realmente no me molesto con la creación de un usuario independiente. En este tutorial usamos el usuario del sistema para samba.

openSUSE:

Tenemos que crear un grupo de Samba en openSUSE y agregar el usuario a ese grupo.

$ sudo groupadd smbgroup
$ sudo usermod -a -G smbgroup nombre_de_usuario
$ sudo smbpasswd -a nombre_de_usuario

Ubuntu/Kubuntu:

$ sudo smbpasswd -a nombre_de_usuario

Paso #3 Ahora tenemos que editar los archivos de configuración de Samba para indicarle qué directorios son compartidos. Este paso es el mismo para todas las distribuciones:

$ sudo nano /etc/samba/smb.conf

En este archivo, dejar toda la sección [global] intacta y comenta todo debajo de ella. Justo después del final de la sección [global] añadir unas líneas con el siguiente patrón:

[4 TB] -> El nombre del directorio compartido
path = /media/4tb/ -> La ruta del directorio compartido 
read only = No -> Asegura que no es de sólo lectura
navegable = yes -> Asegura que las subcarpetas del directorio son navegables
grabable = yes -> Asegura que el usuario puede escribir en él desde el dispositivo conectado en red
valid users = swapnil -> El usuario del sistema

En mi caso es algo como esto:

[4TB]
path = /media/4tb/
read only = No
browsable = yes
writeable = yes
valid users = swapnil

Añadir una nueva sección para cada directorio que deseamos compartir en la red.

Nota: Ese directorio debe tener permisos 0777, de lo contrario al intentar acceder solo recibiremos un mensaje de error.

$ sudo chmod -R 0777 /media/4tb/

Paso #4 iniciar el servidor Samba.

Ahora tenemos que iniciar el servidor y también asegurarnos de que se activa al iniciar el sistema.

openSUSE:

Iniciamos los servicios de Samba::

systemctl start smb.service 
systemctl start nmb.service 
chromecast play video

Imagen 3: Selecciona el nombre de tu dispositivo cuando aparece y tu vídeo comenzará a reproducirse en el Chromecast.

Luego habilitamos los servicios para que arranquen al inicio del sistema:

systemctl enable smb.service 
systemctl enable nmb.service 

Ubuntu/Kubuntu:

sudo service nmbd restart
sudo service smbd restart

Ya deberías ser capaz de acceder a estos directorios en la red local.

Instalar administrador de archivos

Utilizo Android porque encuentro a iOS extremadamente restringido cuando se trata de hacer algo. No pude encontrar un buen explorador de archivos gratis en la App Store que puede competir con los que están disponibles en Android. ES File Manager es una de las mejores aplicaciones para nuestra configuración.

Descargar e instalar ES File Manager y su Plugin para Chromecast desde el Google Play Store.

Abre la aplicación y ve a la opción ‘red’ del menú.

Selecciona LAN y presiona ‘scan’.

Se detectará el servidor Samba; ingresar el nombre de usuario y la contraseña (el usuario del sistema donde está instalado Samba). (Ver imagen 1, arriba).

Una vez conectado, abre el directorio de red donde están guardados los archivos y seleccione el que quieras reproducir en Chromecast. (Imagen 2) Haz un pulsación larga en el archivo y se mostrará una casilla de verificación. Márcala y luego haz clic en la opción “más” en la parte inferior izquierda. Verás ‘Chromecast’ en el menú. Selecciona Chromecast y buscará los Chromecasts disponibles en la red. Selecciona el nombre de tu dispositivo cuando aparezca y el vídeo comenzará a reproducirse en el Chromecast. (Imagen 3)

Ahora puedes simplemente recostarte en el sofá y reproducir películas, música e imágenes desde la palma de tu mano.

 

www.linux.com

Publicado en Miniguías Etiquetado con:

Modificando la prioridad de paquetes APT

Esta necesidad surge como consecuencia de intentar actualizar Mariadb en un Debian Wheezy y el hecho de que el paquete libmysqlclient18 de Wheezy para MySQL entra en conflicto con el que está incluido en los repositorios de Mariadb.

El paquete provisto por Maria debería tener una “prioridad” más alta pero si ambos están “empatados” el sistema se decanta por la opción equivocada, esto puede ser verificado de esta manera:

# apt-cache policy libmysqlclient18
 libmysqlclient18:
 Installed: 5.5.24+dfsg-9
 Candidate: 5.5.24+dfsg-9
 Version table:
 5.5.28+dfsg-1 0
 996 http://ftp2.fr.debian.org/debian/ sid/main amd64 Packages
 5.5.28-mariadb1~wheezy 0
 500 http://mirror.jmu.edu/mariadb/repo/5.5/debian/
 wheezy/main amd64 Packages
 *** 5.5.24+dfsg-9 0
 999 http://cdn.debian.net/debian/ wheezy/main amd64 Packages
 100 /var/lib/dpkg/status

El candidato debería ser 5.5.28-mariadb1~wheezy en ese caso, se puede marcar el paquete Mariadb con una prioridad más alta pero esto debería ser corregido para que no sea necesario forzar las prioridades de los paquetes.

Esta es una solución rápida (no olviden ajustar el repo de Maria por el que están usando) :

#echo -e "Package: libmysqlclient18\nPin: origin mirror.jmu.edu\nPin-Priority: 1000" > /etc/apt/preferences.d/mariadb-mysqlclient18

Luego se puede verificar con “apt-cache policy libmysqlclient18” que el paquete candidato es el correcto esta vez y la instalación ahora debería funcionar correctamente.

Base de Conocimiento de mariadb.com

Publicado en Miniguías Etiquetado con: , , ,

Error al actualizar a la última versión de Moodle

Esta mañana me ví ante la necesidad de actualizar una “antigua” instalación de Moodle de la versión 2.0.2 a la última estable, que en este momento es la 2.7+. Cumplidos todos los requerimientos y habiendo hecho los resguardos me encontré ante un error que de no haberlo podido solucionar me hubiera dejado estancado a mitad de camino, con la plataforma inusable.

El mensaje de error era similar a este:

No se puede encontrar el componente.
Más información sobre este error

Debug info: es_ar
Error code: cannotfindcomponent

Stack trace:
    line 785 of /lib/componentlib.class.php: lang_installer_exception thrown
    line 640 of /lib/componentlib.class.php: call to lang_installer->install_language_pack()
    line 45 of /admin/tool/langimport/lib.php: call to lang_installer->run()
    line 1451 of /lib/upgradelib.php: call to tool_langimport_preupgrade_update()
    line 1527 of /lib/upgradelib.php: call to upgrade_language_pack()
    line 338 of /admin/index.php: call to upgrade_core()

Al intentar omitirlo la plataforma me redirigía a la página de actualización, con lo cual tampoco podía acceder al panel de administración.

En este punto es necesario aclarar que el idioma que se actualiza en los upgrades de Moodle es el que está en uso por el usuario administrador encargado de tal actualización. Por ello, lo primero que hay que hacer es intentar cambiar dicho idioma.

Cuando la página con el mensaje de actualización es mostrada (…/admin.index.php), simplemente añadir “?lang=es” debería ser suficiente para permitir a que el proceso de actualización continué de manera normal.

https://docs.moodle.org/

Publicado en Miniguías Etiquetado con:

Compresión de PDFs usando Ghostscript bajo Linux

Me encontré ante la necesidad de comprimir archivos PDF que incluían imágenes escaneadas, ya que esto hacía que su tamaño fuera innecesariamente grande. No era necesario contar con imágenes de alta resolución, bastaba con poder visualizarlas en pantalla e imprimirlas en una impresora convencional.

La magia de Ghostscript

Googleando los términos “compresión pdf” aparecieron varias opciones en linea para subir y comprimir los archivos, pero teniendo en cuenta que utilizo una computadora con Linux y no confío en ninguno de estos proveedores desconocidos opté por utilizar Ghostscript en su lugar. El siguiente comando redujo un PDF de 7,31MB a 674KB en alrededor de un segundo.

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=salida.pdf entrada.pdf
Del manual de Ghostscript podemos ver que existen varias calidades de donde escoger:

  • /screen – baja resolución similar a la opción “Optimizado para pantalla” de Acrobat Distiller.
  • /ebook – resolución media similar a la opción “eBook” de Acrobat Distiller.
  • /printer – similar a la opción “Optimizado para impresión” de Acrobat Distiller.
  • /prepress – similar a la opción “Optimizado para preimpresión” de Acrobat Distiller.
  • /default – pretende ser utilizable en una amplia variedad de usos, posiblemente a costa de un archivo de mayor tamaño.

Facilitando las cosas con BASH

#!/bin/sh

gs    -q -dNOPAUSE -dBATCH -dSAFER \
-sDEVICE=pdfwrite \
-dCompatibilityLevel=1.3 \
-dPDFSETTINGS=/ebook \
-dEmbedAllFonts=true \
-dSubsetFonts=true \
-dColorImageDownsampleType=/Bicubic \
-dColorImageResolution=150 \
-dGrayImageDownsampleType=/Bicubic \
-dGrayImageResolution=150 \
-dMonoImageDownsampleType=/Bicubic \
-dMonoImageResolution=150 \
-sOutputFile=
$1-comprimido.pdf \
$1

Guardamos esta porción de código y le asignamos permisos de ejecución [ej. en una terminal ingresamos: nano comprimirpdf; pegamos el código anterior, guardamos (Ctrl+O) y salimos (Ctrl+X), lo hacemos ejecutable (chmode u+x comprimirpdf)] y luego escribimos: ./comprimirpdf archivo.pdf y obtendremos un archivo llamado archivo-comprimido.pdf con una versión comprimida de archivo.pdf.

 

Referencias |

Publicado en Miniguías Etiquetado con: ,

Clonando de mayor a menor

No voy a arrancar hablando de la flexibilidad que nos brinda el Software Libre porque no estaría diciendo nada nuevo, solo quiero dar cuenta de la solución utilizada para clonar el contenido de una partición más grande que la de destino.

El problema original planteaba la necesidad de evitar realizar una instalación por segunda vez, sobre todo teniendo en cuenta la minuciosidad que particularmente aplico a mi trabajo. Al tratarse el equipo de destino de un sistema con doble arranque, la posibilidad de igualar el tamaño de la partición de destino con la de origen queda descartada ya que al ‘otro sistema’ no le gustan ese tipo de cambios.

Así fue que recurrí a la red en busca de una alternativa que me permitiera llevar el contenido de una partición de sistema (GNU/Linux claro) a otra con un par de gigabytes menos.

#rsync -av --progress origen destino

Opciones

  • -a, preserva la fecha y hora, y los permisos de los archivos
  • -v, brinda información sobre que archivos están siendo transferidos y un breve resumen al final.
  • –progress, esta opción le dice a rsync que muestre información de progreso durante la transferencia. Así, un usuario aburrido, tendrá algo que mirar.

Una vez completada la copia solo resta restaurar el Grub con alguna de las alternativas disponibles:

Y listo, :-))

Publicado en Miniguías Etiquetado con: