From 10b49dfb3996f99dec8dd0d2ffae2aef4022f395 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Mon, 18 Sep 2017 18:28:57 +0200 Subject: 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 Tested-by: Jenkins --- writerperfect/source/writer/EPUBExportFilter.cxx | 11 +++++++++++ writerperfect/source/writer/EPUBExportFilter.hxx | 2 ++ 2 files changed, 13 insertions(+) (limited to 'writerperfect/source') 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 &rDescriptor) { sal_Int32 nVersion = EPUBExportFilter::GetDefaultVersion(); sal_Int32 nSplitMethod = EPUBExportFilter::GetDefaultSplitMethod(); + sal_Int32 nStylesMethod = EPUBExportFilter::GetDefaultStylesMethod(); uno::Sequence aFilterData; for (sal_Int32 i = 0; i < rDescriptor.getLength(); ++i) { @@ -63,6 +69,8 @@ sal_Bool EPUBExportFilter::filter(const uno::Sequence &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 &rDe , nVersion #endif ); +#if LIBEPUBGEN_VERSION_SUPPORT + aGenerator.setStylesMethod(static_cast(nStylesMethod)); +#endif uno::Reference xExportHandler(new exp::XMLImport(aGenerator)); uno::Reference 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 -- cgit