Browse our Products
Aspose.Words for Python via .NET 26.5 Release Notes
Major Features
There are 40 improvements and fixes in this regular monthly release. The most notable are:
- Digital Signing: Added the ability to configure various additional signing options.
- Document Importing: Added support for importing nodes with expanded formatting options.
- HTML Rendering: Added support for Far East vertical orientation in HTML within EQ fields.
- Font Rendering: Improved the handling of AAT-enabled fonts when rendering to fixed-page formats.
- Field Rendering: Improved the visual rendering of the EQ field’s frame.
Full List of Issues Covering all Changes in this Release
Expand to view the full list of issues.
- Support MSO properties during import borders
- Added ability to import nodes with additional formatting options
- Added ability to set various additional signing options
- Structured document tags around table cells are not editable in PDF
- Incorrect page number in TOC after updating fields
- Table is not detected
- Font formatting is imported incorrectly from MsoHtml
- Radial SVG gradient is rendered incorrectly
- InvalidOperationException is thrown when comparing documents
- FileCorruptedException is thrown upon loading HTML when EncoderFallback.ExceptionFallback and DecoderFallback.ExceptionFallback are specified
- Content is moved to next page after rendering
- Part of content is moved to next page after rendering
- Part of content is moved to next page
- Text in table cell is cropped after rendering
- Chinese text is wrapped improperly in table cell
- Bold Lato-Light text looks incorrectly after rendering
- The 9th page is rendered as completely black
- Provide a property to check whether shape has any effects applied
- Shape effects are lost when HtmlSaveOptions.ScaleImageToShapeSize is set to false
- SVG image is not scaled properly upon exporting to HTML
- Numbering is added to the paragraph after open/save ODT
- DOCX to PDF: images rendered as small fragments instead of full size
- ArgumentOutOfRangeException is thrown upon extracting page
- Update plugin documentation on docs.aspose.net/words
- ExtractPages method improperly splits the page
- Shape is lost after inserting document using with InsertDocumentInline
- EQ field orientation is incorrect after converging to HTML
- EQ field is rendered improperly
- TOC child-level numbering mismatch after UpdateFields()
- Memory leak upon cloning document
- Documents compare result does not patch MS Word
- Missed page numbers upon PDF to DOCX conversion
- Text-level formatting changes after XML mapping with Track Changes enabled
- Attributes are not regenerated when absent during DOCX re-save
- Compare documents produce different output than MS Word in lists
- Document comparison shows changes in unchanged documents
- Line spacing of text formatted with Cambria math font is incorrect after rendering
- Table width is too thin after inserting from html into existing table
- Merge field value is not expected
- Part of content is moved to next page
Public API and Backward Incompatible Changes
This section lists public API changes that were introduced in Aspose.Words for Python via .NET 26.5. It includes not only new and obsoleted public methods, but also a description of any changes in the behavior behind the scenes in Aspose.Words for Python via .NET which may affect existing code. Any behavior introduced that could be seen as regression and modifies the existing behavior is especially important and is documented here.
Added ability to import nodes with additional formatting options
A new public ImportNode overload has been added into Aspose.Words.DocumentBase class. Also added a new ResolveThemeColors public option into Aspose.Words.ImportFormatOptions class.
This use case explains how to import nodes with expanding theme colors in shapes:
src_doc = aw.Document()
builder = aw.DocumentBuilder(doc=src_doc)
# Move to the primary footer and insert a shape that uses theme colors.
builder.move_to_header_footer(aw.HeaderFooterType.FOOTER_PRIMARY)
shape = builder.insert_shape(shape_type=aw.drawing.ShapeType.RECTANGLE, width=100, height=50)
shape.stroke.fore_theme_color = aw.themes.ThemeColor.DARK1
dst_doc = aw.Document()
# Import the source footer into the destination document with theme colors resolved,
# so the shape preserves its actual color from the source document.
footer = src_doc.first_section.headers_footers.get_by_header_footer_type(aw.HeaderFooterType.FOOTER_PRIMARY)
options = aw.ImportFormatOptions()
options.resolve_theme_colors = True
imported_footer = dst_doc.import_node(src_node=footer, is_import_children=True, import_format_mode=aw.ImportFormatMode.KEEP_SOURCE_FORMATTING, import_format_options=options).as_header_footer()
dst_doc.first_section.headers_footers.add(imported_footer)
dst_doc.save(file_name=ARTIFACTS_DIR + 'DocumentBase.ImportNodeWithResolveThemeColors.docx')Added ability to set various additional signing options
The new public properties have been added into Aspose.Words.DigitalSignatures.SignOptions class. Also added new public options into Aspose.Words.DigitalSignatures.DigitalSignature class.
This use case explains how to set additional signing options:
sign_options = aw.digitalsignatures.SignOptions()
sign_options.windows_version = '10.0'
sign_options.application_version = '16.0.19127'
sign_options.office_version = '16.0.19127/27'
sign_options.horizontal_resolution = 1024
sign_options.vertical_resolution = 768
sign_options.color_depth = 24
cert_bytes = system_helper.io.File.read_all_bytes(MY_DIR + 'morzal.pfx')
cert = aw.digitalsignatures.CertificateHolder.create(cert_bytes=cert_bytes, password='aw')
aw.digitalsignatures.DigitalSignatureUtil.sign(src_file_name=MY_DIR + 'Digitally signed.docx', dst_file_name=ARTIFACTS_DIR + 'DigitalSignatureUtil.docx', cert_holder=cert, sign_options=sign_options)
signed_doc = aw.Document(file_name=ARTIFACTS_DIR + 'DigitalSignatureUtil.docx')
signature = signed_doc.digital_signatures[0]
self.assertEqual(1, signed_doc.digital_signatures.count)
self.assertTrue(signature.is_valid)
self.assertEqual('10.0', signature.windows_version)
self.assertEqual('16.0.19127', signature.application_version)
self.assertEqual('16.0.19127/27', signature.office_version)
self.assertEqual(1024, signature.horizontal_resolution)
self.assertEqual(768, signature.vertical_resolution)
self.assertEqual(24, signature.color_depth)