A batalha sem fim do Word vs PDF ou Eps
Com imagens rasterizadas você tem que encontrar o seu compromisso entre definição e tamanho. Se você souber que o documento será impresso em 600 DPI, poderá decidir importar imagens com essa definição. Mas se amanhã você tiver uma impressora de maior definição, você deve começar de novo. Se você aumentar o DPI, seu documento aumentará o tamanho e você precisará de mais recursos para o sistema.
Se você puder trabalhar com uma imagem vetorial , não terá problemas relacionados à definição da imagem, mas poderá encontrar problemas relacionados à fonte instalada, ou poderá ter um arquivo maior no caso , por exemplo, você plota 1 bilhão de dados ...
Quando você precisar importar dentro de um arquivo, você pode:
-
Ir para a fonte : você pode substituir ou adicionar o formato (e eventualmente o tamanho) necessário diretamente no script que gerou o gráfico. Leia o site do matplotlib [ 1 ] . É melhor se você puder salvar em um formato de gráficos vetoriais [ 1b ] .
plt.savefig(pp, format='pdf') plt.savefig(pp, format='png') plt.savefig(pp, format='svg')
ou até mesmo
fig.savefig('test.pdf') fig.savefig('test.png')
-
Use imagemagick [ 2 ] ou < strong> Inkscape [ 2b ] ou gimp [ 2b ] para converter um pdf em um png (ou em outros formatos raster, tiff, jpg ...) ou em um svg (ou em outros vector formato gráfico).
Isso depende se for um PDF com gráfico vetorial [ 3 ] dentro ou não.
No primeiro caso, você deve encontrar alguns problemas de renderização ou de fonte, mas sem problemas de definição.
Neste último caso, você deve escolher uma densidade e as dimensões da imagem final.
Leia algo mais, por exemplo, sobre esta resposta [ 4 ] .
Você terminará de escrever algo semelhante a:convert file.pdf file.svg # If pdf with vector convert -density 600 file.pdf -resize 4961x7016 mypic.png # With fixed grid
Nota
Se o arquivo PDF foi criado com imagens Raster com uma definição específica, por exemplo 300 DPI, você não terá tanto sucesso com nenhum programa aumentando o DPI para 400 ou 600 ... :-)
Como regra geral (normalmente funciona), você pode assumir que em um PDF raster há a string /image
.
Então, no Linux, por exemplo, você pode executar grep
e contar as ocorrências dessa string:
grep -c -i "/image" *pdf
MyRasterPdf.pdf:3 # > 0 if raster pdf
MyVectorPdf.pdf:0 # = 0 if vector pdf
Por último, mas não menos importante, considere LaTex , talvez com uma GUI como texmaker .