diff options
-rw-r--r-- | filter/source/graphic/GraphicExportFilter.cxx | 5 | ||||
-rw-r--r-- | include/svtools/DocumentToGraphicRenderer.hxx | 3 | ||||
-rw-r--r-- | svtools/source/filter/DocumentToGraphicRenderer.cxx | 9 |
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 ); |