diff options
Diffstat (limited to 'filter/source')
-rw-r--r-- | filter/source/msfilter/escherex.cxx | 13 | ||||
-rw-r--r-- | filter/source/msfilter/msdffimp.cxx | 14 |
2 files changed, 20 insertions, 7 deletions
diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx index 6bd7638a8cc9..b5951b441f9c 100644 --- a/filter/source/msfilter/escherex.cxx +++ b/filter/source/msfilter/escherex.cxx @@ -1255,17 +1255,20 @@ void EscherPropertyContainer::CreateShapeProperties( const uno::Reference<drawin uno::Reference< beans::XPropertySet > aXPropSet( rXShape, uno::UNO_QUERY ); if ( aXPropSet.is() ) { - bool bVal = false; + bool bVisible = false; + bool bPrintable = false; uno::Any aAny; sal_uInt32 nShapeAttr = 0; - if (EscherPropertyValueHelper::GetPropertyValue(aAny, aXPropSet, "Visible", true) && (aAny >>= bVal)) + if (EscherPropertyValueHelper::GetPropertyValue(aAny, aXPropSet, "Visible", true) && (aAny >>= bVisible)) { - if ( !bVal ) + if ( !bVisible ) nShapeAttr |= 0x20002; // set fHidden = true } - if (EscherPropertyValueHelper::GetPropertyValue(aAny, aXPropSet, "Printable", true) && (aAny >>= bVal)) + // This property (fPrint) isn't used in Excel anymore, leaving it for legacy reasons + // one change, based on XLSX: hidden implies not printed, let's not export the fPrint property in that case + if (bVisible && EscherPropertyValueHelper::GetPropertyValue(aAny, aXPropSet, "Printable", true) && (aAny >>= bPrintable)) { - if ( !bVal ) + if ( !bPrintable ) nShapeAttr |= 0x10000; // set fPrint = false; } if ( nShapeAttr ) diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx index 9084e1b42638..0938905edb52 100644 --- a/filter/source/msfilter/msdffimp.cxx +++ b/filter/source/msfilter/msdffimp.cxx @@ -4864,8 +4864,18 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r if ( pRet ) { sal_Int32 nGroupProperties( GetPropertyValue( DFF_Prop_fPrint, 0 ) ); - pRet->SetVisible( ( nGroupProperties & 2 ) == 0 ); - pRet->SetPrintable( ( nGroupProperties & 1 ) != 0 ); + const bool bVisible = ( ( nGroupProperties & 2 ) == 0 ); + pRet->SetVisible( bVisible ); + // In Excel hidden means not printed + if ( !bVisible ) + { + pRet->SetPrintable( false ); + } + else + { + // This property isn't used in Excel anymore, leaving it for legacy reasons + pRet->SetPrintable( ( nGroupProperties & 1 ) != 0 ); + } } //Import alt text as description |