From 07bf7a44aaa543e5f1c8900d43bfaa520889f18e Mon Sep 17 00:00:00 2001 From: Kamil Kerimov Date: Mon, 13 Jan 2025 17:08:46 +0500 Subject: [PATCH] Fix bug #72375 --- OdfFile/Reader/Format/draw_frame_docx.cpp | 9 +++++++++ OdfFile/Writer/Format/odf_drawing_context.cpp | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/OdfFile/Reader/Format/draw_frame_docx.cpp b/OdfFile/Reader/Format/draw_frame_docx.cpp index cdc27029ce2..6ed7cfef511 100644 --- a/OdfFile/Reader/Format/draw_frame_docx.cpp +++ b/OdfFile/Reader/Format/draw_frame_docx.cpp @@ -851,6 +851,15 @@ void common_draw_docx_convert(oox::docx_conversion_context & Context, union_comm drawing->styleHorizontalPos = graphicProperties->common_horizontal_pos_attlist_.style_horizontal_pos_; drawing->styleVerticalPos = graphicProperties->common_vertical_pos_attlist_.style_vertical_pos_; drawing->styleVerticalRel = graphicProperties->common_vertical_rel_attlist_.style_vertical_rel_; + + if (graphicProperties->style_mirror_) + { + bool flipV = graphicProperties->style_mirror_->find(L"vertical") != std::wstring::npos; + bool flipH = graphicProperties->style_mirror_->find(L"horizontal") != std::wstring::npos; + + drawing->additional.push_back(odf_reader::_property(L"flipV", flipV)); + drawing->additional.push_back(odf_reader::_property(L"flipH", flipH)); + } } if (!drawing->styleVerticalRel && anchor) { diff --git a/OdfFile/Writer/Format/odf_drawing_context.cpp b/OdfFile/Writer/Format/odf_drawing_context.cpp index 6545f162508..7ad2c05e59e 100644 --- a/OdfFile/Writer/Format/odf_drawing_context.cpp +++ b/OdfFile/Writer/Format/odf_drawing_context.cpp @@ -3325,6 +3325,13 @@ void odf_drawing_context::end_image() else impl_->current_graphic_properties->style_mirror_ = std::wstring(L"horizontal"); } + if (impl_->current_drawing_state_.flipV_) + { + if (impl_->current_graphic_properties->style_mirror_) + impl_->current_graphic_properties->style_mirror_ = *impl_->current_graphic_properties->style_mirror_ + std::wstring(L" vertical"); + else + impl_->current_graphic_properties->style_mirror_ = std::wstring(L"vertical"); + } end_element(); end_frame(); }