libre_office_kit_converter_plugin 0.0.2
libre_office_kit_converter_plugin: ^0.0.2 copied to clipboard
Flutter plugin for document conversion powered by LibreOffice
LibreOfficeKit Converter Plugin #
A Flutter plugin that uses LibreOfficeKit to convert office documents directly on the device.
It allows you to transform DOC(-X), XLS(-X), PPT(-X) and many other formats into PDF (default) or another supported export format without external services, without internet, fully offline.
What is LibreOfficeKit? #
LibreOfficeKit (LOK) is the API of LibreOffice that can load and export documents programmatically.
This plugin packages LibreOffice and exposes LibreOfficeKit as a simple Flutter API.
LibreOffice version #
Platform builds are based on the following LibreOffice versions:
- Android → LibreOffice 26.8
- iOS → LibreOffice 24.8
Features #
- Convert documents fully offline
- No Cloud / no upload
- Works with many formats supported by LibreOffice
- Simple API
- Custom export filters supported
Supported conversions #
Anything that LibreOffice itself can open and export.
Common examples:
- DOC / DOCX → PDF
- XLS / XLSX → PDF
- PPT / PPTX → PDF
- ODT / RTF → PDF
- and many more
If LibreOffice can do it on desktop, LOK can do it here.
Installation #
Add the dependency in pubspec.yaml.
dependencies:
libre_office_kit_converter_plugin: ^x.y.z
API #
init() #
Initializes LibreOfficeKit.
Must be called once before any conversion.
Internally this boots the LibreOffice runtime, loads fonts, registries and prepares the engine.
await converter.init();
convert() #
Converts a document into another format.
Parameters
| Name | Required | Description |
|---|---|---|
filePath |
yes | Path to input document |
outputFormat |
no | Target format. Default: pdf |
outputFilePath |
no | Full-path for output file |
outputFileName |
no | Override file name (but with default path) |
filterOptions |
no | LibreOffice export filter string |
Returns
Path to the produced file.
Important drawbacks #
Single document at a time #
LibreOfficeKit is not designed for parallel conversions in the same process.
If you start multiple conversions simultaneously, for example using Future.wait(), the documents will still be processed sequentially.
Application size #
LibreOffice is huge.
Expect the final application size to grow by ~600 MB depending on ABI and packaging strategy.
This is the price for fully offline document rendering.
Startup time #
Initialization may take noticeable time because fonts, configuration and registries must be loaded.
It is recommended to call init() early.
TODO / Roadmap #
- Ability to replace bundled compiled LibreOffice sources with custom builds
- More detailed error reporting
When should you use this plugin? #
Good if you need:
- offline conversion
- no dependency on cloud services
- maximum format compatibility
Bad if:
- app size is critical
- you need parallel conversions
- you only convert a very small subset of simple formats
License #
LibreOffice core is licensed under MPL