Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert EMF/WMF files to PNG/JPG

I am receiving an form upload with a Word docx document. I got all the parsing done successfully. I have to then display that Word document on the web.

The problem I am running into at this moment is that I have embedded EMF files (that the PIL library recognizes as WMF format), and I cannot figure how to convert them to something that can be displayed on the web (arbitrarily chosen PNG).

The code is somewhat simple:

im = PIL.Image.open(StringIO.StringIO(data))
fmt = im.format
if (fmt == 'WMF'):
  fmt = 'PNG'
  output = StringIO.StringIO()
  im.save(output, format=fmt)
  data = output.getvalue()
  output.close()
return '''<img src="data:image/{0};base64,{1}" />'''.format(fmt, base64.encodestring(data))

The error i get is:

IOError: cannot find loader for this WMF file

These Word documents come from average user that may just have cut-and-paste images from the web or insert from file.

Is there a solution for me on a linux system?

Thanks.

EDIT:

To my defense, I tried to upload that document to google drive and the image is not displayed either. Maybe there are no simple solutions?

like image 962
Danosaure Avatar asked Dec 31 '12 16:12

Danosaure


1 Answers

pip install Pillow

from PIL import Image

Image.open("xxx.wmf").save("xxx.png")

like image 139
zhaozhi Avatar answered Sep 17 '22 15:09

zhaozhi