Dan*_*ure 7 python python-imaging-library
我收到带有Word docx文档的表单上传.我成功完成了所有解析.然后我必须在网上显示该Word文档.
我现在遇到的问题是我已经嵌入了EMF文件(PIL库识别为WMF格式),我无法想象如何将它们转换为可以在Web上显示的内容(任意选择的PNG).
代码有点简单:
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))
我得到的错误是:
IOError: cannot find loader for this WMF file
Run Code Online (Sandbox Code Playgroud)
这些Word文档来自普通用户,可能只是从Web上剪切粘贴图像或从文件插入.
在linux系统上有解决方案吗?
谢谢.
编辑:
为了我的辩护,我试图将该文档上传到谷歌驱动器,图像也不显示.也许没有简单的解决方案?
pip install Pillow
Run Code Online (Sandbox Code Playgroud)
from PIL import Image
Image.open("xxx.wmf").save("xxx.png")
Run Code Online (Sandbox Code Playgroud)
您可以使用libwmf将图像转换为 SVG,然后pyrsvg转换为 PNG (在另一个问题中描述)。
我还没有找到libwmf项目网站,但 Debian(和 Ubuntu)有libwmf-bin包含wmf2svg实用程序的软件包。
| 归档时间: |
|
| 查看次数: |
7060 次 |
| 最近记录: |