El otro día me surgió un problema bastante común, tenía un archivo PDF con los apuntes de clase. Hasta ahí todo normal, el problema era que el profesor le había añadido un fondo gris a cada página, lo que hacía que a la hora de imprimirlo gastase mucha tinta. Llegados a este punto empezamos a discutir sobre cómo quitar ese fondo tan molesto y salieron estos tres métodos:
Esta última idea fue bastante polémica, porque un PDF es un archivo cerrado, o no. Pues la respuesta es que es un formato que no es completamente binario y tiene una estructura marcada.
Para comprobar esto vamos a partir de un archivo PDF como el de la siguiente figura:
Ahora si lo abrimos con un bloc de notas (en mi caso utilizo siempre Notepad++):
Como podéis en esta imagen, que es una captura de la parte superior de un PDF, hay dos tipos de contenido. El que tenemos en texto plano, que es el que vamos a modificar y el que está en binario (los símbolos y letras raras).
Si nos fijamos con un poco de profundidad vemos que el esquema es poner un número obj y una etiqueta de finalización del objeto (endobj). Siguiendo con el estudio del documento vemos que hay 3 objetos, curiosos:
Llegados a este punto lo que podemos hacer es utilizar la clásica técnica de prueba y error, e ir realizando cambios en cada uno de esos objetos y ver que resultado tienen en el PDF.
En este caso concreto con eliminar del objeto 8 la imagen, somos capaces de eliminar el fondo de todo el documento:
Obteniendo el siguiente resultado:
Hoy queremos hablaros de Docker un proyecto que cada día es más usado, porque permite…
Cada vez estamos más acostumbrados a usar código para generar la infraestructura (IaC), documentar nuestro…
Uno de los problemas que se presentan con una mayor frecuencia hoy en día, es…
Uno de los problemas que solemos tener los programadores, es que nos gusta estar a…
Docker es una de las herramientas más usadas por los desarrolladores, sin embargo, usarlo en…
Como seguramente sabrás el uso de JavaScript ha crecido exponencialmente en los últimos tiempos, sin…