Pass a file-like object to replace_pic

Added possibilitu to pass a file-like object to replace_pic
This commit is contained in:
Riccardo Gusmeroli 2017-10-06 08:05:02 +02:00 committed by GitHub
parent a322097223
commit 399d8d995c

View File

@ -214,14 +214,21 @@ class DocxTemplate(object):
def replace_pic(self,embedded_file,dst_file):
"""Replace embedded picture with original-name given by embedded_file.
(give only the file basename, not the full path)
The new picture is given by dst_file.
The new picture is given by dst_file (either a filename or a file-like
object)
Notes:
1) embedded_file and dst_file must have the same extension/format
in case dst_file is a file-like object, no check is done on
format compatibility
2) the aspect ratio will be the same as the replaced image
3) There is no need to keep the original file (this is not the case for replace_embedded and replace_media)
"""
if hasattr(dst_file,'read'):
# NOTE: file extension not checked
self.pic_to_replace[embedded_file]=dst_file.read()
else:
emp_path,emb_ext=os.path.splitext(embedded_file)
dst_path,dst_ext=os.path.splitext(dst_file)