36 lines
863 B
C++
36 lines
863 B
C++
#pragma once
|
|
|
|
#include "xtr/io/OptionsIO.hpp"
|
|
|
|
namespace xtr::io {
|
|
|
|
//! Export RSForm as docx
|
|
class RSForm2DOCX {
|
|
MSO::Word::WApplication wordApplication{};
|
|
MSO::Word::WDocuments docs{};
|
|
MSO::Word::WDocument workingDocument{};
|
|
SchemaOptions params{};
|
|
const ccl::semantic::RSForm& source;
|
|
|
|
public:
|
|
explicit RSForm2DOCX(const ccl::semantic::RSForm& source)
|
|
: source{ source } {}
|
|
|
|
public:
|
|
BOOL Export(const SchemaOptions& exportParams, CString fileName);
|
|
|
|
private:
|
|
[[nodiscard]] static std::optional<CString> GetPathToTemplate();
|
|
|
|
BOOL LoadApplication();
|
|
BOOL CreateDocument();
|
|
|
|
BOOL WriteContent();
|
|
BOOL PutTextIntoBookmark(CString bookmarkName, CString text);
|
|
BOOL WriteHeaderFooter();
|
|
void WriteConstituenta(EntityUID target, MSO::Word::WTable& outTable, long nRow);
|
|
|
|
void SaveFile(CString fileName);
|
|
};
|
|
|
|
} // namespace xtr::io
|