OFD libraries
OFD libraries come almost entirely from Chinese developers, and most documentation is in Chinese. ofdrw (Java) is the most mature and widely used; the others are younger.
| Language | Library | Read | Write | Notes |
|---|---|---|---|---|
| Java | ofdrw | yes | yes | most complete: layout engine, signatures and seals, encryption, PDF/image/text export, MIT |
| Python | easyofd | yes | yes | parse OFD, OFD to PDF/images, PDF/images to OFD; Apache-2.0 but depends on AGPL PyMuPDF |
| Go | zc310/ofd | yes | yes | converter, reader, renderer, creator, signatures; pure Go, Apache-2.0 |
| C# | Ofdrw.Net | yes | yes | .NET implementation modeled on ofdrw, MIT, early versions |
For C/C++, Rust, Ruby and PHP there are no maintained OFD libraries. Because OFD is ZIP + XML, reading text and metadata with a ZIP library and an XML parser is straightforward; rendering pages correctly (fonts, paths, seals) is the hard part.
By language#
- OFD libraries for C# Open-source C# / .NET library for OFD documents: Ofdrw.Net, which reads, creates and converts OFD (to and from PDF, images, SVG, DOCX). Overview and examples.
- OFD libraries for Java Open-source Java library for OFD documents: ofdrw (OFD Reader & Writer), with document generation, text extraction, PDF conversion, signatures and seals.
- OFD libraries for Go Open-source Go library for OFD documents: zc310/ofd, a pure-Go toolkit to convert, read, render, create and sign OFD files. Overview and examples.
- OFD libraries for Python Open-source Python library for OFD documents: easyofd, which parses OFD, converts OFD to PDF and images, and creates OFD from PDF and images. Overview.