summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sdext/source/pdfimport/tree/drawtreevisiting.cxx21
-rw-r--r--sdext/source/pdfimport/tree/writertreevisiting.cxx21
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