Aspose.Words for Python via .NET 22.6 Release Notes

Major Features

There are 69 improvements and fixes in this regular monthly release. The most notable are:

  • DrawingML charts public API was extended to support gradient, texture and pattern fills.
  • Implemented a solid text fill effect inheritance exception that mimics the behavior of MS Word.
  • Saving progress notifications were extended for ODT format.

Full List of Issues Covering all Changes in this Release (Reported by .NET Users)

Key Summary Category
WORDSNET-6264 Left indent of text in second line of List is incorrect in PDF New Feature
WORDSNET-7282 Text lines in Lists do not have correct left indentation in PDF New Feature
WORDSNET-7284 Vertical space between Picture and TextBox is lost in PDF New Feature
WORDSNET-22072 Add support for gradient, texture and pattern fills in Charts New Feature
WORDSNET-22890 Add loading progress notification for ODT documents New Feature
WORDSNET-23059 Rendering PDFs directly to fixed formats without intermediate flow layout New Feature
WORDSNET-23167 Consider supporting “User Field” upon importing ODT New Feature
WORDSNET-9646 DOC to PDF conversion issue with image rendering Bug
WORDSNET-12365 Font rendering issue with Persian text in output PDF Bug
WORDSNET-14308 Bookmarks are lost after using Document.Compare method Bug
WORDSNET-18806 Text placement in the axle labels is different after the conversion in PDF Bug
WORDSNET-20805 CSS Borders not rendering around div within a div Bug
WORDSNET-21068 One Table became multiple Tables when converting DOCX to HTML Bug
WORDSNET-21069 Wrong Style Color applied to some Rows when converting DOCX to HTML Bug
WORDSNET-22550 Document.Compare breaks inserted cross-references Bug
WORDSNET-22805 HTML to PDF conversion issue with page border Bug
WORDSNET-22952 Bookmark is lost after comparing documents Bug
WORDSNET-23035 InvalidOperationException: Infinite loop detected. Check if fixed Bug
WORDSNET-23154 Vertical axis scaling is changed after rendering chart Bug
WORDSNET-23581 System.NotImplementedException occurs on accessing the Fill property Bug
WORDSNET-23613 Tables were not detected during PDF to DOCX conversion Bug
WORDSNET-23614 Exception on conversion to PDF Bug
WORDSNET-23615 Output AZW3 document isn’t correctly displayed in Kindle for PC Bug
WORDSNET-23627 Placeholder is rendered instead of real value in data label Bug
WORDSNET-23633 Remove obsolete properties from ChartDataPointCollection and ChartDataLabelCollection classes Bug
WORDSNET-23659 Data labels of stacked bar chart are lost after rendering Bug
WORDSNET-23694 RevisionColor missing ClassicRed and ClassicBlue values Bug
WORDSNET-23700 Text in list item starts in wrong position after wrapping around paragraph Bug
WORDSNET-23726 Fix StringComparison warnings Bug
WORDSNET-23727 Fix some StringComparison warnings in the code Bug
WORDSNET-23738 NullReferenceException is thrown upon rendering document Bug
WORDSNET-23744 InvalidOperationException is thrown on DOCX to DOC conversion Bug
WORDSNET-23756 InvalidCastException is thrown when set text of bookmark, which is inside OfficeMath Bug
WORDSNET-23761 Header/footer does not match MS Word on RTF to DOCX conversion Bug
WORDSNET-23773 Part of content is missed after loading RTF document Bug
WORDSNET-23777 Default content of SDT becomes visible after processing document Bug
WORDSNET-23780 Paragraph first line indentation is incorrect after rendering Bug
WORDSNET-23784 ArgumentOutOfRangeException is thrown upon appending document Bug
WORDSNET-23785 Document.Save method modifying documents unexpectedly Bug
WORDSNET-23790 Tab of list label is highlighted after rendering Bug
WORDSNET-23792 Review of Particular file with “Gabriola” font is displayed incorrect in FF/Chrome Bug
WORDSNET-23796 InvalidOperationException is thrown upon rendering document Bug
WORDSNET-23806 ArgumentOutOfRangeException is thrown upon conversion from DOC to DOCX Bug
WORDSNET-23808 Separator elements are added instead of spaces Bug
WORDSNET-23809 Text images are lost during Pdf2Word conversion Bug
WORDSNET-23812 Timestamp data of the inserted/deleted text gets modified Bug
WORDSNET-23813 Attempt to read empty bfchar section gives InvalidOperationException Bug
WORDSNET-23818 FormatException is thrown upon rendering document with chart Bug
WORDSNET-23826 Aspose.Words produces corrupted DOCX document Bug
WORDSNET-23834 Section breaks are missing from XML file Bug
WORDSNET-23836 Progress does not work while loading blank file Bug
WORDSNET-23842 Text with effects is rendered improperly Bug
WORDSNET-23843 Extra space is added after table Bug
WORDSNET-23844 List numbering is wrong for lists from HTML altChunk’s Bug
WORDSNET-23859 FileCorruptedException is thrown upon loading ODT document Bug
WORDSNET-23870 Export equitation matrix columns alignment Bug
WORDSNET-23871 Support EQ field overstrike alignment Bug
WORDSNET-23876 Rejecting delete revision removes the deleted text Bug
WORDSNET-23885 Shape becomes visible after open/save DOCX document Bug
WORDSNET-23906 TypeInitializationException is thrown when Shaping.HarfBuzz is used in .NET6 Bug
WORDSNET-23908 Resaved document throws an error in MS Word Bug

Full List of Issues Covering all Changes in this Release (Reported by Java Users)

Key Summary Category
WORDSNET-21860 DOCX to PDF - A picture in table moves to next page resulting in increase in page count Bug
WORDSNET-22581 Problem wirh bookmark upon comparing documents Bug
WORDSNET-22810 Error converting DOCX to HTML Bug
WORDSNET-23778 Revision on list item is rendered incorrectly Bug
WORDSNET-23793 Image resolution is changed after saving to HTML with ScaleImageToShapeSize = false Bug
WORDSNET-23797 Table Alignment Issue in converting RTF files to PDF Bug
WORDSNET-23803 stylePaneFormatFilter values are chnaged after open/save DOCX document Bug
WORDSNET-23840 Part of content is invisible after rendering Bug

Public API and Backward Incompatible Changes

This section lists public API changes that were introduced in Aspose.Words 22.6. 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 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 new public constants to RevisionColor enum

Related issue: WORDSNET-23694

Starting from version 2019 of MS Word, it has the ability to set additional colors for revisions. A new revision color constants have been added.

class RevisionColor(enum.IntEnum):
    ...

    # Represents 0000ff color.
    CLASSIC_BLUE = 4

    # Represents ff0000 color.
    CLASSIC_RED = 5

Now it is really easy to set new colors for the document revisions.

Use Case:

# Set new color for the insert revisions
doc.layout_options.revision_options.inserted_text_color = aw.layout.RevisionColor.CLASSIC_BLUE

Changed behavior of Fill.one_color_gradient and Fill.two_color_gradient methods

Related issue: WORDSNET-22072

The following changes have been implemented:

  1. Now the one_color_gradient and two_color_gradient methods of the Fill class can be used to create gradient fills in charts (see ChartDataPoint.format.fill, ChartMarker.format.fill and ChartSeries.format.fill properties). NotImplementedException was thrown in the previous versions.

  2. Behavior of the following overloads of the one_color_gradient and two_color_gradient methods have been changed:

    class Fill:
        ...
    
        def one_color_gradient(self, color: drawing.Color, style: aw.drawing.GradientStyle, variant: aw.drawing.GradientVariant, degree: float):
            """Sets the specified fill to a one-color gradient using the specified color.
            
            :param color: The color to build the gradient.
            :param style: The gradient style.
            :param variant: The gradient variant.
            :param degree: The gradient degree. Can be a value from 0.0 (dark) to 1.0 (light)."""
            ...
     
        def two_color_gradient(self, color1: drawing.Color, color2: drawing.Color, style: aw.drawing.GradientStyle, variant: aw.drawing.GradientVariant):
            """Sets the specified fill to a two-color gradient.
    
            :param color1: The first color to build the gradient.
            :param color2: The second color to build the gradient.
            :param style: The gradient style.
            :param variant: The gradient variant."""
            ...

In the past, their behavior was as if a gradient was created using the overloads without specifying colors, and then fore and back color were set. Now the behavior is reversed: as if you first define the colors, and then using the overloads to build the gradient.

Removed obsolete PdfDigitalSignatureHashAlgorithm enum values

Related issue: WORDSNET-23473

Removed obsolete PdfDigitalSignatureHashAlgorithm enum values SHA1 and MD5.

SHA1 and MD5 hash algorithms for digital signature are deprecated in the latest PDF specification due to security issues. So, please, use the one of the available algorithms instead.

Removed obsolete methods of ChartDataPointCollection and ChartDataLabelCollection classes

Related issue: WORDSNET-23633

The following obsolete methods have been removed:

class ChartDataLabelCollection:
    ...

    def add(self, index: int) -> ChartDataLabel:
        """Adds new ChartDataLabel at the specified index.

        :param index: Target data label index.
        
        Obsolete. When ChartSeries.has_data_labels is True, all data labels are available in this collection."""
        ...
 
    def remove_at(self, index: int):
        """Clears format of a ChartDataLabel at the specified index.
        
        :param index: The zero-based index of the chart data label to clear format.
        
        Obsolete. Use the ChartDataLabel.clear_format method instead."""
        ...
 
    def clear(self):
        """Clears format of all ChartDataLabel in this collection.
        
        Obsolete. Use the clear_format method instead."""
        ...
 
class ChartDataPointCollection:
    ...

    def add(self, index: int) -> ChartDataPoint:
        """Adds new ChartDataPoint at the specified index.
        
        :param index: Target data point index.
        
        Obsolete. All data points are available in this collection."""
        ...

    def remove_at(self, index: int):
        """Clears format of a ChartDataPoint at the specified index.
        
        :param index: The zero-based index of the data point to clear format.
        
        Obsolete. Use the ChartDataPoint.clear_format method instead."""
        ...
 
    def clear(self):
        """Clears format of all ChartDataPoint in this collection.
        
        Obsolete. Use the clear_format method instead."""
        ...