Melhor maneira de inserir figuras de alta qualidade no MS Word

5

Eu preciso de uma maneira de inserir figuras PDF de alta qualidade no Word sem que elas distorçam.

As figuras são principalmente gráficos científicos gerados através de Python e Matplotlib. O principal problema é que os rótulos de texto nos gráficos não são processados corretamente.

Eu sei que você pode inserir PDFs como objetos e arquivos EPS como imagens, mas esses números são exibidos muito mal no Word.

Meu fluxo de trabalho atual é, portanto, exportar os números como arquivos PNG em 300 DPI usando o Inkscape. No entanto, a qualidade da figura ainda não é satisfatória e, quando aumento o DPI, não há aumento aparente na qualidade.

Alguém sabe de uma boa maneira de inserir gráficos de alta qualidade no Word?

    
por Jonny 27.01.2016 / 09:03

2 respostas

3

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 .

    
por 27.01.2016 / 12:17
1

Em maio de 2018, o Microsoft Word na edição do Office 365 fez duas alterações que alteraram a resposta a essa pergunta:

Isso significa que a melhor maneira de lidar com gráficos de alta qualidade é criar uma figura em Matplotlib que tenha o tamanho correto (usando plt.figure(figsize=(width_in_inches, height_in_inches) ) e, em seguida, exportar a figura com plt.savefig('filename.svg') . Você pode inserir esse arquivo diretamente no Word e ele será renderizado corretamente, mesmo ao converter para PDF.

Este vídeo mostra todo o processo e compara os formatos.

    
por 08.06.2018 / 15:04