- Fix #1383 Revert lxml<=4.9.2 pin that breaks Python 3.12 install
- Fix #1385 Support use of Part._rels by python-docx-template
- Add support and testing for Python 3.12
- Fix #531, #1146 Index error on table with misaligned borders
- Fix #1335 Tolerate invalid float value in bottom-margin
- Fix #1337 Do not require typing-extensions at runtime
- Add BlockItemContainer.iter_inner_content()
- Fix #1256: parse_xml() and OxmlElement moved.
- Add Hyperlink.fragment and .url
- Remove Python 2 support. Supported versions are 3.7+
- Fix #85: Paragraph.text includes hyperlink text
- Add #1113: Hyperlink.address
- Add Hyperlink.contains_page_break
- Add Hyperlink.runs
- Add Hyperlink.text
- Add Paragraph.contains_page_break
- Add Paragraph.hyperlinks
- Add Paragraph.iter_inner_content()
- Add Paragraph.rendered_page_breaks
- Add RenderedPageBreak.following_paragraph_fragment
- Add RenderedPageBreak.preceding_paragraph_fragment
- Add Run.contains_page_break
- Add Run.iter_inner_content()
- Add Section.iter_inner_content()
- Small build changes and Python 3.8 version changes like collections.abc location.
- Revert use of expanded package directory for default.docx to work around setup.py problem with filenames containing square brackets.
- Fix gap in MANIFEST.in that excluded default document template directory
- Add support for headers and footers
- Add _Row.height_rule
- Add _Row.height
- Add _Cell.vertical_alignment
- Fix #455: increment next_id, don't fill gaps
- Add #375: import docx failure on --OO optimization
- Add #254: remove default zoom percentage
- Add #266: miscellaneous documentation fixes
- Add #175: refine MANIFEST.ini
- Add #168: Unicode error on core-props in Python 2
- Add #257: add Font.highlight_color
- Add #261: add ParagraphFormat.tab_stops
- Add #303: disallow XML entity expansion
- Fix #149: KeyError on Document.add_table()
- Fix #78: feature: add_table() sets cell widths
- Add #106: feature: Table.direction (i.e. right-to-left)
- Add #102: feature: add CT_Row.trPr
- Fix #151: tests won't run on PyPI distribution
- Fix #124: default to inches on no TIFF resolution unit
- Add #121, #135, #139: feature: Font.color
Fix #94: picture prints at wrong size when scaled
Extract docx.document.Document object from DocumentPart
Refactor docx.Document from an object into a factory function for new docx.document.Document object. Extract methods from prior docx.Document and docx.parts.document.DocumentPart to form the new API class and retire docx.Document class.
Migrate Document.numbering_part to DocumentPart.numbering_part. The numbering_part property is not part of the published API and is an interim internal feature to be replaced in a future release, perhaps with something like Document.numbering_definitions. In the meantime, it can now be accessed using
Document.part.numbering_part
.
- Fix #140: Warning triggered on Document.add_heading/table()
- Add styles. Provides general capability to access and manipulate paragraph, character, and table styles.
- Add ParagraphFormat object, accessible on Paragraph.paragraph_format, and
providing the following paragraph formatting properties:
- paragraph alignment (justfification)
- space before and after paragraph
- line spacing
- indentation
- keep together, keep with next, page break before, and widow control
- Add Font object, accessible on Run.font, providing character-level
formatting including:
- typeface (e.g. 'Arial')
- point size
- underline
- italic
- bold
- superscript and subscript
The following issues were retired:
- Add feature #56: superscript/subscript
- Add feature #67: lookup style by UI name
- Add feature #98: Paragraph indentation
- Add feature #120: Document.styles
Backward incompatibilities
Paragraph.style now returns a Style object. Previously it returned the style name as a string. The name can now be retrieved using the Style.name property, for example, paragraph.style.name.
- Add feature #69: Table.alignment
- Add feature #29: Document.core_properties
- Add feature #65: _Cell.merge()
- Add feature #45: _Cell.add_table()
- Add feature #76: _Cell.add_paragraph()
- Add _Cell.tables property (read-only)
- Add Table.autofit
- Add feature #46: _Cell.width
- Fix: Word does not interpret <w:cr/> as line feed
- Add feature #14: Run.add_picture()
- Add feature #68: Paragraph.insert_paragraph_before()
- Add feature #51: Paragraph.alignment (read/write)
- Add feature #61: Paragraph.text setter
- Add feature #58: Run.add_tab()
- Add feature #70: Run.clear()
- Add feature #60: Run.text setter
- Add feature #39: Run.text and Paragraph.text interpret 'n' and 't' chars
- Add feature #15: section page size
- Add feature #66: add section
- Add page margins and page orientation properties on Section
- Major refactoring of oxml layer
- Add feature #19: Run.underline property
- Add feature #17: character style
- Fix issue #23, Document.add_picture() raises ValueError when document contains VML drawing.
- Add 20 tri-state properties on Run, including all-caps, double-strike, hidden, shadow, small-caps, and 15 others.
- Advance from alpha to beta status.
- Add pure-python image header parsing; drop Pillow dependency
- Hotfix: issue #4, Document.add_picture() fails on second and subsequent images.
- Complete Python 3 support, tested on Python 3.3
- Fix setup.py error on some Windows installs
- Full object-oriented rewrite
- Feature-parity with prior version
- text: add paragraph, run, text, bold, italic
- table: add table, add row, add column
- styles: specify style for paragraph, table
- picture: add inline picture, auto-scaling
- breaks: add page break
- tests: full pytest and behave-based 2-layer test suite
- Round-trip .docx file, preserving all parts and relationships
- Load default "template" .docx on open with no filename
- Open from stream and save to stream (file-like object)
- Add paragraph at and of document