diff options
-rw-r--r-- | sdext/source/pdfimport/tree/drawtreevisiting.cxx | 21 | ||||
-rw-r--r-- | sdext/source/pdfimport/tree/writertreevisiting.cxx | 21 |
2 files changed, 40 insertions, 2 deletions
diff --git a/sdext/source/pdfimport/tree/drawtreevisiting.cxx b/sdext/source/pdfimport/tree/drawtreevisiting.cxx index 5aae54415800..2c02adde8874 100644 --- a/sdext/source/pdfimport/tree/drawtreevisiting.cxx +++ b/sdext/source/pdfimport/tree/drawtreevisiting.cxx @@ -817,10 +817,29 @@ void DrawXmlFinalizer::visit( PolyPolyElement& elem, const std::list< std::uniqu aGCProps[ "draw:stroke" ] = "none"; } + if (elem.FillImage != -1) + { + PropertyMap props; + // The image isn't actually in a prop, it's in an extra chunk inside. + StyleContainer::Style style("draw:fill-image"_ostr, std::move(props)); + style.Contents = m_rProcessor.getImages().asBase64EncodedString(elem.FillImage); + aGCProps[ "draw:fill-image-name" ] = + m_rStyleContainer.getStyleName( + m_rStyleContainer.getStyleId(style)); + + } + // TODO(F1): check whether stuff could be emulated by gradient/bitmap/hatch if( elem.Action & (PATH_FILL | PATH_EOFILL) ) { - aGCProps[ "draw:fill" ] = "solid"; + if (elem.FillImage == -1) + { + aGCProps[ "draw:fill" ] = "solid"; + } + else + { + aGCProps[ "draw:fill" ] = "bitmap"; + } aGCProps[ "draw:fill-color" ] = getColorString(rGC.FillColor); if (rGC.FillColor.Alpha != 1.0) aGCProps["draw:opacity"] = getPercentString(rGC.FillColor.Alpha * 100.0); diff --git a/sdext/source/pdfimport/tree/writertreevisiting.cxx b/sdext/source/pdfimport/tree/writertreevisiting.cxx index 9ecce8f48be4..746fc9e77eb2 100644 --- a/sdext/source/pdfimport/tree/writertreevisiting.cxx +++ b/sdext/source/pdfimport/tree/writertreevisiting.cxx @@ -995,10 +995,29 @@ void WriterXmlFinalizer::visit( PolyPolyElement& elem, const std::list< std::uni aGCProps[ "draw:stroke" ] = "none"; } + if (elem.FillImage != -1) + { + PropertyMap props; + // The image isn't actually in a prop, it's in an extra chunk inside. + StyleContainer::Style style("draw:fill-image"_ostr, std::move(props)); + style.Contents = m_rProcessor.getImages().asBase64EncodedString(elem.FillImage); + aGCProps[ "draw:fill-image-name" ] = + m_rStyleContainer.getStyleName( + m_rStyleContainer.getStyleId(style)); + + } + // TODO(F1): check whether stuff could be emulated by gradient/bitmap/hatch if( elem.Action & (PATH_FILL | PATH_EOFILL) ) { - aGCProps[ "draw:fill" ] = "solid"; + if (elem.FillImage == -1) + { + aGCProps[ "draw:fill" ] = "solid"; + } + else + { + aGCProps[ "draw:fill" ] = "bitmap"; + } aGCProps[ "draw:fill-color" ] = getColorString( rGC.FillColor ); } else |