docs_gee
Pure Dart library for generating and reading DOCX and PDF documents with rich formatting, tables, lists. Cross-platform with no native dependencies.
1.4.2
19K downloads/mo
#2228 most downloaded on pub.dev
erykkruk/docs_gee
What this package is like to depend on
Last release 1 months ago
10 Jul 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 15 of 15 stable releases
Nothing withdrawn
no release was ever pulled
8 months old
15 releases · first in 2025
15 releases in the last 12 months
see the full history below
Release timeline
15 releases · Dec 2025 to Jul 2026Releases
latest 15-
1.4.210 Jul 2026Release notes
Open source →Changed
- Set the pubspec
documentation:field so the pub.dev "Documentation" link points to the hosted docs at codigee.com/open-source/docs-gee.
- Set the pubspec
-
1.4.110 Jul 2026Release notes
Open source →Changed
- Added a Documentation section to the README linking the hosted docs at codigee.com/open-source/docs-gee: overview, document-building guide, and the DocxReader & API reference.
-
1.4.010 Jul 2026Release notes
Open source →Add a DocxScript enum (Script alias) and a script field on DocxRun to
raise or lower text off the baseline — for exponents (x2), chemical
formulas (H2O), ordinals and footnote markers.- DOCX: renders as the <w:vertAlign> run property
- PDF: smaller glyphs with a baseline shift (text-rise operator)
- Reader: <w:vertAlign> parsed back for full read/modify/write round-trip
- README + example + CHANGELOG; bump to 1.4.0
- format pre-existing files to satisfy the new CI format gate
Release notes
Open source →Added
- Superscript & subscript text runs via the new
DocxScriptenum (Scriptalias). Setscript: DocxScript.superscriptorDocxScript.subscripton aDocxRunfor exponents (x²), chemical formulas (H₂O), ordinals and footnote markers.- DOCX: renders as the
<w:vertAlign>run property. - PDF: rendered smaller with a baseline shift (text-rise operator).
- Reader:
<w:vertAlign>is parsed back, so scripts survive a full read → modify → write round-trip.
- DOCX: renders as the
-
1.3.407 Jun 2026Release notes
Open source →Added
DocxParagraph.empty()factory for inserting blank spacer paragraphs between content blocks.
-
1.3.313 May 2026Release notes
Open source →-
Replace deprecated 'library docs_gee;' directive with modern unnamed 'library;'.
-
Apply 'dart fix --apply' across test/example files (47 auto-fixable lint info). No production code changes.
-
README install version bump to ^1.3.3.
Release notes
Open source →Changed
- Replaced the deprecated
library docs_gee;directive with the modern unnamedlibrary;declaration in the barrel file. - Test suite cleanup via
dart fix --apply— 47 auto-fixable lint info resolved across 9 test/example files (prefer_const_constructors,no_leading_underscores_for_local_identifiers,dangling_library_doc_comments). No production code affected.
-
-
1.3.207 Apr 2026 -
1.3.107 Apr 2026Release notes
Open source →Changed
- Dart SDK constraint:
>=3.2.0 <4.0.0 - Flutter constraint:
>=3.16.0
- Dart SDK constraint:
-
1.3.027 Mar 2026Release notes
Open source →Add DocxReader class that parses existing DOCX files back into
DocxDocument objects, enabling round-trip: read → modify → write.Supports all paragraph styles, text formatting, lists with nesting,
tables with borders/colspan/rowspan, hyperlinks, bookmarks, page
breaks, and line breaks. Includes typed exceptions and graceful
degradation for unknown styles and missing optional parts.New dependency: xml ^6.0.0 (pure Dart XML parser).
124 tests covering round-trip, unit parsers, edge cases.
Bumps version to 1.3.0.Release notes
Open source →Added
DOCX Reader
DocxReaderclass - Parse existing DOCX files intoDocxDocumentobjectsDocxReader().read(Uint8List bytes) → DocxDocument- Full round-trip support: read → modify → write
DocumentReadertype alias for format-agnostic code
- Supported features:
- All paragraph styles (headings 1-4, subtitle, caption, quote, code block, footnote)
- Text formatting (bold, italic, underline, strikethrough, color, background color)
- Text alignment (left, center, right, justify)
- Lists (bullet, dash, numbered, alpha, roman) with indent levels
- Tables with borders, colspan, rowspan, cell properties
- External hyperlinks and internal bookmark references
- Page breaks and line breaks
- Mixed content order (paragraphs and tables)
- Document metadata (title, author) from
docProps/core.xml
- Typed exceptions:
InvalidDocxArchiveException- invalid ZIP archiveMissingDocxPartException- missing required DOCX partInvalidDocxXmlException- malformed XML content
- Graceful degradation:
- Missing
styles.xml/numbering.xml→ default mappings - Unknown styles → fallback to
normal - Images, charts, embedded objects → silently skipped
- Missing
- New dependency:
xml: ^6.0.0(pure Dart XML parser) - 124 tests covering round-trip, unit parsers, edge cases, and error handling
-
1.2.228 Feb 2026Release notes
Open source →Fixed
PDF Generator
- Accurate text width estimation - Replaced rough character-width approximation (
0.5 * fontSize) with Adobe Helvetica AFM glyph-width table for precise text layout- Helvetica variants use per-character widths from the standard Adobe Font Metrics
- Courier (monospace) uses correct
0.6 * fontSizeper glyph - Includes width data for Latin-1 supplement and Polish characters
- Underline & strikethrough in table cells - Table cell text segments now render underline and strikethrough decorations correctly (previously only worked outside tables)
- Per-segment width calculation - Line width is now computed per text segment (respecting each segment's font) instead of joining all text and measuring as one
- Accurate text width estimation - Replaced rough character-width approximation (
-
1.2.123 Feb 2026Release notes
Open source →Replace <w:pageBreakBefore/> paragraph property with explicit
<w:br w:type="page"/> run element for cross-platform compatibility.
Bump version to 1.2.1.Co-Authored-By: Claude Opus 4.6 [email protected]
Release notes
Open source →Fixed
Page Breaks
- Windows Word compatibility - Page breaks now work correctly in Microsoft Word on Windows
- Replaced
<w:pageBreakBefore/>paragraph property with explicit<w:br w:type="page"/>run element - Applies to regular paragraphs, table cell paragraphs, and TOC page breaks
- No API changes -
pageBreakBefore: trueworks exactly the same way
- Replaced
- Unit tests - Added
test/page_break_test.dartwith 11 tests covering page break XML generation, DOCX and PDF output
- Windows Word compatibility - Page breaks now work correctly in Microsoft Word on Windows
-
1.2.019 Feb 2026Release notes
Open source →Added
Per-Cell Border Control
- Cell-level borders - Override table-level borders on individual cells
DocxCellBordersclass withtop,bottom,left,rightbordersCellBorderstype alias for format-agnostic code- Convenience constructors:
.all(),.none(),.bottom() - Custom border per side with
color,size, andstyle - Cell borders override table-level borders when set
- Works in both DOCX (
<w:tcBorders>) and PDF output
bordersparameter onDocxTableCell- Both constructor and.text()factory acceptDocxCellBorders?- Unit tests - Added
test/cell_borders_test.dartwith 26 tests covering model, XML generation, and PDF/DOCX output
- Cell-level borders - Override table-level borders on individual cells
-
1.1.223 Jan 2026Release notes
Open source →Fixed
PDF Generator
- Bullet points display correctly - Fixed encoding issue where bullet character (•) was displaying as "•"
- Rewrote
_escapePdfStringto properly convert Unicode characters to WinAnsi octal escapes
- Rewrote
- Extended character support - Added proper encoding for:
- Typography: bullet (•), en-dash (–), em-dash (—), smart quotes (' ' " "), ellipsis (…), euro (€), trademark (™), copyright (©), registered (®)
- German: Ä, Ö, Ü, ä, ö, ü, ß
- French: À, Â, Ç, È, É, Ê, Ë, Î, Ï, Ô, Ù, Û, à, â, ç, è, é, ê, ë, î, ï, ô, ù, û
- Polish: Ó, ó (native support), other Polish characters (ą, ę, ć, ź, ż, ń, ł, ś) fall back to base ASCII equivalents due to WinAnsi limitations
DOCX Generator
- List detection fix - Fixed issue where
listDash,listNumberAlpha, andlistNumberRomanstyles didn't trigger inclusion ofnumbering.xml, causing lists to display incorrectly - List level specification - Added explicit
<w:ilvl w:val="0"/>to all list styles instyles.xmlfor consistent formatting
- Bullet points display correctly - Fixed encoding issue where bullet character (•) was displaying as "•"
-
1.1.021 Jan 2026Release notes
Open source →Added
Line Breaks (Soft Return) - DOCX only
- Automatic
\nconversion - Newline characters in text are now converted to<w:br/>line breaksDocxParagraph.text('Line 1\nLine 2\nLine 3')
- Explicit line break runs - New
DocxRun.lineBreak()constructor for manual line breaks- Allows different formatting before and after line break
DocxParagraph(runs: [DocxRun('Bold', bold: true), DocxRun.lineBreak(), DocxRun('Normal')])
- Line breaks create soft returns within a paragraph (like Shift+Enter in Word)
- Automatic
-
1.0.121 Dec 2025Release notes
Open source →Added
Hyperlinks
- External links - Link text to external URLs
DocxRun('text', hyperlink: 'https://example.com')- Automatic blue color and underline styling
Internal Links (Bookmarks)
- Bookmarks - Create named anchors in document
DocxParagraph.heading('Title', level: 1, bookmarkName: 'section1')
- Bookmark references - Link to internal bookmarks
DocxRun('Go to section', bookmarkRef: 'section1')
Table of Contents
- Automatic TOC generation
DocxDocument(includeTableOfContents: true)- Configurable title (
tocTitle) - Configurable heading depth (
tocMaxLevel: 1-4) - Word auto-updates TOC on document open
Fixed
- Repository URL in pubspec.yaml
- External links - Link text to external URLs
-
1.0.019 Dec 2025Release notes
Open source →Added
Document Generation
- DocxGenerator - Generates Microsoft Word DOCX files
- Pure Dart implementation using OOXML standard
- Configurable default font name and size
- Compatible with Word 2007+, Google Docs, LibreOffice
- PdfGenerator - Generates PDF documents
- Pure Dart implementation (PDF 1.4 standard)
- No native dependencies
- Cross-platform support including Web
Document Model
- Document - Container for document content
- Title and author metadata
- Mixed content support (paragraphs and tables)
- Creation and modification timestamps
Text Formatting
- TextRun - Rich text formatting
- Bold, italic, underline, strikethrough
- Text color (hex format)
- Background/highlight color
- Text alignment - Left, center, right, justify
Paragraph Styles
- Headings (H1-H4)
- Subtitle
- Caption
- Block quote
- Code block (monospace)
- Footnote
Lists
- Bullet lists (•)
- Dash lists (–)
- Numbered lists (1, 2, 3)
- Alphabetic lists (a, b, c)
- Roman numeral lists (I, II, III)
- Nested lists up to 9 levels deep
Tables
- Basic table support with rows and cells
- Cell background colors
- Cell text alignment
- Table borders (all, none, outside only)
- Border styles (single, double, dashed, dotted)
Other Features
- Page breaks
- Emoji support (DOCX only - Word handles natively)
- Cross-platform: iOS, Android, Web, macOS, Windows, Linux
Documentation
- Complete API reference
- Usage examples for all features
- Platform-specific guides (Web, Mobile)
- DocxGenerator - Generates Microsoft Word DOCX files