NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2095 most downloaded on pub.dev
Pure Dart library for generating and reading DOCX and PDF documents with rich formatting, tables, lists. Cross-platform with no native dependencies.
Last release 1 months ago
24 Aug 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 16 of 16 stable releases
Nothing withdrawn
no release was ever pulled
9 months old
16 releases · first in 2025
One column per month.
xml raised to ^7.0.0; the reader now uses its namespaceUri argument instead of the deprecated namespace.
DocxImage embeds PNG and JPEG bytes, reading the
intrinsic pixel size straight from the file header, so a picture needs no
explicit dimensions. width/height scale it, and giving only one keeps
the aspect ratio. Add one with document.addImage(...); altText becomes
the accessibility description and alignment places it on the page.DocxHeaderFooter on
DocxDocument.header / .footer repeats content on every page.
DocxHeaderFooter.pageNumber() builds the usual Page 3 of 12 footer from
the new DocxRun.pageNumber() and DocxRun.pageCount() field runs, which
the word processor recalculates on open.DocxParagraph.rtl emits <w:bidi/> and
DocxRun.rtl emits <w:rtl/>, for Arabic, Hebrew and Persian. Both survive
a read-back through DocxReader.DocxRun.fontSize (in points) overrides the
document default in both DOCX and PDF output; the PDF line height grows with
the tallest run on the line.DocxCellPadding on
DocxTable.cellPadding (table-wide) or DocxTableCell.padding (per cell),
declared in twips or through DocxCellPadding.points(...). Honoured by both
generators and read back by DocxReader.flutter: constraint from environment. Nothing under lib/
imports Flutter, and the bound made dart pub get refuse with "docs_gee
requires the Flutter SDK", which had been failing the publish dry-run
workflow since April and locked the package out of pure Dart projects.xml raised to ^7.0.0; the reader now uses its namespaceUri argument
instead of the deprecated namespace.flutter_lints raised to ^6.0.0; the package analyzes clean under the
stricter rule set.Set the pubspec documentation: field so the pub.dev "Documentation" link points to the hosted docs at codigee.com/open-source/docs-gee.
documentation: field so the pub.dev "Documentation" link
points to the hosted docs at codigee.com/open-source/docs-gee.Added a Documentation section to the README linking the hosted docs at codigee.com/open-source/docs-gee: overview, document-building guide, and the Do
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 (H2
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.
DocxScript enum
(Script alias). Set script: DocxScript.superscript or
DocxScript.subscript on a DocxRun for exponents (x²), chemical
formulas (H₂O), ordinals and footnote markers.
<w:vertAlign> run property.<w:vertAlign> is parsed back, so scripts survive a full
read → modify → write round-trip.feat: add DocxParagraph.empty() factory; bump to 1.3.4
feat: add DocxParagraph.empty() factory; bump to 1.3.4
DocxParagraph.empty() factory for inserting blank spacer paragraphs
between content blocks.Replace deprecated 'library docs_gee;' directive with modern unnamed 'library;'.
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.
library docs_gee; directive with the modern
unnamed library; declaration in the barrel file.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.docs: bump to 1.3.2 with corrected README versions
docs: bump to 1.3.2 with corrected README versions
chore: bump version to 1.3.1
chore: bump version to 1.3.1
>=3.2.0 <4.0.0>=3.16.0Add DocxReader class that parses existing DOCX files back into DocxDocument objects, enabling round-trip: read → modify → write.
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.
DocxReader class - Parse existing DOCX files into DocxDocument objects
DocxReader().read(Uint8List bytes) → DocxDocumentDocumentReader type alias for format-agnostic codedocProps/core.xmlInvalidDocxArchiveException - invalid ZIP archiveMissingDocxPartException - missing required DOCX partInvalidDocxXmlException - malformed XML contentstyles.xml / numbering.xml → default mappingsnormalxml: ^6.0.0 (pure Dart XML parser)Accurate text width estimation - Replaced rough character-width approximation (0.5 * fontSize) with Adobe Helvetica AFM glyph-width table for precise
0.5 * fontSize) with Adobe Helvetica AFM glyph-width table for precise text layout
0.6 * fontSize per glyphReplace <w:pageBreakBefore/> paragraph property with explicit <w:br w:type="page"/> run element for cross-platform compatibility. Bump version to 1.2.
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 noreply@anthropic.com
<w:pageBreakBefore/> paragraph property with explicit <w:br w:type="page"/> run elementpageBreakBefore: true works exactly the same waytest/page_break_test.dart with 11 tests covering page break XML generation, DOCX and PDF outputCell-level borders - Override table-level borders on individual cells
DocxCellBorders class with top, bottom, left, right bordersCellBorders type alias for format-agnostic code.all(), .none(), .bottom()color, size, and style<w:tcBorders>) and PDF outputborders parameter on DocxTableCell - Both constructor and .text() factory accept DocxCellBorders?test/cell_borders_test.dart with 26 tests covering model, XML generation, and PDF/DOCX outputBullet points display correctly - Fixed encoding issue where bullet character (•) was displaying as "•"
_escapePdfString to properly convert Unicode characters to WinAnsi octal escapeslistDash, listNumberAlpha, and listNumberRoman styles didn't trigger inclusion of numbering.xml, causing lists to display incorrectly<w:ilvl w:val="0"/> to all list styles in styles.xml for consistent formattingAutomatic `\n` conversion - Newline characters in text are now converted to line breaks
\n conversion - Newline characters in text are now converted to <w:br/> line breaks
DocxParagraph.text('Line 1\nLine 2\nLine 3')DocxRun.lineBreak() constructor for manual line breaks
DocxParagraph(runs: [DocxRun('Bold', bold: true), DocxRun.lineBreak(), DocxRun('Normal')])External links - Link text to external URLs
DocxRun('text', hyperlink: 'https://example.com')DocxParagraph.heading('Title', level: 1, bookmarkName: 'section1')DocxRun('Go to section', bookmarkRef: 'section1')DocxDocument(includeTableOfContents: true)tocTitle)tocMaxLevel: 1-4)DocxGenerator - Generates Microsoft Word DOCX files
Your coding agent can read these notes before it upgrades. Set up the MCP server →