Visualize arquivos PDF extra grandes no Linux

1

Eu tenho um arquivo PDF de 18000 x 18000px que gero via matplotlib. Antes de imprimir, gostaria de pré-visualizá-lo, com pelo menos 20% de zoom. Infelizmente, nada que eu tentei até agora funciona:

    O
  • evince só irá abri-lo a um nível máximo de zoom de 1,3%. Isto é depois de ter aumentado o tamanho do cache (através do editor dconf) para ~ 500MB - aumentos adicionais (tentei até 8 GB) não melhoram o zoom máximo. Eu acredito que há algum outro gargalo que eu não conheço.
  • mupdf falha com malloc of array (153904 x 615616 bytes) failed (integer overflow)
  • O Inkscape ocupa toda a minha memória RAM (16 GB) e congela.

Como alternativa, tentei exportá-lo como um SVG e abri-lo com o inkscape, mas isso também preenche minha RAM e congela (mas faz isso mais lentamente).

Além disso, tentei dividir o arquivo em blocos complementares, sendo a primeira iteração:

pdfcrop --verbose --margins "10 10 10000 10000" --clip g.pdf out1.pdf

Isso foi tirado algumas horas agora, e não parece fazer muito progresso, pelo lado positivo, não está consumindo toda a minha memória RAM.

O Matplotlib também tem a capacidade de exportar PS - mas, devido ao tamanho maior do PS, suspeito que isso vá piorar ainda mais.

Você pode me ajudar a encontrar uma maneira de visualizar meu arquivo no Linux?

Caso você queira dar uma olhada no arquivo, aqui .

    
por TheChymera 17.09.2016 / 14:13

1 resposta

0

Como indicado nos comentários, a melhor solução até agora foi cortar o PDF em blocos PNG. O comando básico para fazer isso usando script fantasma é:

gs -o out.png -sDEVICE=pngalpha -g2000x2000 -dLastPage=1 -c "<</Install {-1000 -10000 translate}>> setpagedevice" -f in.pdf

Eu fui em frente e escrevi um script que pode levar o nome e a resolução do PDF e o tamanho do bloco como entradas, e produz blocos numerados. É bastante básico e assume que a imagem e os quadrados são quadrados. Você pode encontrá-lo no GitHub .

    
por 23.09.2016 / 01:51