Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/4130
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/30/4130/1
fdo#65257 : DOCX not exporting background color
Change-Id: Ida3f66d5adb063400494e1da589a463b4d7c2a86
---
A sw/qa/extras/ooxmlexport/data/page-background.docx
M sw/qa/extras/ooxmlexport/ooxmlexport.cxx
M sw/source/filter/ww8/docxexport.cxx
3 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/sw/qa/extras/ooxmlexport/data/page-background.docx
b/sw/qa/extras/ooxmlexport/data/page-background.docx
new file mode 100644
index 0000000..8c1f2ebd
--- /dev/null
+++ b/sw/qa/extras/ooxmlexport/data/page-background.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
index 8dc69f2..a816854 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
@@ -69,6 +69,7 @@
void testMathLiteral();
void testFdo48557();
void testI120928();
+ void testPageBackground();
CPPUNIT_TEST_SUITE(Test);
#if !defined(MACOSX) && !defined(WNT)
@@ -116,6 +117,7 @@
{"math-literal.docx", &Test::testMathLiteral},
{"fdo48557.odt", &Test::testFdo48557},
{"i120928.docx", &Test::testI120928},
+ {"page-background.docx", &Test::testPageBackground},
};
// Don't test the first import of these, for some reason those tests fail
const char* aBlacklist[] = {
@@ -672,6 +674,13 @@
CPPUNIT_ASSERT_EQUAL(true, bIsGraphic);
}
+void Test::testPageBackground()
+{
+ // 'Document Background' wasn't exported.
+ uno::Reference<beans::XPropertySet>
xPageStyle(getStyles("PageStyles")->getByName(DEFAULT_STYLE), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x92D050), getProperty<sal_Int32>(xPageStyle, "BackColor"));
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sw/source/filter/ww8/docxexport.cxx b/sw/source/filter/ww8/docxexport.cxx
index ca46cae..5de892e 100644
--- a/sw/source/filter/ww8/docxexport.cxx
+++ b/sw/source/filter/ww8/docxexport.cxx
@@ -44,6 +44,7 @@
#include <frmfmt.hxx>
#include <section.hxx>
#include <ftninfo.hxx>
+#include <pagedesc.hxx>
#include <editeng/editobj.hxx>
#include <editeng/outlobj.hxx>
@@ -687,6 +688,16 @@
OString aZoom(OString::valueOf(sal_Int32(pViewShell->GetViewOptions()->GetZoom())));
pFS->singleElementNS(XML_w, XML_zoom, FSNS(XML_w, XML_percent), aZoom.getStr(), FSEND);
+ // Display Background Shape
+ const SwFrmFmt &rFmt = pDoc->GetPageDesc(0).GetMaster();
+ const SfxPoolItem* pItem = 0;
+ SfxItemState eState = rFmt.GetItemState(RES_BACKGROUND, true, &pItem);
+ if (SFX_ITEM_SET == eState && pItem)
+ {
+ // Turn on the 'displayBackgroundShape'
+ pFS->singleElementNS( XML_w, XML_displayBackgroundShape, FSEND );
+ }
+
// Track Changes
if ( settings.trackRevisions )
pFS->singleElementNS( XML_w, XML_trackRevisions, FSEND );
@@ -729,6 +740,20 @@
// setup the namespaces
m_pDocumentFS->startElementNS( XML_w, XML_document, MainXmlNamespaces( m_pDocumentFS ));
+ // Write background page color
+ const SwFrmFmt &rFmt = pDoc->GetPageDesc(0).GetMaster();
+ const SfxPoolItem* pItem = 0;
+ SfxItemState eState = rFmt.GetItemState(RES_BACKGROUND, true, &pItem);
+ if (SFX_ITEM_SET == eState && pItem)
+ {
+ // The 'color' is set for the first page style - take it and use it as the background
color of the entire DOCX
+ const SvxBrushItem* pBrush = (const SvxBrushItem*)pItem;
+ Color backgroundColor = pBrush->GetColor();
+ OString aBackgroundColorStr = msfilter::util::ConvertColor(backgroundColor);
+
+ m_pDocumentFS->singleElementNS( XML_w, XML_background, FSNS( XML_w, XML_color ),
aBackgroundColorStr, FSEND );
+ }
+
// body
m_pDocumentFS->startElementNS( XML_w, XML_body, FSEND );
--
To view, visit https://gerrit.libreoffice.org/4130
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ida3f66d5adb063400494e1da589a463b4d7c2a86
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Adam CloudOn <rattles2013@gmail.com>
Context
- [PATCH] fdo#65257 : DOCX not exporting background color · Adam CloudOn (via Code Review)
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.