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 tools 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

ONLYOFFICE Document Builder supports all popular document file formats: open DOC, DOCX, ODT, RTF, TXT, XLS, XLSX, ODS, CSV, PPT, PPSX, PPS, ODP, PPTX and save them to DOCX, ODT, XLSX, PPTX or PDF.

Advanced document processing
Spreadsheet creation and reporting
Smooth presentation creation
Fillable form building
Easy PDF generating

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();

Text document API for

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

Switch to the enterprise level

Need to bring advanced document processing to end users under your own brand? Opt for Document Builder as a part of ONLYOFFICE Docs Developer.

Have a question?

Contact sales at sales@onlyoffice.com