# onlyoffice/core architecture

> Architecture diagram of the GitHub repository onlyoffice/core, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/onlyoffice/core
- Repository: https://github.com/onlyoffice/core

## Overview

ONLYOFFICE Core provides document-format conversion for Document Server and Desktop Editors. The user-facing workflow is to submit a document in one supported format and obtain it in another; the README lists word-processing, spreadsheet, presentation, web, ebook, and fixed-layout formats. The tree shows representative format-specific and rendering code, but not a central conversion entry point or its call graph, so the graph presents documented capabilities without asserting unsupported sequencing. Several subsystems are represented by their exact enclosing directories because their implementations were not sampled.

Main entry points: [`DocxRenderer/src/logic/managers/ParagraphStyleManager.cpp`](https://github.com/onlyoffice/core/blob/master/DocxRenderer/src/logic/managers/ParagraphStyleManager.cpp) (Word formats), [`PdfFile`](https://github.com/onlyoffice/core/tree/master/PdfFile) (Fixed-layout formats), [`MsBinaryFile/DocFile/StructuredStorageReader.cpp`](https://github.com/onlyoffice/core/blob/master/MsBinaryFile/DocFile/StructuredStorageReader.cpp) (Legacy Office), [`MsBinaryFile/Common/Vml/PPTXShape/OOXMLShapes/CFlowChartInternalStorage.cpp`](https://github.com/onlyoffice/core/blob/master/MsBinaryFile/Common/Vml/PPTXShape/OOXMLShapes/CFlowChartInternalStorage.cpp) (Presentation shapes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_conversion["Format conversion"]
  node_converter["Format converter"]
  node_word["Word formats"]
  node_legacy["Legacy Office"]
  node_presentation["Presentation shapes"]
  node_apple["Apple iWork<br/>[IWork.cpp]"]
  node_spreadsheet["Spreadsheet formats"]
  node_text["Text formats"]
  node_web["HTML formats"]
  node_ebook["EPUB formats"]
  node_fixed["Fixed-layout formats"]
end

subgraph group_rendering["Rendering and layout"]
  node_pdf_fonts["PDF fonts"]
  node_image["JPEG 2000<br/>[opj_engine.cpp]"]
  node_vector["Vector graphics<br/>[agg-2.4]"]
  node_text_layout["Text layout<br/>[LayoutEngine.cpp]"]
end

subgraph group_shared["Shared document support"]
  node_styles["Paragraph styles"]
  node_compound["Compound storage<br/>[cfstorage.cpp]"]
  node_transport["File transport<br/>[FileTransporter.h]"]
end

node_user(("Document user"))

node_user -->|"requests conversion"| node_converter
node_converter -->|"format handling"| node_word
node_converter -->|"format handling"| node_legacy
node_converter -->|"format handling"| node_presentation
node_converter -->|"format handling"| node_apple
node_converter -->|"format handling"| node_spreadsheet
node_converter -->|"format handling"| node_text
node_converter -->|"format handling"| node_web
node_converter -->|"format handling"| node_ebook
node_converter -->|"format handling"| node_fixed
node_fixed -->|"uses fonts"| node_pdf_fonts
node_fixed -->|"uses image codec"| node_image
node_word -->|"uses text layout"| node_text_layout
node_word -->|"manages styles"| node_styles

click node_word "https://github.com/onlyoffice/core/blob/master/DocxRenderer/src/logic/managers/ParagraphStyleManager.cpp"
click node_legacy "https://github.com/onlyoffice/core/blob/master/MsBinaryFile/DocFile/StructuredStorageReader.cpp"
click node_presentation "https://github.com/onlyoffice/core/blob/master/MsBinaryFile/Common/Vml/PPTXShape/OOXMLShapes/CFlowChartInternalStorage.cpp"
click node_apple "https://github.com/onlyoffice/core/blob/master/Apple/IWork.cpp"
click node_spreadsheet "https://github.com/onlyoffice/core/tree/master/MsBinaryFile"
click node_text "https://github.com/onlyoffice/core/tree/master/Common/3dParty/md"
click node_web "https://github.com/onlyoffice/core/tree/master/Common/3dParty/html"
click node_fixed "https://github.com/onlyoffice/core/tree/master/PdfFile"
click node_pdf_fonts "https://github.com/onlyoffice/core/blob/master/PdfFile/lib/splash/SplashFontEngine.cc"
click node_image "https://github.com/onlyoffice/core/blob/master/DesktopEditor/raster/Jp2/openjpeg/opj_engine.cpp"
click node_vector "https://github.com/onlyoffice/core/tree/master/DesktopEditor/agg-2.4"
click node_text_layout "https://github.com/onlyoffice/core/blob/master/UnicodeConverter/icubuilds-mac/icu/icu/layout/LayoutEngine.cpp"
click node_styles "https://github.com/onlyoffice/core/blob/master/DocxRenderer/src/logic/managers/ParagraphStyleManager.cpp"
click node_compound "https://github.com/onlyoffice/core/blob/master/Common/cfcpp/cfstorage.cpp"
click node_transport "https://github.com/onlyoffice/core/blob/master/Common/Network/FileTransporter/include/FileTransporter.h"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_converter,node_word,node_legacy,node_presentation,node_apple,node_spreadsheet,node_text,node_web,node_ebook,node_fixed,node_user toneBlue
class node_pdf_fonts,node_image,node_vector,node_text_layout toneAmber
class node_styles,node_compound,node_transport toneMint
```

## Components

### Format conversion

- **Format converter**
- [Word formats](https://github.com/onlyoffice/core/blob/master/DocxRenderer/src/logic/managers/ParagraphStyleManager.cpp): `DocxRenderer/src/logic/managers/ParagraphStyleManager.cpp`
- [Legacy Office](https://github.com/onlyoffice/core/blob/master/MsBinaryFile/DocFile/StructuredStorageReader.cpp): `MsBinaryFile/DocFile/StructuredStorageReader.cpp`
- [Presentation shapes](https://github.com/onlyoffice/core/blob/master/MsBinaryFile/Common/Vml/PPTXShape/OOXMLShapes/CFlowChartInternalStorage.cpp): `MsBinaryFile/Common/Vml/PPTXShape/OOXMLShapes/CFlowChartInternalStorage.cpp`
- [Apple iWork](https://github.com/onlyoffice/core/blob/master/Apple/IWork.cpp): `Apple/IWork.cpp`
- [Spreadsheet formats](https://github.com/onlyoffice/core/tree/master/MsBinaryFile): `MsBinaryFile`
- [Text formats](https://github.com/onlyoffice/core/tree/master/Common/3dParty/md): `Common/3dParty/md`
- [HTML formats](https://github.com/onlyoffice/core/tree/master/Common/3dParty/html): `Common/3dParty/html`
- **EPUB formats**
- [Fixed-layout formats](https://github.com/onlyoffice/core/tree/master/PdfFile): `PdfFile`

### Rendering and layout

- [PDF fonts](https://github.com/onlyoffice/core/blob/master/PdfFile/lib/splash/SplashFontEngine.cc): `PdfFile/lib/splash/SplashFontEngine.cc`
- [JPEG 2000](https://github.com/onlyoffice/core/blob/master/DesktopEditor/raster/Jp2/openjpeg/opj_engine.cpp): `DesktopEditor/raster/Jp2/openjpeg/opj_engine.cpp`
- [Vector graphics](https://github.com/onlyoffice/core/tree/master/DesktopEditor/agg-2.4): `DesktopEditor/agg-2.4`
- [Text layout](https://github.com/onlyoffice/core/blob/master/UnicodeConverter/icubuilds-mac/icu/icu/layout/LayoutEngine.cpp): `UnicodeConverter/icubuilds-mac/icu/icu/layout/LayoutEngine.cpp`

### Shared document support

- [Paragraph styles](https://github.com/onlyoffice/core/blob/master/DocxRenderer/src/logic/managers/ParagraphStyleManager.cpp): `DocxRenderer/src/logic/managers/ParagraphStyleManager.cpp`
- [Compound storage](https://github.com/onlyoffice/core/blob/master/Common/cfcpp/cfstorage.cpp): `Common/cfcpp/cfstorage.cpp`
- [File transport](https://github.com/onlyoffice/core/blob/master/Common/Network/FileTransporter/include/FileTransporter.h): `Common/Network/FileTransporter/include/FileTransporter.h`

### Other components

- **Document user**

## Connections

- Document user → Format converter: requests conversion
- Format converter → Word formats: format handling
- Format converter → Legacy Office: format handling
- Format converter → Presentation shapes: format handling
- Format converter → Apple iWork: format handling
- Format converter → Spreadsheet formats: format handling
- Format converter → Text formats: format handling
- Format converter → HTML formats: format handling
- Format converter → EPUB formats: format handling
- Format converter → Fixed-layout formats: format handling
- Fixed-layout formats → PDF fonts: uses fonts
- Fixed-layout formats → JPEG 2000: uses image codec
- Word formats → Text layout: uses text layout
- Word formats → Paragraph styles: manages styles
