SDK for advanced document processing

100% Compatible with Microsoft Office Formats

What is this?

Powerful text, spreadsheet, presentation and PDF generating tool.
ONLYOFFICE Document Builder is one of the most complete tool that enables your application to modify or build documents in DOCX, XLSX, PPTX or PDF without actually running Microsoft Office.
Live demo

Dual license model

ONLYOFFICE Document Builder comes with a dual-license model. This means that as long as you respect the GNU AGPL v.3 license, you can use the ONLYOFFICE open source solution available on GitHub. To guard your intellectual property and receive professional support, a commercial license is required.
Contact sales

What makes ONLYOFFICE Document Builder unique?

With ONLYOFFICE Document Builder you have a simple script created for each document, be it a new file or an existing one that you want to open and modify. No need to compile an application each time the changes are required, like in any other builders. Start generating your documents on-the-fly!
Read documentation

ONLYOFFICE Document Builder features

Advanced document processing
Insert formatted text, paragraphs, images, tables and charts, shapes, headers, and footers, create a bulleted or numbered list, etc. Populate a table using data from a database.
builder.CreateFile("docx");
var oDocument = Api.GetDocument();
var oParagraph, oRun, oDrawing, oTextPr;
oParagraph = oDocument.GetElement(0);
oDrawing = Api.CreateImage("https://www.onlyoffice.com/images/landing/document-builder/document.jpg", 1556 * 3600, 1044 * 3600);
oParagraph.AddDrawing(oDrawing);
oTextPr = oDocument.GetDefaultTextPr();
oTextPr.SetFontSize(24);
oTextPr.SetColor(64,64,64);
oParagraph = Api.CreateParagraph();
oRun = Api.CreateRun();
oRun.SetFontSize(36);
oRun.SetColor(0,112,192);
oRun.SetBold(true);
oRun.AddText("Advanced document processing,");
oDocument.Push(oParagraph);
oParagraph = Api.CreateParagraph();
oRun = Api.CreateRun();
oRun.SetFontSize(24);
oRun.SetColor(0,176,240);
oRun.SetBold(true);
oRun.AddText("Insert formatted text");
oParagraph.AddElement(oRun);
oRun = Api.CreateRun();
oRun.AddText(",  paragraphs, ");
oParagraph.AddElement(oRun);
oRun = Api.CreateRun();
oRun.SetFontSize(24);
oRun.SetColor(8,140,68);
oRun.SetBold(true);
oRun.SetUnderline(true);
oRun.AddText("images");
oParagraph.AddElement(oRun);
oRun = Api.CreateRun();
oRun.AddText(", tables and ");
oParagraph.AddElement(oRun);
oRun = Api.CreateRun();
oRun.SetFontSize(24);
oRun.SetColor(255,106,0);
oRun.SetBold(true);
oRun.SetItalic(true);
oRun.AddText("charts, ");
oParagraph.AddElement(oRun);
oRun = Api.CreateRun();
oRun.SetHighlight(255,255,0);
oRun.AddText("shapes");
oParagraph.AddElement(oRun);
oRun = Api.CreateRun();
oRun.AddText(", ");
oParagraph.AddElement(oRun);
oRun = Api.CreateRun();
oRun.SetItalic(true);
oRun.SetVertAlign("superscript");
oRun.SetFontSize(40);
oRun.AddText("headers");
oParagraph.AddElement(oRun);
oRun = Api.CreateRun();
oRun.AddText(", and ");
oParagraph.AddElement(oRun);
oRun = Api.CreateRun();
oRun.SetItalic(true);
oRun.SetVertAlign("subscript");
oRun.SetFontSize(40);
oRun.AddText("footers");
oParagraph.AddElement(oRun);
oRun = Api.CreateRun();
oRun.AddText(", create a bulleted or numbered list, etc. Populate a table using data from a database.");
oParagraph.AddElement(oRun);
oDocument.Push(oParagraph);
oParagraph = Api.CreateParagraph();
oDocument.Push(oParagraph);
oParagraph = Api.CreateParagraph();
oRun = Api.CreateRun();
oRun.SetFontSize(18);
oRun.AddText("Best regards,");
oRun.AddLineBreak();
oRun.AddText("ONLYOFFICE Document Builder Team");
oParagraph.AddElement(oRun);
oDocument.Push(oParagraph);
for(var i=0; i<6; i++) {
    oParagraph = Api.CreateParagraph();
    oDocument.Push(oParagraph);
}
oParagraph = Api.CreateParagraph();
var oFill = Api.CreateSolidFill(Api.CreateRGBColor(217,217,217));
var oStroke = Api.CreateStroke(0, Api.CreateNoFill());
oDrawing = Api.CreateShape("rect", 1568 * 3600, 9000, oFill, oStroke);
oParagraph.AddDrawing(oDrawing);
oDocument.Push(oParagraph);
oParagraph = Api.CreateParagraph();
oDocument.Push(oParagraph);
oParagraph = Api.CreateParagraph();
oFill = Api.CreateSolidFill(Api.CreateRGBColor(230,156,164));
oStroke = Api.CreateStroke(0, Api.CreateNoFill());
oDrawing = Api.CreateShape("heart", 69 * 3600, 58 * 3600, oFill, oStroke);
oDrawing.SetWrappingStyle("square");
oDrawing.SetVerAlign("paragraph", "center");
oParagraph.AddDrawing(oDrawing);
oRun = Api.CreateRun();
oRun.SetFontSize(22);
oRun.AddText("   Have a question? Contact sales at ");
oParagraph.AddElement(oRun);
oRun = Api.CreateRun();
oRun.SetFontSize(22);
oRun.SetColor(107,159,37);
oRun.SetUnderline(true);
oRun.AddText("sales@onlyoffice.com");
oParagraph.AddElement(oRun);
oDocument.Push(oParagraph);
builder.SaveFile("docx", "sampletext.docx");
builder.CloseFile();

The technology behind ONLYOFFICE Document Builder

ONLYOFFICE Document Builder provides a JavaScript API, well-documented and really easy to use. Choose the appropriate methods and classes from our library or pick the commonly used JavaScript methods to change certain element formatting properties.
Read documentation

No matter what language your application is written in, you can integrate Document Builder with it

.Net (C# MVC) .Net (C#) Node.js PHP Ruby

Have a question?

Contact sales at sales@onlyoffice.com.