For the integration of ONLYOFFICE Document Builder into any application, the C++ doctrenderer library is used. The current application version contains six main classes:
#include "./../common_deploy.h" #include "../docbuilder.h" #include "./utils.cpp" using namespace NSDoctRenderer; int main(int argc, char *argv[]) { std::wstring sProcessDirectory = NSUtils::GetProcessDirectory(); std::wstring sWorkDirectory = NSUtils::GetBuilderDirectory(); CDocBuilder::Initialize(sWorkDirectory.c_str()); CDocBuilder oBuilder; oBuilder.SetProperty("--work-directory", sWorkDirectory.c_str()); oBuilder.CreateFile(OFFICESTUDIO_FILE_DOCUMENT_DOCX); CContext oContext = oBuilder.GetContext(); CContextScope oScope = oContext.CreateScope(); CValue oGlobal = oContext.GetGlobal(); CValue oApi = oGlobal["Api"]; CValue oDocument = oApi.Call("GetDocument"); CValue oParagraph = oApi.Call("CreateParagraph"); oParagraph.Call("SetSpacingAfter", 1000, false); oParagraph.Call("AddText", "Hello, world!"); CValue oContent = oContext.CreateArray(1); oContent[0] = oParagraph; oDocument.Call("InsertContent", oContent); std::wstring sDstPath = sProcessDirectory + L"/result.docx"; oBuilder.SaveFile(OFFICESTUDIO_FILE_DOCUMENT_DOCX, sDstPath.c_str()); oBuilder.CloseFile(); CDocBuilder::Dispose(); return 0; }
builder.SetTmpFolder("DocBuilderTemp"); builder.CreateFile("docx"); var oDocument = Api.GetDocument(); var oParagraph = Api.CreateParagraph(); oParagraph.SetSpacingAfter(1000, false); oParagraph.AddText("Hello, world!"); oDocument.InsertContent([oParagraph]); builder.SaveFile("docx", "result.docx"); builder.CloseFile();