From b3a19a0afc0ad9d0cb187ff412f1fe553f71579a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 20 Jun 2023 14:27:23 +0530 Subject: [PATCH] DOCX Output: Fix multiple SVG images in the input document causing all the SVG images in the output to be just one of the input images. Fixes #2024433 [Private bug](https://bugs.launchpad.net/calibre/+bug/2024433) Stupid python loop variable binding rules. --- src/calibre/ebooks/docx/writer/images.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/calibre/ebooks/docx/writer/images.py b/src/calibre/ebooks/docx/writer/images.py index d29a0d8a41..6345733c77 100644 --- a/src/calibre/ebooks/docx/writer/images.py +++ b/src/calibre/ebooks/docx/writer/images.py @@ -203,8 +203,12 @@ class ImagesManager: def serialize(self, images_map): for img in self.images.values(): images_map['word/' + img.fname] = partial(self.get_data, img.item) + + def get_svg_data(img): + return img.item.data_as_bytes_or_none + for img in self.svg_images.values(): - images_map['word/' + img.fname] = lambda: img.item.data_as_bytes_or_none + images_map['word/' + img.fname] = partial(get_svg_data, img) def get_data(self, item): try: