diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx index 58dd2b4266f6..913eaac432b0 100644 --- a/writerfilter/source/dmapper/PropertyMap.cxx +++ b/writerfilter/source/dmapper/PropertyMap.cxx @@ -501,17 +501,20 @@ void SectionPropertyMap::ApplyBorderToPageStyles( } if( m_nBorderDistances[nBorder] >= 0 ) { + sal_uInt32 nLineWidth = 0; + if (m_pBorderLines[nBorder]) + nLineWidth = m_pBorderLines[nBorder]->LineWidth; SetBorderDistance( xFirst, aMarginIds[nBorder], aBorderDistanceIds[nBorder], - m_nBorderDistances[nBorder], nOffsetFrom ); + m_nBorderDistances[nBorder], nOffsetFrom, nLineWidth ); if(xSecond.is()) SetBorderDistance( xSecond, aMarginIds[nBorder], aBorderDistanceIds[nBorder], - m_nBorderDistances[nBorder], nOffsetFrom ); + m_nBorderDistances[nBorder], nOffsetFrom, nLineWidth ); } } } void SectionPropertyMap::SetBorderDistance( uno::Reference< beans::XPropertySet > xStyle, - PropertyIds eMarginId, PropertyIds eDistId, sal_Int32 nDistance, sal_Int32 nOffsetFrom ) + PropertyIds eMarginId, PropertyIds eDistId, sal_Int32 nDistance, sal_Int32 nOffsetFrom, sal_uInt32 nLineWidth ) { PropertyNameSupplier& rPropNameSupplier = PropertyNameSupplier::GetPropertyNameSupplier(); @@ -523,8 +526,8 @@ void SectionPropertyMap::SetBorderDistance( uno::Reference< beans::XPropertySet sal_Int32 nMargin = 0; aMargin >>= nMargin; - // Change the margins with the border distance - xStyle->setPropertyValue( sMarginName, uno::makeAny( nDistance ) ); + // Change the margins with the ( border distance - line width ) + xStyle->setPropertyValue( sMarginName, uno::makeAny( nDistance - nLineWidth ) ); // Set the distance to ( Margin - distance ) nDist = nMargin - nDistance; diff --git a/writerfilter/source/dmapper/PropertyMap.hxx b/writerfilter/source/dmapper/PropertyMap.hxx index ba5e1ab90c42..b9a3d5d0ebb5 100644 --- a/writerfilter/source/dmapper/PropertyMap.hxx +++ b/writerfilter/source/dmapper/PropertyMap.hxx @@ -207,7 +207,7 @@ class SectionPropertyMap : public PropertyMap bool HasFooter( bool bFirstPage ) const; void SetBorderDistance( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xStyle, - PropertyIds eMarginId, PropertyIds eDistId, sal_Int32 nDistance, sal_Int32 nOffsetFrom ); + PropertyIds eMarginId, PropertyIds eDistId, sal_Int32 nDistance, sal_Int32 nOffsetFrom, sal_uInt32 nLineWidth ); public: explicit SectionPropertyMap(bool bIsFirstSection);