
Tengo un archivo PDF de 18000x18000px que genero a través de matplotlib. Antes de imprimir me gustaría obtener una vista previa, al menos con un zoom del 20%. Lamentablemente, nada de lo que he probado hasta ahora funciona:
- evince solo lo abrirá con un nivel de zoom máximo del 1,3%. Esto es después de haber aumentado el tamaño de la caché (a través del editor dconf) a ~500 MB; aumentos adicionales (he probado hasta 8 GB) no mejoran el zoom máximo. Creo que hay algún otro obstáculo que desconozco.
- mupdf falla con
malloc of array (153904 x 615616 bytes) failed (integer overflow)
- Inkscape simplemente ocupa toda mi RAM (16 GB) y luego se congela.
Alternativamente, intenté exportarlo como SVG y abrirlo con Inkscape, pero eso también llena mi RAM y luego se congela (pero lo hace más lentamente).
Además, intenté dividir el archivo en mosaicos complementarios, siendo la primera iteración:
pdfcrop --verbose --margins "10 10 10000 10000" --clip g.pdf out1.pdf
Esto se tomó hace unas horas y no parece progresar mucho; en el lado positivo, no está consumiendo toda mi RAM.
Matplotlib también tiene la capacidad de exportar PS, pero dado el mayor tamaño de PS, sospecho que sería aún peor.
¿Pueden ayudarme a encontrar una manera de obtener una vista previa de mi archivo en Linux?
En caso de que quieras probar el archivo, puedes encontrarlo.aquí.
Respuesta1
Como se indica en los comentarios, la mejor solución hasta el momento fue recortar el PDF en mosaicos PNG. El comando básico para hacerlo usando un script fantasma es:
gs -o out.png -sDEVICE=pngalpha -g2000x2000 -dLastPage=1 -c "<</Install {-1000 -10000 translate}>> setpagedevice" -f in.pdf
Seguí adelante y escribí un script que puede tomar el nombre y la resolución del PDF y el tamaño del mosaico como entradas y generar mosaicos numerados. Es bastante básico y asume que la imagen y los mosaicos son cuadrados. Puedes encontrarloen GitHub.