diff --git a/Fb2File/Fb2File.cpp b/Fb2File/Fb2File.cpp index 8effbeafb4..e6bc2843a5 100644 --- a/Fb2File/Fb2File.cpp +++ b/Fb2File/Fb2File.cpp @@ -635,6 +635,9 @@ public: // Читает table bool readTable() { + // Стиль таблицы + m_oBuilder += L""; + m_oBuilder += L""; int nDeath = m_oLightReader.GetDepth(); if(!m_oLightReader.ReadNextSiblingNode(nDeath)) @@ -647,28 +650,36 @@ public: { if(m_oLightReader.GetName() != L"tr") return false; - // m_sBody += L"tr\n"; + m_oBuilder += L""; int nTrDeath = m_oLightReader.GetDepth(); while(m_oLightReader.ReadNextSiblingNode(nTrDeath)) { + m_oBuilder += L""; + // Читаем th (любое) if(m_oLightReader.GetName() == L"th") { - // m_sBody += L"th\n"; - if(!readP(L"", m_oBuilder)) + m_oBuilder += L""; + if(!readP(L"", m_oBuilder)) return false; } // Читаем td (любое) else if(m_oLightReader.GetName() == L"td") { - // m_sBody += L"td\n"; + m_oBuilder += L""; if(!readP(L"", m_oBuilder)) return false; } else return false; + + m_oBuilder += L""; } + m_oBuilder += L""; } while(m_oLightReader.ReadNextSiblingNode(nDeath)); + m_oBuilder += L""; + // Пустая строка после таблицы + m_oBuilder += L""; return true; } @@ -679,13 +690,14 @@ public: int nADeath = m_oLightReader.GetDepth(); while(m_oLightReader.ReadNextSiblingNode(nADeath)) { - m_oBuilder += L""; - m_oBuilder += L""; std::wstring sAnName = m_oLightReader.GetName(); if(sAnName == L"p") { + m_oBuilder += L""; + m_oBuilder += L""; if(!readP(L"", m_oBuilder)) return false; + m_oBuilder += L""; } else if(sAnName == L"poem") { @@ -699,12 +711,14 @@ public: } else if(sAnName == L"subtitle") { + m_oBuilder += L""; m_oBuilder += L""; if(!readP(L"", m_oBuilder)) return false; + m_oBuilder += L""; } else if(sAnName == L"empty-line") - m_oBuilder += L""; + m_oBuilder += L""; else if(sAnName == L"table") { if(!readTable()) @@ -712,7 +726,6 @@ public: } else return false; - m_oBuilder += L""; } return true; } @@ -827,10 +840,8 @@ public: m_oBuilder += L""; else if(sName == L"table") { - m_oBuilder += L""; if(!readTable()) return false; - m_oBuilder += L""; } else return false; @@ -1131,7 +1142,6 @@ public: // Читаем history (ноль или один) if(sName == L"history") { - // Содержит форматированный текст - НЕ РЕАЛИЗОВАНО if(m_oDocumentInfo.m_pHistory) return false; m_oDocumentInfo.m_pHistory = new std::wstring[1]; @@ -1139,7 +1149,7 @@ public: int nDepth = m_oLightReader.GetDepth(); while(m_oLightReader.ReadNextSiblingNode(nDepth)) { - *m_oDocumentInfo.m_pHistory += content(); + // *m_oDocumentInfo.m_pHistory += content(); } } else if(sName == L"publish-info") diff --git a/Fb2File/examples/1-posledneye-zhelaniye.fb2 b/Fb2File/examples/1-posledneye-zhelaniye.fb2 index 69278fe9c5..ee239faea7 100644 --- a/Fb2File/examples/1-posledneye-zhelaniye.fb2 +++ b/Fb2File/examples/1-posledneye-zhelaniye.fb2 @@ -71,6 +71,29 @@

Глас рассудка I

+ + + + + + + + + + + + + + + + + + + + + + +
заг1заг2заг1заг4заг1
текс11текс12текс11текс14текс11
текс21текс22текс21текс24текс21

Она пришла под утро.

Вошла осторожно, тихо, бесшумно ступая, плывя по комнате, словно призрак, привидение, а единственным звуком, выдававшим ее движение, был шорох накидки, прикасавшейся к голому телу. Однако именно этот исчезающе тихий, едва уловимый шелест разбудил ведьмака, а может, только вырвал из полусна, в котором он мерно колыхался, словно погруженный в бездонную топь, висящий между дном и поверхностью спокойного моря, среди легонько извивающихся нитей водорослей.

Он не пошевелился, даже не дрогнул. Девушка подпорхнула ближе, сбросила накидку, медленно, нерешительно оперлась коленом о край ложа. Он наблюдал за ней из-под опущенных ресниц, не выдавая себя. Девушка осторожно поднялась на постель, легла на него, обхватила бедрами. Опираясь на напряженные руки, скользнула по его лицу волосами. Волосы пахли ромашкой. Решительно и как бы нетерпеливо наклонилась, коснулась сосочком его века, щеки, губ. Он улыбнулся, медленно, осторожно, нежно взял ее руки в свои. Она выпрямилась, ускользая от его пальцев, лучистая, подсвеченная и от этого света нечеткая в туманном отблеске зари. Он пошевелился, но она решительным нажимом обеих рук остановила его и легкими, но настойчивыми движениями бедер добилась ответа.

diff --git a/Fb2File/template/word/styles.xml b/Fb2File/template/word/styles.xml index 8f7475c35b..940887e3c0 100644 --- a/Fb2File/template/word/styles.xml +++ b/Fb2File/template/word/styles.xml @@ -11518,4 +11518,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Fb2File/test/main.cpp b/Fb2File/test/main.cpp index bdc1703a0c..ee66a636c0 100644 --- a/Fb2File/test/main.cpp +++ b/Fb2File/test/main.cpp @@ -10,7 +10,7 @@ int main() oFile.SetTmpDirectory(NSFile::GetProcessDirectory() + L"/tmp"); // файл, который открываем - std::wstring sFile = NSFile::GetProcessDirectory() + L"/../../../examples/6-bashnya-lastochki.fb2"; + std::wstring sFile = NSFile::GetProcessDirectory() + L"/../../../examples/1-posledneye-zhelaniye.fb2"; // директория, где будем создавать docx std::wstring sOutputDirectory = NSFile::GetProcessDirectory() + L"/res";