docx_file_viewer 1.0.3
docx_file_viewer: ^1.0.3 copied to clipboard
A Flutter package for rendering DOCX files with native widgets. View, zoom, search, and interact with Word documents.
Changelog #
All notable changes to this project will be documented in this file.
1.0.3 - 2026-07-26 #
๐ Bug Fixes #
- Image/shape sizing was too small โ
DocxImage/DocxInlineImage/DocxShapeBlockdimensions are stored in points, but were passed straight through to Flutter'swidth/heightas if already logical pixels; they're now correctly scaled viaDocxUnits.pointsToPixels(points ร 96/72), matching how the same document renders in Word DocxUnits.twipsToPixelsdivided by 20 (twips โ points) and stopped there instead of continuing on to pixels; fixed to twips โ points โ pixels (twips / 20 * 1.333)- List bullets stored as Word's Symbol/Wingdings Private-Use-Area glyphs (e.g.
U+F0B7) rendered as a "tofu" box on platforms without that exact font installed; these now fall back to a portable Unicode bullet instead - Dotted/dashed paragraph and table borders were invisible โ Flutter's
BorderSideonly supports solid or none, and they were previously mapped toBorderStyle.none; they're now drawn solid instead of silently disappearing (the closer of the two approximations)
๐ง Improvements #
- Bumped
docx_creatordependency to1.3.0
๐งช Tests #
- Added
test/rendering_accuracy_fixes_test.dartโ covers the twips/points โ pixel scaling fix (image and shape sizing) and the Private-Use-Area bullet fallback
1.0.2 - 2026-05-16 #
โจ New Features #
- First-line indent (
w:firstLine) โ positiveindentFirstLinenow prepends a zero-heightWidgetSpanspacer so the first line is indented relative to the paragraph body - Hanging indent (
w:hanging) โ negativeindentFirstLinevalues reduce the container left padding to approximate hanging-indent layout - Line-rule variants โ
lineRulevalues'exact'and'atLeast'are now handled separately from'auto':exactclamps the scale to 0.5โ10,atLeastfloors it at 1.0
๐ Bug Fixes #
- Multi-column vertical merge placeholder โ a cell spanning N columns across multiple rows previously produced N separate thin placeholders in continuation rows; it now correctly emits one wide placeholder whose width covers all spanned columns
๐งช Tests #
- Added
test/parser_test.dartโ 5 unit tests covering the cascade rule, table grid matrix, crash immunity, first-line indent spacer, and line-rule variants - Added
test/widget_test.dartโ 4 widget tests covering row heightConstrainedBox, multi-column vMerge placeholder child count, search highlight character ranges, and floating imageRowlayout
๐ง Improvements #
- Extracted
_resolveLineHeightScale()helper inParagraphBuilderto centralise line-height logic TableBuilder._buildRow()now tracks a parallelskipColSpansarray alongsideskipCountsto correctly group multi-column vertical merges- Added
.claude/andgraphify-out/to.gitignore
1.0.1 - 2026-01-07 #
๐ Stable Release #
This release marks the stable 1.0.0 version with a complete architecture overhaul and significant feature improvements.
โจ New Features #
- Paged View Mode - Documents can now be rendered in distinct page blocks (print layout style) in addition to continuous scrolling
- Content-Aware Pagination - Smart page breaks based on content height estimation
- Embedded Font Loading - Full support for OOXML font embedding with deobfuscation
- Theme Color Resolution - Proper handling of theme colors with tint/shade modifiers
- Drop Cap Support - Rich drop cap rendering with proper text wrapping
- Floating Image Layout - Left/right floating images with text wrap
- Headers & Footers - First page, odd/even page header/footer support
- Footnotes & Endnotes - Interactive footnote/endnote references with tap-to-view dialog
- Table Conditional Formatting - Support for first row, last row, first column, last column, and banded styles
- Checkbox Support - Interactive checkbox rendering in documents
- Shape Rendering - Basic shape support (rectangles, text boxes)
๐ง Improvements #
- Search Navigation - Auto-scroll to search matches with dynamic alignment
- Style Resolution - Full style inheritance from named styles, paragraph, and run properties
- Color Resolution - Theme color, tint, and shade calculation
- Border Rendering - Complete border support for paragraphs and tables
- Performance - Optimized widget generation for large documents
๐๏ธ Architecture #
- Migrated to modular builder pattern (
ParagraphBuilder,TableBuilder,ListBuilder, etc.) - Introduced
DocxWidgetGeneratoras the central rendering engine - Added
DocxViewThemefor comprehensive theming support - Added
DocxSearchControllerfor programmatic search control - Added
BlockIndexCounterfor search indexing
0.0.7 #
Added #
- Text alignment from styles now parsed
- Background color and borders now parsed for paragraph and text elements
