diff options
-rw-r--r-- | vcl/source/gdi/pdfwriter_impl.cxx | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx index 66baa21c2729..d8fb926be439 100644 --- a/vcl/source/gdi/pdfwriter_impl.cxx +++ b/vcl/source/gdi/pdfwriter_impl.cxx @@ -11956,14 +11956,14 @@ void PDFWriterImpl::updateGraphicsState(Mode const mode) if( m_aCurrentPDFState.m_bClipRegion != rNewState.m_bClipRegion || ( rNewState.m_bClipRegion && m_aCurrentPDFState.m_aClipRegion != rNewState.m_aClipRegion ) ) { - if( m_aCurrentPDFState.m_bClipRegion && m_aCurrentPDFState.m_aClipRegion.count() ) + if( m_aCurrentPDFState.m_bClipRegion ) { aLine.append( "Q " ); // invalidate everything but the clip region m_aCurrentPDFState = GraphicsState(); rNewState.m_nUpdateFlags = sal::static_int_cast<sal_uInt16>(~GraphicsState::updateClipRegion); } - if( rNewState.m_bClipRegion && rNewState.m_aClipRegion.count() ) + if( rNewState.m_bClipRegion ) { // clip region is always stored in private PDF mapmode MapMode aNewMapMode = rNewState.m_aMapMode; @@ -11972,7 +11972,10 @@ void PDFWriterImpl::updateGraphicsState(Mode const mode) m_aCurrentPDFState.m_aMapMode = rNewState.m_aMapMode; aLine.append( "q " ); - m_aPages.back().appendPolyPolygon( rNewState.m_aClipRegion, aLine ); + if( rNewState.m_aClipRegion.count() ) + m_aPages.back().appendPolyPolygon( rNewState.m_aClipRegion, aLine ); + else + aLine.append( "0 0 m h " ); // NULL clip, i.e. nothing visible aLine.append( "W* n\n" ); rNewState.m_aMapMode = aNewMapMode; getReferenceDevice()->SetMapMode( rNewState.m_aMapMode ); |