summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--filter/source/graphic/GraphicExportFilter.cxx5
-rw-r--r--include/svtools/DocumentToGraphicRenderer.hxx3
-rw-r--r--svtools/source/filter/DocumentToGraphicRenderer.cxx9
3 files changed, 14 insertions, 3 deletions
diff --git a/filter/source/graphic/GraphicExportFilter.cxx b/filter/source/graphic/GraphicExportFilter.cxx
index 5797013fe013..678479e8a996 100644
--- a/filter/source/graphic/GraphicExportFilter.cxx
+++ b/filter/source/graphic/GraphicExportFilter.cxx
@@ -112,7 +112,10 @@ sal_Bool SAL_CALL GraphicExportFilter::filter( const Sequence<PropertyValue>& rD
Size aTargetSizePixel(mTargetWidth, mTargetHeight);
- Graphic aGraphic = aRenderer.renderToGraphic( aCurrentPage, aDocumentSizePixel, aTargetSizePixel );
+ if (mTargetWidth == 0 || mTargetHeight == 0)
+ aTargetSizePixel = aDocumentSizePixel;
+
+ Graphic aGraphic = aRenderer.renderToGraphic(aCurrentPage, aDocumentSizePixel, aTargetSizePixel, COL_WHITE);
GraphicFilter& rFilter = GraphicFilter::GetGraphicFilter();
diff --git a/include/svtools/DocumentToGraphicRenderer.hxx b/include/svtools/DocumentToGraphicRenderer.hxx
index 68cdf2a46425..09de00ea7b06 100644
--- a/include/svtools/DocumentToGraphicRenderer.hxx
+++ b/include/svtools/DocumentToGraphicRenderer.hxx
@@ -49,7 +49,8 @@ public:
Size getDocumentSizeIn100mm( sal_Int32 aCurrentPage );
- Graphic renderToGraphic(sal_Int32 aCurrentPage, Size aDocumentSizePixel, Size aTargetSizePixel);
+ Graphic renderToGraphic(sal_Int32 aCurrentPage, Size aDocumentSizePixel,
+ Size aTargetSizePixel, Color aPageColor = COL_TRANSPARENT);
};
#endif
diff --git a/svtools/source/filter/DocumentToGraphicRenderer.cxx b/svtools/source/filter/DocumentToGraphicRenderer.cxx
index d410f4c7db34..e33a94ec416e 100644
--- a/svtools/source/filter/DocumentToGraphicRenderer.cxx
+++ b/svtools/source/filter/DocumentToGraphicRenderer.cxx
@@ -94,7 +94,8 @@ Size DocumentToGraphicRenderer::getDocumentSizeIn100mm(sal_Int32 aCurrentPage)
Graphic DocumentToGraphicRenderer::renderToGraphic(
sal_Int32 aCurrentPage,
Size aDocumentSizePixel,
- Size aTargetSizePixel)
+ Size aTargetSizePixel,
+ Color aPageColor)
{
if (!mxModel.is() || !mxController.is() || !mxRenderable.is())
@@ -127,6 +128,12 @@ Graphic DocumentToGraphicRenderer::renderToGraphic(
aMtf.Record( pOutputDev );
+ if (aPageColor != Color(COL_TRANSPARENT))
+ {
+ pOutputDev->SetBackground(Wallpaper(aPageColor));
+ pOutputDev->Erase();
+ }
+
uno::Any aSelection;
aSelection <<= mxDocument;
mxRenderable->render(aCurrentPage - 1, aSelection, renderProps );