python-openxml / python-docx

Create and modify Word documents with Python
MIT License
4.56k stars 1.12k forks source link

Add svg picture #651

Open kndidox opened 5 years ago

kndidox commented 5 years ago

Hi guys! Thanks for your great work! It seems that word has been providing support for svg for a couple of years now. I have tried adding an svg file using add_image but I get the following error message:

docx.image.exceptions.UnrecognizedImageError.

I was wondering if you were planning to add support to svgs in the near future. I also tried adding the svg by manipulating the xmls, but I could not make it work either. It was a little too complicated for me. Thanks again!!

scanny commented 5 years ago

I don't believe Word supports SVG natively. What I believe it does is translate the SVG to EMF (Windows Meta File/Extended Meta File) format and embed that. Since EMF is a vector format, it looks just like the SVG.

The problem is that there is no SVG to EMF translator available in Python, at least the last time I looked. So this functionality (which would also be desirable for python-pptx) is not feasible at the moment.

kndidox commented 5 years ago

Hi @scanny thanks for your quick answer.

I'm working in MS Word 2016, as you surely know you can add a svg picture. I have unzipped the Word document to see how they manipulate this kind of files, then i realize that the xml drawing node is very similar for a svg/png. and in the media folder the svg is saved as it without changes, and all the references in the relationship file are to the svg.

So (and this is my supposition) it is technically possible give support to this without convertions.

If i can help you in anything let me know.

billchen2k commented 4 years ago

I'm using Office 365 and I'm sure that Word supports svg format. Encountering the same issue, hope it can be fixed soon.

ftomassetti commented 4 years ago

Is this a duplicate of https://github.com/python-openxml/python-docx/issues/505 ?

ftomassetti commented 4 years ago

And of https://github.com/python-openxml/python-docx/issues/351

rgoubet commented 3 years ago

It would be really awesome if this could be done. Word (and other Office applications) now support SVG natively (they're now imported as editable vector images).

contang0 commented 3 years ago

Would love to see this feature as well.

michaelarfreed commented 5 months ago

Agree that I'd like to see this feature. I am deploying code that uses this library, so it is difficult for us to use a branch, Would love to see #1343 approved/merged.