EMF / WMF para PNG de alta qualidade no Linux

Há muito tempo procuro como converter automaticamente várias imagens incluídas em um documento docx para PNG para serem importadas por meu webapp.

Se você tem tentado ou pretende encontrar uma solução, recomendo que leia o excelente artigo:

Conversão de lote de alta resolução grahpics EMZ / WMZ para PNG, também conhecido como “liberando seus gráficos”
por Hans Kwint: http://lxer.com/module/newswire/view/185924/

Mesmo usando os métodos descritos no artigo, é realmente difícil gerar uma conversão de alta qualidade no Linux.

Depois de muitos experimentos, consegui converter os arquivos WMF / EMF em alta resolução para PNG / JPG. Para aqueles que estão familiarizados com o unoconv, você deve saber que pode converter esses arquivos irritantes para PNG / JPG. Mas a qualidade é uma merda.

A solução que encontrei consiste em converter o WMF / EMF para PDF primeiro com o unoconv, e então terminar o trabalho com o Image Magick. Usando essa abordagem, a primeira conversão mantém a resolução da imagem original, portanto, você pode converter para PNG usando a resolução / qualidade original da imagem EMF / WMF.

Usando o Image Magick você pode remover as margens brancas que o unoconv adiciona ao converter para PNG diretamente ou para PDF. Você pode fazer isso usando o parâmetro -trim.

Exemplo:

unoconv -f pdf -o image10.pdf image10.wmf
convert
-density 300 -trim -bordercolor white -border 5 image10.pdf image10.png

Aqui, adiciono uma borda de 5 pixels para não cortar muito a imagem. A densidade é definida para 300, é claro que se a resolução da imagem original não for boa, isso esticará a imagem.

Espero que isso possa ser útil para alguém