diff options
Diffstat (limited to 'vcl/source/gdi/pdfextoutdevdata.cxx')
-rw-r--r-- | vcl/source/gdi/pdfextoutdevdata.cxx | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/vcl/source/gdi/pdfextoutdevdata.cxx b/vcl/source/gdi/pdfextoutdevdata.cxx index 247176bb430e..f62fff043620 100644 --- a/vcl/source/gdi/pdfextoutdevdata.cxx +++ b/vcl/source/gdi/pdfextoutdevdata.cxx @@ -294,13 +294,18 @@ struct PageSyncData std::deque< PDFWriter::StructAttribute > mParaStructAttributes; std::deque< PDFWriter::StructAttributeValue > mParaStructAttributeValues; std::deque< Graphic > mGraphics; + Graphic* mpCurrentGraphic; std::deque< std::shared_ptr< PDFWriter::AnyWidget > > mControls; GlobalSyncData* mpGlobalData; bool mbGroupIgnoreGDIMtfActions; - explicit PageSyncData( GlobalSyncData* pGlobal ) : mbGroupIgnoreGDIMtfActions ( false ) { mpGlobalData = pGlobal; } + + explicit PageSyncData( GlobalSyncData* pGlobal ) + : mpCurrentGraphic ( nullptr ) + , mbGroupIgnoreGDIMtfActions ( false ) + { mpGlobalData = pGlobal; } void PushAction( const OutputDevice& rOutDev, const PDFExtOutDevDataSync::Action eAct ); bool PlaySyncPageAct( PDFWriter& rWriter, sal_uInt32& rCurGDIMtfAction, const PDFExtOutDevData& rOutDevData ); @@ -412,6 +417,7 @@ bool PageSyncData::PlaySyncPageAct( PDFWriter& rWriter, sal_uInt32& rCurGDIMtfAc mbGroupIgnoreGDIMtfActions = rOutDevData.HasAdequateCompression( rGraphic, mParaRects[0], mParaRects[1]); + mpCurrentGraphic = mbGroupIgnoreGDIMtfActions ? nullptr : &rGraphic; } break; } @@ -466,6 +472,10 @@ bool PageSyncData::PlaySyncPageAct( PDFWriter& rWriter, sal_uInt32& rCurGDIMtfAc } mbGroupIgnoreGDIMtfActions = false; } + else + { + mpCurrentGraphic = nullptr; + } } break; case PDFExtOutDevDataSync::CreateNamedDest: @@ -520,6 +530,11 @@ PDFExtOutDevData::~PDFExtOutDevData() delete mpGlobalSyncData; } +const Graphic* PDFExtOutDevData::GetCurrentGraphic() const +{ + return mpPageSyncData->mpCurrentGraphic; +} + void PDFExtOutDevData::SetDocumentLocale( const css::lang::Locale& rLoc ) { maDocLocale = rLoc; |