diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-09-18 18:28:57 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-09-19 09:13:44 +0200 |
commit | 10b49dfb3996f99dec8dd0d2ffae2aef4022f395 (patch) | |
tree | fb0a9d2ebe131343e1c2bf6b0a9ec1c1b934159c /writerperfect/source | |
parent | fa9dc42ec1b0a61d7c49ecf9a4eb804bac8835fa (diff) |
EPUB export: write styles inline to please poor readers
And add a filter option to disable the new behavior, if wanted.
Change-Id: Ib70f60fc38d02c959452882bf593cd498b642fba
Reviewed-on: https://gerrit.libreoffice.org/42433
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
Diffstat (limited to 'writerperfect/source')
-rw-r--r-- | writerperfect/source/writer/EPUBExportFilter.cxx | 11 | ||||
-rw-r--r-- | writerperfect/source/writer/EPUBExportFilter.hxx | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/writerperfect/source/writer/EPUBExportFilter.cxx b/writerperfect/source/writer/EPUBExportFilter.cxx index ef2ba333e55b..f30f18bb6735 100644 --- a/writerperfect/source/writer/EPUBExportFilter.cxx +++ b/writerperfect/source/writer/EPUBExportFilter.cxx @@ -43,10 +43,16 @@ sal_Int32 EPUBExportFilter::GetDefaultSplitMethod() return libepubgen::EPUB_SPLIT_METHOD_HEADING; } +sal_Int32 EPUBExportFilter::GetDefaultStylesMethod() +{ + return libepubgen::EPUB_STYLES_METHOD_INLINE; +} + sal_Bool EPUBExportFilter::filter(const uno::Sequence<beans::PropertyValue> &rDescriptor) { sal_Int32 nVersion = EPUBExportFilter::GetDefaultVersion(); sal_Int32 nSplitMethod = EPUBExportFilter::GetDefaultSplitMethod(); + sal_Int32 nStylesMethod = EPUBExportFilter::GetDefaultStylesMethod(); uno::Sequence<beans::PropertyValue> aFilterData; for (sal_Int32 i = 0; i < rDescriptor.getLength(); ++i) { @@ -63,6 +69,8 @@ sal_Bool EPUBExportFilter::filter(const uno::Sequence<beans::PropertyValue> &rDe aFilterData[i].Value >>= nVersion; else if (aFilterData[i].Name == "EPUBSplitMethod") aFilterData[i].Value >>= nSplitMethod; + else if (aFilterData[i].Name == "EPUBStylesMethod") + aFilterData[i].Value >>= nStylesMethod; } // Build the export filter chain: the package has direct access to the ZIP @@ -74,6 +82,9 @@ sal_Bool EPUBExportFilter::filter(const uno::Sequence<beans::PropertyValue> &rDe , nVersion #endif ); +#if LIBEPUBGEN_VERSION_SUPPORT + aGenerator.setStylesMethod(static_cast<libepubgen::EPUBStylesMethod>(nStylesMethod)); +#endif uno::Reference<xml::sax::XDocumentHandler> xExportHandler(new exp::XMLImport(aGenerator)); uno::Reference<lang::XInitialization> xInitialization(mxContext->getServiceManager()->createInstanceWithContext("com.sun.star.comp.Writer.XMLOasisExporter", mxContext), uno::UNO_QUERY); diff --git a/writerperfect/source/writer/EPUBExportFilter.hxx b/writerperfect/source/writer/EPUBExportFilter.hxx index b423f96175e7..25bf0df81171 100644 --- a/writerperfect/source/writer/EPUBExportFilter.hxx +++ b/writerperfect/source/writer/EPUBExportFilter.hxx @@ -50,6 +50,8 @@ public: static sal_Int32 GetDefaultVersion(); /// Gives the default split method. static sal_Int32 GetDefaultSplitMethod(); + /// Gives the default styles method. + static sal_Int32 GetDefaultStylesMethod(); }; } // namespace writerperfect |