#ifndef DOCUMENT_WRITER
#define DOCUMENT_WRITER
#include "../../XlsxSerializerCom/Common/Common.h"
#include "../BinWriter/BinReaderWriterDefines.h";
namespace Writers
{
class DocumentWriter : public ContentWriter
{
XmlUtils::CStringWriter m_oWriter;
HeaderFooterWriter& m_oHeaderFooterWriter;
public:
CString m_sDir;
public:
DocumentWriter(CString sDir, HeaderFooterWriter& oHeaderFooterWriter):m_sDir(sDir), m_oHeaderFooterWriter(oHeaderFooterWriter)
{
}
void Write()
{
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR + _T("word") +FILE_SEPARATOR_STR + _T("document.xml");
CFile oFile;
oFile.CreateFile(filePath.GetPath());
oFile.WriteStringUTF8(CString(_T("")));
oFile.WriteStringUTF8(m_oContent.GetData());
oFile.WriteStringUTF8(CString(_T("")));
oFile.WriteStringUTF8(WriteSectPrHdrFtr());
oFile.WriteStringUTF8(m_oSecPr.GetData());
oFile.WriteStringUTF8(CString(_T("")));
oFile.WriteStringUTF8(CString(_T("")));
oFile.CloseFile();
}
CString WriteSectPrHdrFtr()
{
CString sResult;
if(BinDocxRW::g_nCurFormatVersion < 5)
{
bool bTitlePage = false;
for(int i = 0, length = m_oHeaderFooterWriter.m_aHeaders.size(); i < length; ++i)
{
HdrFtrItem* pHeader = m_oHeaderFooterWriter.m_aHeaders[i];
if(false == pHeader->rId.IsEmpty())
{
if(SimpleTypes::hdrftrFirst == pHeader->eType)
{
sResult += _T("rId + _T("\"/>");
bTitlePage = true;
}
else if(SimpleTypes::hdrftrEven == pHeader->eType)
{
sResult += _T("rId + _T("\"/>");
}
else
{
sResult += _T("rId + _T("\"/>");
}
}
}
for(int i = 0, length = m_oHeaderFooterWriter.m_aFooters.size(); i < length; ++i)
{
HdrFtrItem* pFooter = m_oHeaderFooterWriter.m_aFooters[i];
if(false == pFooter->rId.IsEmpty())
{
if(SimpleTypes::hdrftrFirst == pFooter->eType)
{
sResult += _T("rId + _T("\"/>");
bTitlePage = true;
}
else if(SimpleTypes::hdrftrEven == pFooter->eType)
{
sResult += _T("rId + _T("\"/>");
}
else
{
sResult += _T("rId + _T("\"/>");
}
}
}
if(true == bTitlePage)
sResult += _T("");
}
return sResult;
}
};
}
#endif // #ifndef DOCUMENT_WRITER