#ifndef SETTING_WRITER #define SETTING_WRITER #include "../../XlsxSerializerCom/Common/Common.h" namespace Writers { static CString g_string_set_Start = _T(""); static CString g_string_set_Default = _T(""); static CString g_string_set_End = _T(""); class SettingWriter { CString m_sDir; XmlUtils::CStringWriter m_oSettingWriter; HeaderFooterWriter& m_oHeaderFooterWriter; public: SettingWriter(CString sDir, HeaderFooterWriter& oHeaderFooterWriter):m_sDir(sDir),m_oHeaderFooterWriter(oHeaderFooterWriter) { } void Write() { Prepare(); OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + _T("settings.xml"); CFile oFile; oFile.CreateFile(filePath.GetPath()); oFile.WriteStringUTF8(g_string_set_Start); oFile.WriteStringUTF8(m_oSettingWriter.GetData()); oFile.WriteStringUTF8(g_string_set_Default); oFile.WriteStringUTF8(g_string_set_End); oFile.CloseFile(); } void AddSetting(CString sSetting) { m_oSettingWriter.WriteString(sSetting); } void Prepare() { if(BinDocxRW::g_nCurFormatVersion < 5) { bool bevenAndOddHeaders = false; for(int i = 0, length = m_oHeaderFooterWriter.m_aHeaders.size(); i < length; ++i) { HdrFtrItem* pHeader = m_oHeaderFooterWriter.m_aHeaders[i]; if(SimpleTypes::hdrftrEven == pHeader->eType) bevenAndOddHeaders = true; } for(int i = 0, length = m_oHeaderFooterWriter.m_aFooters.size(); i < length; ++i) { HdrFtrItem* pFooter = m_oHeaderFooterWriter.m_aFooters[i]; if(SimpleTypes::hdrftrEven == pFooter->eType) bevenAndOddHeaders = true; } if(bevenAndOddHeaders) AddSetting(_T("")); } } }; } #endif // #ifndef SETTING_WRITER