read support for docx w:embedTrueTypeFonts/w:embedSystemFonts
No write support yet. Change-Id: Ia10239acc77cf9ebc4f511e30c007da36abf43cb
This commit is contained in:
@@ -249,6 +249,21 @@ published service Settings
|
|||||||
*/
|
*/
|
||||||
[optional, property] boolean AddExternalLeading;
|
[optional, property] boolean AddExternalLeading;
|
||||||
|
|
||||||
|
// Writer, maybe later others
|
||||||
|
/**
|
||||||
|
Whether to embed fonts used by the document (see e.g. handling
|
||||||
|
of OOXML embedRegular etc.)
|
||||||
|
@since LibreOffice 3.7
|
||||||
|
*/
|
||||||
|
[optional, property] boolean EmbedFonts;
|
||||||
|
// Writer, maybe later others
|
||||||
|
/**
|
||||||
|
Whether to embed also system fonts used by the document.
|
||||||
|
Does not have any effect if EmbedFonts is false.
|
||||||
|
@since LibreOffice 3.7
|
||||||
|
*/
|
||||||
|
[optional, property] boolean EmbedSystemFonts;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@@ -96,7 +96,9 @@ namespace com { namespace sun { namespace star { namespace i18n { struct Forbidd
|
|||||||
KERN_ASIAN_PUNCTUATION,
|
KERN_ASIAN_PUNCTUATION,
|
||||||
MATH_BASELINE_ALIGNMENT,
|
MATH_BASELINE_ALIGNMENT,
|
||||||
STYLES_NODEFAULT,
|
STYLES_NODEFAULT,
|
||||||
FLOATTABLE_NOMARGINS
|
FLOATTABLE_NOMARGINS,
|
||||||
|
EMBED_FONTS,
|
||||||
|
EMBED_SYSTEM_FONTS
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@@ -568,6 +568,8 @@ private:
|
|||||||
bool mbMathBaselineAlignment : 1; // TL 2010-10-29 #i972#
|
bool mbMathBaselineAlignment : 1; // TL 2010-10-29 #i972#
|
||||||
bool mbStylesNoDefault : 1;
|
bool mbStylesNoDefault : 1;
|
||||||
bool mbFloattableNomargins : 1; ///< If paragraph margins next to a floating table should be ignored.
|
bool mbFloattableNomargins : 1; ///< If paragraph margins next to a floating table should be ignored.
|
||||||
|
bool mEmbedFonts : 1; ///< Whether to embed fonts used by the document when saving.
|
||||||
|
bool mEmbedSystemFonts : 1; ///< Whether to embed also system fonts.
|
||||||
|
|
||||||
// non-ui-compatibility flags:
|
// non-ui-compatibility flags:
|
||||||
bool mbOldNumbering : 1;
|
bool mbOldNumbering : 1;
|
||||||
|
@@ -212,6 +212,8 @@ bool SwDoc::get(/*[in]*/ DocumentSettingId id) const
|
|||||||
case MATH_BASELINE_ALIGNMENT: return mbMathBaselineAlignment;
|
case MATH_BASELINE_ALIGNMENT: return mbMathBaselineAlignment;
|
||||||
case STYLES_NODEFAULT: return mbStylesNoDefault;
|
case STYLES_NODEFAULT: return mbStylesNoDefault;
|
||||||
case FLOATTABLE_NOMARGINS: return mbFloattableNomargins;
|
case FLOATTABLE_NOMARGINS: return mbFloattableNomargins;
|
||||||
|
case EMBED_FONTS: return mEmbedFonts;
|
||||||
|
case EMBED_SYSTEM_FONTS: return mEmbedSystemFonts;
|
||||||
default:
|
default:
|
||||||
OSL_FAIL("Invalid setting id");
|
OSL_FAIL("Invalid setting id");
|
||||||
}
|
}
|
||||||
@@ -391,6 +393,12 @@ void SwDoc::set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value)
|
|||||||
case FLOATTABLE_NOMARGINS:
|
case FLOATTABLE_NOMARGINS:
|
||||||
mbFloattableNomargins = value;
|
mbFloattableNomargins = value;
|
||||||
break;
|
break;
|
||||||
|
case EMBED_FONTS:
|
||||||
|
mEmbedFonts = value;
|
||||||
|
break;
|
||||||
|
case EMBED_SYSTEM_FONTS:
|
||||||
|
mEmbedSystemFonts = value;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
OSL_FAIL("Invalid setting id");
|
OSL_FAIL("Invalid setting id");
|
||||||
}
|
}
|
||||||
|
@@ -359,6 +359,8 @@ SwDoc::SwDoc()
|
|||||||
mbUnbreakableNumberings = false;
|
mbUnbreakableNumberings = false;
|
||||||
mbFloattableNomargins = false;
|
mbFloattableNomargins = false;
|
||||||
mbClippedPictures = false;
|
mbClippedPictures = false;
|
||||||
|
mEmbedFonts = false;
|
||||||
|
mEmbedSystemFonts = false;
|
||||||
|
|
||||||
//
|
//
|
||||||
// COMPATIBILITY FLAGS END
|
// COMPATIBILITY FLAGS END
|
||||||
|
@@ -128,7 +128,9 @@ enum SwDocumentSettingsPropertyHandles
|
|||||||
HANDLE_UNBREAKABLE_NUMBERINGS,
|
HANDLE_UNBREAKABLE_NUMBERINGS,
|
||||||
HANDLE_STYLES_NODEFAULT,
|
HANDLE_STYLES_NODEFAULT,
|
||||||
HANDLE_FLOATTABLE_NOMARGINS,
|
HANDLE_FLOATTABLE_NOMARGINS,
|
||||||
HANDLE_CLIPPED_PICTURES
|
HANDLE_CLIPPED_PICTURES,
|
||||||
|
HANDLE_EMBED_FONTS,
|
||||||
|
HANDLE_EMBED_SYSTEM_FONTS
|
||||||
};
|
};
|
||||||
|
|
||||||
MasterPropertySetInfo * lcl_createSettingsInfo()
|
MasterPropertySetInfo * lcl_createSettingsInfo()
|
||||||
@@ -194,6 +196,8 @@ MasterPropertySetInfo * lcl_createSettingsInfo()
|
|||||||
{ RTL_CONSTASCII_STRINGPARAM("StylesNoDefault"), HANDLE_STYLES_NODEFAULT, CPPUTYPE_BOOLEAN, 0, 0},
|
{ RTL_CONSTASCII_STRINGPARAM("StylesNoDefault"), HANDLE_STYLES_NODEFAULT, CPPUTYPE_BOOLEAN, 0, 0},
|
||||||
{ RTL_CONSTASCII_STRINGPARAM("FloattableNomargins"), HANDLE_FLOATTABLE_NOMARGINS, CPPUTYPE_BOOLEAN, 0, 0},
|
{ RTL_CONSTASCII_STRINGPARAM("FloattableNomargins"), HANDLE_FLOATTABLE_NOMARGINS, CPPUTYPE_BOOLEAN, 0, 0},
|
||||||
{ RTL_CONSTASCII_STRINGPARAM("ClippedPictures"), HANDLE_CLIPPED_PICTURES, CPPUTYPE_BOOLEAN, 0, 0},
|
{ RTL_CONSTASCII_STRINGPARAM("ClippedPictures"), HANDLE_CLIPPED_PICTURES, CPPUTYPE_BOOLEAN, 0, 0},
|
||||||
|
{ RTL_CONSTASCII_STRINGPARAM("EmbedFonts"), HANDLE_EMBED_FONTS, CPPUTYPE_BOOLEAN, 0, 0},
|
||||||
|
{ RTL_CONSTASCII_STRINGPARAM("EmbedSystemFonts"), HANDLE_EMBED_SYSTEM_FONTS, CPPUTYPE_BOOLEAN, 0, 0},
|
||||||
/*
|
/*
|
||||||
* As OS said, we don't have a view when we need to set this, so I have to
|
* As OS said, we don't have a view when we need to set this, so I have to
|
||||||
* find another solution before adding them to this property set - MTG
|
* find another solution before adding them to this property set - MTG
|
||||||
@@ -771,6 +775,17 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf
|
|||||||
mpDoc->set(IDocumentSettingAccess::CLIPPED_PICTURES, bTmp);
|
mpDoc->set(IDocumentSettingAccess::CLIPPED_PICTURES, bTmp);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case HANDLE_EMBED_FONTS:
|
||||||
|
{
|
||||||
|
sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
|
||||||
|
mpDoc->set(IDocumentSettingAccess::EMBED_FONTS, bTmp);
|
||||||
|
}
|
||||||
|
case HANDLE_EMBED_SYSTEM_FONTS:
|
||||||
|
{
|
||||||
|
sal_Bool bTmp = *(sal_Bool*)rValue.getValue();
|
||||||
|
mpDoc->set(IDocumentSettingAccess::EMBED_SYSTEM_FONTS, bTmp);
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw UnknownPropertyException();
|
throw UnknownPropertyException();
|
||||||
}
|
}
|
||||||
@@ -1161,6 +1176,17 @@ void SwXDocumentSettings::_getSingleValue( const comphelper::PropertyInfo & rInf
|
|||||||
rValue.setValue( &bTmp, ::getBooleanCppuType() );
|
rValue.setValue( &bTmp, ::getBooleanCppuType() );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case HANDLE_EMBED_FONTS:
|
||||||
|
{
|
||||||
|
sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::EMBED_FONTS );
|
||||||
|
rValue.setValue( &bTmp, ::getBooleanCppuType() );
|
||||||
|
}
|
||||||
|
case HANDLE_EMBED_SYSTEM_FONTS:
|
||||||
|
{
|
||||||
|
sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::EMBED_SYSTEM_FONTS );
|
||||||
|
rValue.setValue( &bTmp, ::getBooleanCppuType() );
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw UnknownPropertyException();
|
throw UnknownPropertyException();
|
||||||
}
|
}
|
||||||
|
@@ -3665,11 +3665,13 @@ void DomainMapper_Impl::ApplySettingsTable()
|
|||||||
xViewDataSupplier->setViewData(xIndexAccess);
|
xViewDataSupplier->setViewData(xIndexAccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uno::Reference< beans::XPropertySet > xSettings(m_xTextFactory->createInstance("com.sun.star.document.Settings"), uno::UNO_QUERY);
|
||||||
if (m_pSettingsTable->GetUsePrinterMetrics())
|
if (m_pSettingsTable->GetUsePrinterMetrics())
|
||||||
{
|
|
||||||
uno::Reference< beans::XPropertySet > xSettings(m_xTextFactory->createInstance("com.sun.star.document.Settings"), uno::UNO_QUERY);
|
|
||||||
xSettings->setPropertyValue("PrinterIndependentLayout", uno::makeAny(document::PrinterIndependentLayout::DISABLED));
|
xSettings->setPropertyValue("PrinterIndependentLayout", uno::makeAny(document::PrinterIndependentLayout::DISABLED));
|
||||||
}
|
if( m_pSettingsTable->GetEmbedTrueTypeFonts())
|
||||||
|
xSettings->setPropertyValue( PropertyNameSupplier::GetPropertyNameSupplier().GetName( PROP_EMBED_FONTS ), uno::makeAny(true) );
|
||||||
|
if( m_pSettingsTable->GetEmbedSystemFonts())
|
||||||
|
xSettings->setPropertyValue( PropertyNameSupplier::GetPropertyNameSupplier().GetName( PROP_EMBED_SYSTEM_FONTS ), uno::makeAny(true) );
|
||||||
}
|
}
|
||||||
catch(const uno::Exception&)
|
catch(const uno::Exception&)
|
||||||
{
|
{
|
||||||
|
@@ -316,6 +316,8 @@ const OUString& PropertyNameSupplier::GetName( PropertyIds eId ) const
|
|||||||
case PROP_IS_VISIBLE: sName = "IsVisible"; break;
|
case PROP_IS_VISIBLE: sName = "IsVisible"; break;
|
||||||
case PROP_PAGE_STYLE_LAYOUT: sName = "PageStyleLayout"; break;
|
case PROP_PAGE_STYLE_LAYOUT: sName = "PageStyleLayout"; break;
|
||||||
case PROP_Z_ORDER: sName = "ZOrder"; break;
|
case PROP_Z_ORDER: sName = "ZOrder"; break;
|
||||||
|
case PROP_EMBED_FONTS: sName = "EmbedFonts"; break;
|
||||||
|
case PROP_EMBED_SYSTEM_FONTS: sName = "EmbedSystemFonts"; break;
|
||||||
}
|
}
|
||||||
::std::pair<PropertyNameMap_t::iterator,bool> aInsertIt =
|
::std::pair<PropertyNameMap_t::iterator,bool> aInsertIt =
|
||||||
m_pImpl->aNameMap.insert( PropertyNameMap_t::value_type( eId, sName ));
|
m_pImpl->aNameMap.insert( PropertyNameMap_t::value_type( eId, sName ));
|
||||||
|
@@ -289,6 +289,8 @@ enum PropertyIds
|
|||||||
,PROP_PARA_CONTEXT_MARGIN
|
,PROP_PARA_CONTEXT_MARGIN
|
||||||
,PROP_PAGE_STYLE_LAYOUT
|
,PROP_PAGE_STYLE_LAYOUT
|
||||||
,PROP_Z_ORDER
|
,PROP_Z_ORDER
|
||||||
|
,PROP_EMBED_FONTS
|
||||||
|
,PROP_EMBED_SYSTEM_FONTS
|
||||||
};
|
};
|
||||||
struct PropertyNameSupplier_Impl;
|
struct PropertyNameSupplier_Impl;
|
||||||
class PropertyNameSupplier
|
class PropertyNameSupplier
|
||||||
|
@@ -69,6 +69,8 @@ struct SettingsTable_Impl
|
|||||||
sal_Int16 m_nZoomFactor;
|
sal_Int16 m_nZoomFactor;
|
||||||
bool m_bEvenAndOddHeaders;
|
bool m_bEvenAndOddHeaders;
|
||||||
bool m_bUsePrinterMetrics;
|
bool m_bUsePrinterMetrics;
|
||||||
|
bool embedTrueTypeFonts;
|
||||||
|
bool embedSystemFonts;
|
||||||
|
|
||||||
SettingsTable_Impl( DomainMapper& rDMapper, const uno::Reference< lang::XMultiServiceFactory > xTextFactory ) :
|
SettingsTable_Impl( DomainMapper& rDMapper, const uno::Reference< lang::XMultiServiceFactory > xTextFactory ) :
|
||||||
m_rDMapper( rDMapper )
|
m_rDMapper( rDMapper )
|
||||||
@@ -89,6 +91,8 @@ struct SettingsTable_Impl
|
|||||||
, m_nZoomFactor(0)
|
, m_nZoomFactor(0)
|
||||||
, m_bEvenAndOddHeaders(false)
|
, m_bEvenAndOddHeaders(false)
|
||||||
, m_bUsePrinterMetrics(false)
|
, m_bUsePrinterMetrics(false)
|
||||||
|
, embedTrueTypeFonts(false)
|
||||||
|
, embedSystemFonts(false)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -199,6 +203,12 @@ void SettingsTable::lcl_sprm(Sprm& rSprm)
|
|||||||
case NS_ooxml::LN_CT_Compat_usePrinterMetrics:
|
case NS_ooxml::LN_CT_Compat_usePrinterMetrics:
|
||||||
m_pImpl->m_bUsePrinterMetrics = nIntValue;
|
m_pImpl->m_bUsePrinterMetrics = nIntValue;
|
||||||
break;
|
break;
|
||||||
|
case NS_ooxml::LN_CT_Settings_embedTrueTypeFonts:
|
||||||
|
m_pImpl->embedTrueTypeFonts = nIntValue != 0;
|
||||||
|
break;
|
||||||
|
case NS_ooxml::LN_CT_Settings_embedSystemFonts:
|
||||||
|
m_pImpl->embedSystemFonts = nIntValue != 0;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_DMAPPER_SETTINGS_TABLE
|
#ifdef DEBUG_DMAPPER_SETTINGS_TABLE
|
||||||
@@ -241,6 +251,16 @@ bool SettingsTable::GetEvenAndOddHeaders() const
|
|||||||
return m_pImpl->m_bEvenAndOddHeaders;
|
return m_pImpl->m_bEvenAndOddHeaders;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SettingsTable::GetEmbedTrueTypeFonts() const
|
||||||
|
{
|
||||||
|
return m_pImpl->embedTrueTypeFonts;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool SettingsTable::GetEmbedSystemFonts() const
|
||||||
|
{
|
||||||
|
return m_pImpl->embedSystemFonts;
|
||||||
|
}
|
||||||
|
|
||||||
void SettingsTable::ApplyProperties( uno::Reference< text::XTextDocument > xDoc )
|
void SettingsTable::ApplyProperties( uno::Reference< text::XTextDocument > xDoc )
|
||||||
{
|
{
|
||||||
uno::Reference< beans::XPropertySet> xDocProps( xDoc, uno::UNO_QUERY );
|
uno::Reference< beans::XPropertySet> xDocProps( xDoc, uno::UNO_QUERY );
|
||||||
|
@@ -65,6 +65,9 @@ class WRITERFILTER_DLLPRIVATE SettingsTable : public LoggedProperties, public Lo
|
|||||||
|
|
||||||
bool GetUsePrinterMetrics() const;
|
bool GetUsePrinterMetrics() const;
|
||||||
|
|
||||||
|
bool GetEmbedTrueTypeFonts() const;
|
||||||
|
bool GetEmbedSystemFonts() const;
|
||||||
|
|
||||||
void ApplyProperties( uno::Reference< text::XTextDocument > xDoc );
|
void ApplyProperties( uno::Reference< text::XTextDocument > xDoc );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Reference in New Issue
Block a user