Aspose.Words for Python via .NET 22.3 Release Notes

Major Features

There are 355 improvements and fixes in this release. The most notable are:

  • Added saving to PDF 2.0 and several other improvements in PDF output.
  • Improved DML chart axis scaling algorithm.
  • Improved table comparing algorithm.
  • Provided comments syntax in LINQ Reporting.
  • AZW3 format (KF8 is another name of the format) is now supported for loading.
  • Added an ability to get custom field data which is associated with the field.
  • Provided an ability to convert Shapes to SVG images upon export to HTML, MHTML or EPUB.
  • Improved rendering of operators in MathML formulas.
  • Introduced a new option to control conflicting styles behavior upon import.
  • Provided dynamic text color setting using LINQ Reporting Engine.
  • Introduced an ability to get OOXML of content control.
  • Implemented loading previously saved font search cache to speed up the font cache initialization process upon rendering.
  • Added recognition of non-standard footnotes in PDF documents during the import workflow.
  • Implemented support for ‘Allow Latin text to wrap in the middle of a word’ feature.

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

WORDSNET-1506Add feature to set image as background of TextBoxNew Feature
WORDSNET-5101Support AES encryption algorithmsNew Feature
WORDSNET-6614Support of PdfCompliance PDF/UANew Feature
WORDSNET-9675Layout of the document is incorrect: paragraph justify and table gridsNew Feature
WORDSNET-11377DOCX to PDF conversion issue with table renderingNew Feature
WORDSNET-11575Add option to stop Document.Save method after specific timeNew Feature
WORDSNET-12792Add feature to set Fill.ImageBytesNew Feature
WORDSNET-14614Improve TOC style and page numbersNew Feature
WORDSNET-16357Implement ability to replace shape background imageNew Feature
WORDSNET-18739Gather data about gradient fillsNew Feature
WORDSNET-18936Implement performance loggerNew Feature
WORDSNET-19268Incorrect behavior of KeepSourceFormatting ImportFormatModeNew Feature
WORDSNET-20127Inconsistent behavior with dynamic columns and horizontal mergeNew Feature
WORDSNET-20128Inconsistent behavior with dynamic columns and horizontal merge (portrait vs landscape)New Feature
WORDSNET-22278Add a possibility to cache FontSearchInfos in a file and then load itNew Feature
WORDSNET-22409Requesting feature to get OOXML of content controlNew Feature
WORDSNET-22411Add support for loading of AZW3 (Kindle KF8) format documentsNew Feature
WORDSNET-22811Implement Fill.SetImage() methodNew Feature
WORDSNET-22882Provide dynamic text color setting using LINQ Reporting EngineNew Feature
WORDSNET-22891Add loading progress notification for TXT documentsNew Feature
WORDSNET-22892Add loading progress notification upon Markdown loadingNew Feature
WORDSNET-23235Consider adding an html save option to export shapes as SVG.New Feature
WORDSNET-23246Provide list style in ApsNew Feature
WORDSNET-23250Support PDF 2.0 versionNew Feature
WORDSNET-23319Add saving progress notificationNew Feature
WORDSNET-23414Preserve paragraph outline level upon importing tagged PDF documentNew Feature
WORDSNET-23490Provide comments syntax in LINQ ReportingNew Feature
WORDSNET-20756DOCX to PDF conversion issue with accessibilityEnhancement
WORDSNET-22664Shape.OleFormat returns null when Excel chart is copied to Word using Option “Link & Keep Source Formatting”Enhancement
WORDSNET-22692Compare document with content controlEnhancement
WORDSNET-22884Cross-reference not working in Docker after CustomXmlParts property is setEnhancement
WORDSNET-23223Pass a hyperlink ScreenTip from model to ApsEnhancement
WORDSNET-23264Improve ConvertTabStops code during conversion from DOCX to fixed page formatEnhancement
WORDSNET-837Table layout algorithm does not work for “merged cells” that are simply wideBug
WORDSNET-6683UpdateTablelayout resizes the cell widths incorrectlyBug
WORDSNET-7379Table layout issue on converting DOCM to PDFBug
WORDSNET-8933DOCX to PDF conversion issue with table renderingBug
WORDSNET-9035“Automatically resize to fit contents” table option does not work during converting to PDFBug
WORDSNET-9291Incorrect SmartArt rendering in output PDFBug
WORDSNET-9595Calling UpdateTableLayout makes table widths incorrectBug
WORDSNET-10113Table width is changed after conversion from DOC to fixed file formatBug
WORDSNET-10721A floating table partially renders beyond left/right page margins in PDFBug
WORDSNET-12200Table column widths are not correct in PDF/HTMLBug
WORDSNET-12869DOC to XPS conversion issue with image renderingBug
WORDSNET-13360Table’s cell contents are wrapped to next line in output PDFBug
WORDSNET-13803Table’s width is changed after conversion from DOCX to PDFBug
WORDSNET-14064Table’s width is changed after conversion from DOCX to PDFBug
WORDSNET-14634Table’s width shrinks when two cells are mergedBug
WORDSNET-14846An image and the text are bunched together with no padding in PDFBug
WORDSNET-15017Table and cell width is changed in output PdfBug
WORDSNET-15380A word splits and renders on two linesBug
WORDSNET-15755Difference in number of pages between Aspose.Words and MS Word generated PDFBug
WORDSNET-15766Document layout differs from WordBug
WORDSNET-15845Pages with landscape orientation trimmed after PDF renditionBug
WORDSNET-15846The document content corrupted after PDF renditionBug
WORDSNET-16293RTF Documents Comparison Issue with Table CellsBug
WORDSNET-16375Table width is decreased after conversion from DOCX to PDFBug
WORDSNET-16511Path gradient fill of rotated shape is rendered incorrectlyBug
WORDSNET-16918Document.Compare generates the incorrect revisionsBug
WORDSNET-17060Wrong Table column width in PDF export when mixing millimeter and percent widthsBug
WORDSNET-17446Table column content truncated in generated PDFBug
WORDSNET-17523How to determine maximum value for table borderBug
WORDSNET-18140DML fill can not be retrieved and set correctlyBug
WORDSNET-18188Documents comparing gives incorrect revisionsBug
WORDSNET-18518Table compare bugBug
WORDSNET-18661Imitate MS Word logic of table grid calculation for auto-fit tables with cells spanning multiple columnsBug
WORDSNET-18696Wrong detections of revisions (paragraphs marked deleted)Bug
WORDSNET-18698Curved text is not rendered correctlyBug
WORDSNET-18703Check the compare produces incorrect revisionsBug
WORDSNET-18786Document.PageCount returns incorrect page countBug
WORDSNET-19048Document.Compare produces incorrect revisionsBug
WORDSNET-19160OfficeMath renders incorrectly in output EMFBug
WORDSNET-19395Document.PageCount returns incorrect value after saving documentBug
WORDSNET-19692Formula converted incorrectly (DOCX to PDF)Bug
WORDSNET-19739Incorrect scaling of the horizontal axis after converting to PDFBug
WORDSNET-20056Document comparison result issue if comments are there in documentBug
WORDSNET-20110Bangla in Microsoft Equation does not render correctly in PDFBug
WORDSNET-20192Curved lines of SmartArt render are rendered incorrectly in output PDFBug
WORDSNET-20578Table corruption during Word to PDF conversionBug
WORDSNET-20649Document.Compare generates incorrect revision for table’s columnBug
WORDSNET-20685Content are push down to page after DOCX to PDF conversionBug
WORDSNET-20686Cell Content are rendered on two lines after DOCX to PDF conversionBug
WORDSNET-20687DOCX to PDF conversion issue with Table headerBug
WORDSNET-20705Word to PDF conversion issue with Phonetic Guides, resulting in misaligned textBug
WORDSNET-20766Structure element issues after DOCX to PDF conversionBug
WORDSNET-20819Exception was thrown: Could not create the bitmap with the specified parametersBug
WORDSNET-20829Table Rows being pushed to previous Pages in PDFBug
WORDSNET-20830Preserve empty page during Word DOCX to PDF ConversionBug
WORDSNET-20844Table layout does not match WordBug
WORDSNET-21070Support Widow/Orphan paragraph rule for the first line in a column when footnotes balancingBug
WORDSNET-21129Compare Document functionality is not working as expected with tablesBug
WORDSNET-21205DOCX to PDF conversion issue with chart renderingBug
WORDSNET-21384Embedded graphs are rendered wrong when saving to PDFBug
WORDSNET-21416Strikethrough formatting in list indent is disappeared after DOCX to PDF conversionBug
WORDSNET-21501Incorrect rendering of complex SVG image when  document save as PNGBug
WORDSNET-21626Narrowing of Table columns cause increase in Table heights and an extra page in PDFBug
WORDSNET-21918Pie chart color is changed in output PDFBug
WORDSNET-22056Unwanted revisions are appeared after re-saving DOCBug
WORDSNET-22074Image logo and text moved toward left side of page in output PDFBug
WORDSNET-22127Heading style attributes are not appliedBug
WORDSNET-22192DOCX to HTML and Back to DOCX conversion loses the footer page number alignmentBug
WORDSNET-22198Text position is changed after DOCX to PDF conversionBug
WORDSNET-22406System.InvalidOperationException is thrown when DOCX is saved to HTMLBug
WORDSNET-22424Table AutoFit not working While converting From Word To PDFBug
WORDSNET-22504PDF size comparison between .NET framework and .NET CoreBug
WORDSNET-22522Table Error! No text of specified style in document after appending documentsBug
WORDSNET-22526Unwanted styles appear during DOTX to DOCX conversionBug
WORDSNET-22564Comments for Content controls are messed up after cloneBug
WORDSNET-22618Percentage Values of a Vertical Axis of Chart are not PreservedBug
WORDSNET-22645Text of Table cell is lost after HTML to DOCX conversionBug
WORDSNET-22660Compile Time error when using Aspose Words for .NET in C++/CLI projectBug
WORDSNET-22671Table and image are overlapped after DOCX to PDF conversionBug
WORDSNET-22682After rendering a DML shape gets larger by 1 pixel than its original imageBug
WORDSNET-22689Table cell width increased in Aspose PDFBug
WORDSNET-22710Bad performance of “UpdatePageLayout”Bug
WORDSNET-22723Word to PDF Conversion loses space and linesBug
WORDSNET-22735Content are lost after DOCX to PDF conversionBug
WORDSNET-22743Build logical structure for layout graphicsBug
WORDSNET-22780Shape is shifted when renderingBug
WORDSNET-22782System.ArgumentOutOfRangeException is raised while exporting into Markdown formatBug
WORDSNET-22791Setting mapping creates corrupted outputBug
WORDSNET-22795Incorrect rendering of Chinese fontBug
WORDSNET-22804Document.Compare throws System.InvalidCastExceptionBug
WORDSNET-22818Text formatting is italicized in the PDFBug
WORDSNET-22826Chart X-Axis are changed after DOCX to PDF ConversionBug
WORDSNET-22830Chart is not rendered correctly after DOCX to PDF conversionBug
WORDSNET-22839Infinite loop in FloaterOverlapResolver due to shape with zero heightBug
WORDSNET-22845PDF Accessibility Checker (PAC 3) reports failures upon testing for PDF/UA compatibilityBug
WORDSNET-22850Convert docx to PDF radar chart missing category labels and incorrect scaleBug
WORDSNET-22853Image of a DML shape is shifted to the right after renderingBug
WORDSNET-22854Image of a DML shape is shifted to the top left after renderingBug
WORDSNET-22859Image disappears when render document to PDF with SkiaSharp 2.80.3Bug
WORDSNET-22874WML to PDF conversion issue with hyperlinkBug
WORDSNET-22875DOCX to PDF conversion issue with hyperlinkBug
WORDSNET-22876Conversion issue with hyperlink upon converting to PDFBug
WORDSNET-22877Unable to set bit depth of output TIFF imageBug
WORDSNET-22881RTF to HTML - System.ArgumentNullExceptionBug
WORDSNET-22883Cross-reference not working after removing XML mappingBug
WORDSNET-22886Extra characters are added in output after DOCX to PDF conversionBug
WORDSNET-22898Incorrect table column widths on conversion to PDFBug
WORDSNET-22899Document compare is not working properlyBug
WORDSNET-22903Some SVG symbols look distortedBug
WORDSNET-22906Rich text content control is not visible when the SetMapping function is usedBug
WORDSNET-22907DrawingML textbox position and text orientation is changed after updating page layoutBug
WORDSNET-22909ArgumentNullException is thrown in Linux when render MhtmlBug
WORDSNET-22916Image is lost after DOCX to PDF conversionBug
WORDSNET-22917Opening MHT file encoded quoted-printable hangs indefinitelyBug
WORDSNET-22919Word table formatting issue using Customer XML dataBug
WORDSNET-22925Math Equation (Shape) does not render correctly in output PDFBug
WORDSNET-22928ArgumentNullException: Value cannot be null. (Parameter ‘buffer’) with SkiaSharp 20.8.3 in DockerBug
WORDSNET-22931Sigma is rendered as S in EQ FieldBug
WORDSNET-22934Missing font fallback settings for the Geometric Shapes Extended Unicode blockBug
WORDSNET-22939NullReferenceException while converting DOCX to PDFBug
WORDSNET-22946Incorrect position calculation for East Asian characters in MathTextElementBug shows exception for EPUB generated by Aspose.WordsBug
WORDSNET-22954Formatting of footnote is changed after re-saving documentBug
WORDSNET-22955TOC in document prevents replacements with Range.Replace below the TOC if IgnoreFields = TrueBug
WORDSNET-22958System.ArgumentNullException with SkiaSharp 20.8.3 in DockerBug
WORDSNET-22960Comment ranges are lost after comparing documentsBug
WORDSNET-22967Variables declared in document header when using LINQ are not working in document bodyBug
WORDSNET-22968System.IO.FileLoadException while loading PDFBug
WORDSNET-22969PDF to DOCX - content is missingBug
WORDSNET-22970PDF to DOCX - extra content addedBug
WORDSNET-22974XmlException while saving to FOPCBug
WORDSNET-22978Unexpected behavior of UpdateFields()Bug
WORDSNET-22979string.IsNullOrEmpty() method in LINQ template throws an exceptionBug
WORDSNET-22980FileCorruptedException is thrown upon loading RTF documentBug
WORDSNET-22981Image becomes hidden after open/save documentBug
WORDSNET-22988DOCX to PDF/a: Empty ‘P’ tag added to outputBug
WORDSNET-22989Document cannot be unprotected with correct passwordBug
WORDSNET-23020NullReferenceException at CSJ2K’s readBox()Bug
WORDSNET-23021NullReferenceException at CSJ2K’s FileBitstreamReaderAgent..ctorBug
WORDSNET-23023FormatException at PdfTokenParser.EnterHexStringStateBug
WORDSNET-23026InvalidOperationException: Encrypt element in the trailer dictionary must also be dictionaryBug
WORDSNET-23027NullReferenceException at SASLPrepAlgorithm.MapCharactersBug
WORDSNET-23028NullReferenceException at CSJ2K’s FileFormatReader.readFileFormatBug
WORDSNET-23029NullReferenceException at PdfContext.ProcessCrossReferenceStreamBug
WORDSNET-23034InvalidOperationException: Unexpected nested BT operatorBug
WORDSNET-23036IndexOutOfRangeException at PdfUnfilteredStream.ApplyFiltersBug
WORDSNET-23037IndexOutOfRangeException at JBig2Decoder.JBIG2Bitmap.DuplicateRowBug
WORDSNET-23041Wrong letters order for RTL text (Persian OCR)Bug
WORDSNET-23044Fix row detection issues on OCR Table.pngBug
WORDSNET-23047NotImplementedException: Security handler is not implemented for V=5, R=6Bug
WORDSNET-23048Text was skipped because of incorrect ClippingBounds calculationBug
WORDSNET-23049Too big font size when notes are written on the page bordersBug
WORDSNET-23050NullReferenceException when a PDF file has empty cross-reference streamBug
WORDSNET-23051DivideByZeroException in TextCorrectionService if language is incorrectBug
WORDSNET-23060Duplicated letters in words after the conversionBug
WORDSNET-23061NullReferenceException at TableOfContentsTabStorage.NumberIsIncreasingBug
WORDSNET-23062InvalidOperationException: Subtype must be present in a Font resourceBug
WORDSNET-23065InvalidOperationException: Pdf corruptedBug
WORDSNET-23139System.InvalidOperationException: Collection was modifiedBug
WORDSNET-23140InvalidOperationException: Footnotes are only allowed inside the main text of the documentBug
WORDSNET-23150Rotated PathGradient shapes inside group are rendered incorrectlyBug
WORDSNET-23151Wrong date format in chart after converting DOCX to PDFBug
WORDSNET-23157OutOfMemoryException is thrown upon updating fieldsBug
WORDSNET-23158FileCorruptedException is thrown while loading DOCBug
WORDSNET-23161DllNotFoundException occurs when use HarfBuzzTextShaperFactory in .NET 6.0Bug
WORDSNET-23165Text of Field’s code part is exported into Markdown formatBug
WORDSNET-23171System.StackOverflowException is thrown while loading RTFBug
WORDSNET-23173The shape is changed while exporting from DOCX to PDF, DOC or RTFBug
WORDSNET-23175IndexOutOfRangeException in PdfSyntaxParser.ParseArrayBug
WORDSNET-23177NullReferenceException if page resources are missingBug
WORDSNET-23178InvalidOperationException: End of stream while reading literal stringBug
WORDSNET-23179NullReferenceException at FootnoteDetector.AddSegmentToFootnotesBug
WORDSNET-23180Section breaks are changed after inserting documentBug
WORDSNET-23184Opening HTM file hangs indefinitelyBug
WORDSNET-23185Lost table while convert from PDF to MDBug
WORDSNET-23187FileCorruptedException is thrown while loading documentBug
WORDSNET-23189FormatException at TimeSpanFormat.FormatCustomizedBug
WORDSNET-23190KeyNotFoundException: MediaBox was not present in the dictionaryBug
WORDSNET-23191KeyNotFoundException: Dictionary doesn’t contain “S” entryBug
WORDSNET-23192KeyNotFoundException in RomanNumber.TryParseBug
WORDSNET-23193InvalidCastException: Cannot cast PdfDictionary to PdfArrayBug
WORDSNET-23194Saving RTF file hangs indefinitelyBug
WORDSNET-23196Tables overlap after rendering documentBug
WORDSNET-23199InvalidOperationException: Cannot read AES initialization vectorBug
WORDSNET-23202InvalidOperationException in CffReader.ReadOffsetsBug
WORDSNET-23203NullReferenceException at PdfOperatorTj.ApplyBug
WORDSNET-23204Incorrect text with black background after the conversionBug
WORDSNET-23205InvalidOperationException: Page content invalid at PdfPage.get_Contents()Bug
WORDSNET-23206Incorrect text of the legend items of the PieChartBug
WORDSNET-23207InvalidOperationException at PdfStream.ToByteArrayBug
WORDSNET-23209Revision.Accept fails for a specific documentBug
WORDSNET-23211Setting mapping creates corrupted tableBug
WORDSNET-23212IndexOutOfRangeException at ColorSpaceDeviceRGB.ToRgbBug
WORDSNET-23213The end-of-cell marker has been removed from the new rowBug
WORDSNET-23214Table is rendered improperlyBug
WORDSNET-23220The paragraph is missing when using WordOpenXMLBug
WORDSNET-23221Incorrect result of PdfFlateDecodeFilterBug
WORDSNET-23224Process hangs when calling UpdateFields methodBug
WORDSNET-23226Incorrect size and position of the minus signBug
WORDSNET-23227Support xlink:href during import HTML with SVG imageBug
WORDSNET-23229Fix minor rendering issueBug
WORDSNET-23231Shape.Id is duplicated for watermarks inserted by Aspose.WordsBug
WORDSNET-23232NullReferenceException on cloningBug
WORDSNET-23233File can no be re-savedBug
WORDSNET-23234NullReferenceException while re-saving documentBug
WORDSNET-23236Fix accuracy tests keeping failingBug
WORDSNET-23237RTF to DOCX - PUA characters treated as symbols instead of textBug
WORDSNET-23238Missing some contents after converting PDF to DOCXBug
WORDSNET-23244Improve single-path frame DML WordArt renderingBug
WORDSNET-23252Font is changed after open/save DOCXBug
WORDSNET-23256DOCX to PDF conversion issue with page number rendering in footerBug
WORDSNET-23257ODT to DOC: output is different from MS WordBug
WORDSNET-23258IReplacingCallback is called before processing FindWholeWordsOnly optionBug
WORDSNET-23259Consider keeping support of deprecated PDF-A1Bug
WORDSNET-23262Repeating table header is rendered improperlyBug
WORDSNET-23265PDF import takes a lot of timeBug
WORDSNET-23269Remove obsolete property LayoutOptions.ShowCommentsBug
WORDSNET-23270WordArt glyphs are rendered with an extra outlineBug
WORDSNET-23272Add ListNumbering attribute to the PDF logical structureBug
WORDSNET-23274Paragraph space after is changed in diagram after open/save DOCX documentBug
WORDSNET-23281Footnote paragraphs are brokenBug
WORDSNET-23283StackOverflowException is thrown upon loading DOCX document.Bug
WORDSNET-23284The end-of-cell marker has been removed and revisions have changed when creating custom XMLBug
WORDSNET-23287Aspose.Words produces invalid document after DOCX to DOCX to DOCM conversionBug
WORDSNET-23292An error “Alternative description missing for an annotation” in PDF/UA documentBug
WORDSNET-23304Aspose.Words hangs on document layoutBug
WORDSNET-23307Footnote contains original reference nameBug
WORDSNET-23308Missing bookmarks in DOCX to PDF conversionBug
WORDSNET-23309Repair OCR in Aspose.Apps project before next website releaseBug
WORDSNET-23312Some content is pushed to the previous page after converting DOCX to PDFBug
WORDSNET-23315Custom document property cannot be retrieved from the PDF generated by Aspose.WordsBug
WORDSNET-23318Formatting is lost after open/save DOC fileBug
WORDSNET-23327HTML markup becomes visible in a document loaded from AZW3Bug
WORDSNET-23328A MOBI document cannot be loadedBug
WORDSNET-23339Oval shape with text is wrapped improperlyBug
WORDSNET-23340An exception occurs when open ODT documentBug
WORDSNET-23344Consider exporting hyperlink screentip as alternative text to PDF logical structureBug
WORDSNET-23347Out of memory exception when creating custom XMLBug
WORDSNET-23359“The document appears to be corrupted and cannot be loaded.” exception when opening ODT fileBug
WORDSNET-23364Text is justified improperlyBug
WORDSNET-23366ImportFormatMode.KeepSourceFormatting behaves differently in AW and MS WordBug
WORDSNET-23372DOCX to RTF conversion throws an InvalidOperationExceptionBug
WORDSNET-23373FileCorruptedException when opening DOCBug
WORDSNET-23374Custom footnote missed while converting from PDF to Word documentBug
WORDSNET-23387Alignment of the equation changed after converting a DOCX to PDFBug
WORDSNET-23392No way to apply Style to ApplyFont in FindReplaceOptionsBug
WORDSNET-23398MSG to PDF line spacing issueBug
WORDSNET-23405ArgumentException when Load document with SVG imageBug
WORDSNET-23407“NC sync failed” occurs upon comparing Docx files with SDTBug
WORDSNET-23417NullReferenceException is thrown when comparing a documentBug
WORDSNET-23418“Unexpected subdocument type” when saving to DOCBug
WORDSNET-23424Text is incorrectly wrapped in table cellBug
WORDSNET-23428Range.Replace does not throw RegexMatchTimeoutExceptionBug
WORDSNET-23433Resolving the ranged Sdt without IdBug
WORDSNET-23436Paragraphs indents (in character units) incorrectly calculated when Document Grid  is definedBug
WORDSNET-23439InvalidOperationException: ‘Linked list is in invalid state.’ upon saving document to HTML or renderingBug
WORDSNET-23444LayoutEnumerator does not work for textboxBug
WORDSNET-23452Unexpected text next to image after converting RTF to PDFBug
WORDSNET-23460ArgumentException: ‘Parameter is not valid.’ is thrown upon rendering document to XPS and FixedHtmlBug
WORDSNET-23469Issue with Document.ExtractPages(..)Bug
WORDSNET-23471FileCorruptedException is thrown upon loading RTF documentBug
WORDSNET-23472NullReferenceException at GetBordersBug
WORDSNET-23478Some characters are retrieved incorrectlyBug
WORDSNET-23487XmlException: ‘w16sdtdh’ is an undeclared prefix.  Is thrown upon opening DOCX produced by Aspose.WordsBug
WORDSNET-23488Wrong table style is applied to a table after comparisonBug
WORDSNET-23492FileFormatUtil.DetectFileFormat() detects some TIFF images as textBug
WORDSNET-23497Table is distorted on PDF importBug
WORDSNET-23510Arabic text inside table cells is too largeBug
WORDSNET-23516List labels are displayed as question marks (0xF03F) after conversion from RTF to another formatsBug

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

WORDSNET-17734DOCX to PDF conversion issue with table and images renderingNew Feature
WORDSNET-23142Support HTML color codes as color values for LINQ Reporting Engine tagsNew Feature
WORDSNET-23198Make FieldData property publicNew Feature
WORDSNET-23326Tables are rendered with incorrect column widthsNew Feature
WORDSNET-16282Document.Compare generates incorrect revisions for tablesBug
WORDSNET-17015DOCX to PDF - incorrect table cell widthBug
WORDSNET-17379SmartArt text is rotated in output PDFBug
WORDSNET-18898MODIFY_ANNOTATIONS incorrectly Allows Commenting, Filling of Form Fields and Signing in PDFBug
WORDSNET-18902Size of SVG images are not displayed correctlyBug
WORDSNET-19422HTML to RTF conversion removes blank linesBug
WORDSNET-19833IndexOutOfRangeException is thorwn while saving DOCX to PDFBug performs unexpected comparisonBug
WORDSNET-20449Document.Compare generates incorrect revisionsBug
WORDSNET-20549More rows rendered on first Page causing lesser total pages in PDFBug
WORDSNET-20853Two Table Rows Created with Insertion and Deletion Revisions after Comparing Word DocumentsBug
WORDSNET-20945Document.Compare generates the incorrect outputBug
WORDSNET-21033Document.Compare generates the incorrect outputBug
WORDSNET-21082Aspose Saved DOCX Converted to PDF Suppresses First Column from TableBug
WORDSNET-21135Different table widths in resultant fileBug
WORDSNET-21328Charts rendered incorrect when converted to PDFBug
WORDSNET-21921Number is wrapped to next line in table cell after DOCX to PDF conversionBug
WORDSNET-22436Font-size incorrectly added to paragraph tag, it should be added to span insteadBug
WORDSNET-22480DOCX to PDF conversion issue with hidden bookmarkBug
WORDSNET-22562Document.Compare does not ignore commentBug
WORDSNET-22670Wrong text commented after comparing DOCX filesBug
WORDSNET-22779Document Compare changes the list numbersBug
WORDSNET-22785Elements overlap when converting DOC to PDF with JavaBug
WORDSNET-22824Chart issues when converting DOCX to PDFBug
WORDSNET-22827Table row is pushed down to next page in output PDFBug
WORDSNET-22862Chart conversion issue upon converting to PDFBug
WORDSNET-22895Insert SVG with special characters in Text fails to render in output DOCX and PDFBug
WORDSNET-22922Exporting highlighted paragraphs to PDFBug
WORDSNET-22923DOCX to PDF: Differences in generated output filesBug
WORDSNET-22926NullReferenceException is thrown on updating layoutBug
WORDSNET-22953Comparing documents with changes around a table cause the table to be marked as deleted and re-addedBug
WORDSNET-22956Revision.Accept throws System.InvalidOperationExceptionBug
WORDSNET-22961DOCX to HTML conversion throws System.NullReferenceExceptionBug
WORDSNET-22971DOC to PDF conversion issue - new line in wrong placeBug
WORDSNET-22972getBoundsWithEffects returns 0 width and 0 heightBug
WORDSNET-22976DOCX to PDF: Inserted image has different dimensionsBug
WORDSNET-22977IndexOutOfBoundsException when setting alternate text on the shapeBug
WORDSNET-22983Blank page is produced in output PDF where hidden content was in the original documentBug
WORDSNET-23170RTF to HTML conversion issue with List labelsBug
WORDSNET-23215InvalidCastException is thrown upon loading documentBug
WORDSNET-23253Exported PDF contains image with lower resolutionBug
WORDSNET-23278Horizontal axis scaling is incorrect upon rendering chartBug
WORDSNET-23299ArgumentException is thrown while inserting documentBug
WORDSNET-23305Redundant table format revision is renderedBug
WORDSNET-23346DOCX to PDF missing lines in the chartBug
WORDSNET-23378Content is missed upon rendering document.Bug
WORDSNET-23410IndexOutOfRangeException is thrown upon saving document to HTMLBug
WORDSNET-23427Content in table cell is slightly overlaps borderBug
WORDSNET-23484Bookmark is pointing to wrong page after rendering to PDFBug

Public API and Backward Incompatible Changes

This section lists public API changes that were introduced in Aspose.Words 22.3. 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 saving to PDF 2.0 and several other improvements in PDF output

Related issue: WORDSNET-23250

  1. New value PDF20 added to PdfCompliance enum

  2. Improvements in PDF digital signatures Changed PDF digital signature type from “adbe.pcks7.sha1” to “adbe.pcks7.detached” to fit all supported PDF versions. Added PdfDigitalSignatureHashAlgorithm.RIPE_MD160 value. PdfDigitalSignatureHashAlgorithm.SHA1 and PdfDigitalSignatureHashAlgorithm.MD5 values are marked as obsolete. Default value for PdfDigitalSignatureDetails.hash_algorithm changed from PdfDigitalSignatureHashAlgorithm.SHA512 to PdfDigitalSignatureHashAlgorithm.SHA256. SHA256 is most popular hashing algorithm, it is strong enough and it is used by default by Adobe Acrobat when signing the document.

  3. Improvements in PDF encryption Removed PdfEncryptionAlgorithm enum and encryption_algorithm parameter from PdfEncryptionDetails constructor. This is a breaking change. Now PDF 1.7 output is encrypted with AES-128 encryption algorithm and PDF 2.0 output with AES-256 algorithm.

  4. Several options (use_core_fonts, custom_properties_export in PdfSaveOptions cannot be used when saving PDF 2.0

  5. Removed obsolete PdfCompliance.PDF15 enum value

Added FieldStart.field_data property

Related issue: WORDSNET-23198

The following public property is added to FieldStart class:

def field_data(self) -> bytes:
    """Gets custom field data which is associated with the field."""

Use Case:

doc = aw.Document(filename)
field = doc.range.fields[0]

Added HtmlSaveOptions.save_shapes_as_svg public property

Related issue: WORDSNET-23235

This option controls whether Shape nodes are converted to SVG images when saving to HTML, MHTML or EPUB. Default value is False.

If this option is set to True, Shape nodes are exported as <svg> elements. Otherwise, they are rendered to bitmaps and are exported as <img> elements.

Note that this options also affects text boxes, because they are represented by Shape nodes. As a result, if this option is set to True, it overrides the export_text_box_as_svg property value and causes text boxes to be converted to SVG.

Use Case:

doc = aw.Document(filename)
save_options = aw.saving.HtmlSaveOptions()
save_options.export_shapes_as_svg = True, save_options)

AZW3 format is now supported for loading

Related issue: WORDSNET-22411

Aspose.Words can now load AZW3 documents (KF8 is another name of the format). Usually, documents in the AZW3 format have the “.azw3” or “.mobi” extension. However, a “.mobi” document may be in the older MOBI format, and some “.mobi” documents contain two versions of content - MOBI and AZW3 - for backward compatibility.

The following table explains what reader Aspose.Words uses to load MOBI and AZW3 documents in different cases:


Currently, Aspose.Words always loads all topics from an AZW3 document in the order in which they appear in the table of contents.

The following publicly visible enum values were added:

The FileFormatUtil class can now be used to determine if a file is an AZW3 document. For example, the following call

info = aw.FileFormatUtil.detect_file_format("book.azw3");

will return an info instance with the FileFormatInfo.load_format property set to LoadFormat.AZW3.

Currently, no load options have effect when loading AZW3 documents. LoadOptions.resource_loading_callback is not invoked when loading AZW3 documents, because Aspose.Words expects all referenced resource files to be stored locally in the AZW3 document. Like in the Kindle reader, references to external resource files are ignored.

As a result, the only use cases for loading AZW3 documents that is currently available is the one illustrated below:

doc = aw.Document("book.azw3")

Breaking change – explicit Table.auto_fit() call may be required to make table structure match the specified cell widths in a builder scenario

A major update that handles tables with incorrect or missing column width data in the source document is released.

Cell/column width data and the number of columns spanned by a cell are re-calculated from table and cell properties. Column width data stored in the document are replaced by re-calculated values.

The algorithm imitates MS Word logic that does not use cell widths. (In fact, cell width is not even stored in .DOCX format used by MS Word).

The new logic may change the output for some document builder scenarios. In the following example the number of columns spanned by the cell in row 2 is no longer calculated automatically from the specified cell widths:

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

# First row

cell1 = builder.insert_cell()
cell1.cell_format.width = 100
builder.write("Text in cell 1.")

cell2 = builder.insert_cell()
cell2.cell_format.width = 100
builder.write("Text in cell 2.")

# End of first row

# Second row
cell3 = builder.insert_cell()
cell3.cell_format.width = 200
builder.write("Row 2 cell spans 2 columns.")

# End of second row


The behavior was changed because cell width data proved to be unreliable in a number of generated documents.

In order to preserve the specified cell widths in the above scenario and calculate the number of columns spanned by a cell from cell width, Aspose.Words should be explicitly instructed by calling Table.auto_fit() method:

table = builder.end_table()

# Re-calculate table structure from the specified cell widths.

This will also set table layout to fixed, which is better suited for preserving cell widths regardless of contents.

Removed obsolete property FieldXE.has_page_range_bookmark_name

Removed obsolete property FieldXE.has_page_range_bookmark_name. Please, use the FieldXE.page_range_bookmark_name property instead.

Added new Chart.source_full_name property

Related issue: WORDSNET-22664

The following public property has been added to the Chart class. If a chart is linked to an external xls/xlsx document, the property returns its file name.

def source_full_name(self) -> str:
    """Gets the path and name of an xls/xlsx file this chart is linked to."""

Use Case:

doc = aw.Document(filename)
shape = doc.get_child(aw.NodeType.SHAPE, 0, True).as_shape()

Added new ImportFormatOptions.force_copy_styles property

Related issue: WORDSNET-19268.

ImportFormatOptions.force_copy_styles is a boolean value indicating either to copy conflicting styles in ImportFormatMode.KEEP_SOURCE_FORMATTING mode. The default value is False.

By default, if a matching style already exists in a destination document, the source style formatting is expanded into direct node attributes and the style of this node is reset to a default.

When this option is set to True, the source style will be forcibly copied into destination document with unique name and applied to the imported node.

Note, in this case it is not guaranteed that formatting of the imported node in destination document will be preserved.

Use Case: Explains how to force import styles in KEEP_SOURCE_FORMATTING mode.

# There are MyStyle1 and MyStyle2 in both source and destination document.
# Also there is style MyStyle3 that exists only in source document.
src_doc = aw.Document("Src.docx")
dst_doc = aw.Document("Dst.docx")

options = aw.ImportFormatOptions()
options.force_copy_styles = True
node_importer = aw.NodeImporter(src_doc, dst_doc, aw.ImportFormatMode.KEEP_SOURCE_FORMATTING, options)

print("Imported styles:")
paras = src_doc.first_section.body.paragraphs
for i in range(paras.count):
    imported_para = node_importer.import_node(paras[i], True).as_paragraph()

# The code produces the following output:
# Imported styles:
# MyStyle1_0
# MyStyle2_0
# MyStyle3

Added saving to PDFUA-1

Related issue: WORDSNET-6614

New value PDF_UA1 added to PdfCompliance enum.

The primary purpose of PDF/UA is to define how to represent electronic documents in the PDF format in a manner that allows the file to be accessible.

Removed obsolete property LayoutOptions.show_comments

Removes obsolete property LayoutOptions.show_comments.

Use LayoutOptions.comment_display_mode property instead:

doc = aw.Document("in.docx")
doc.layout_options.comment_display_mode = aw.layout.CommentDisplayMode.SHOW_IN_BALLOONS"out.pdf")

Added new feature to save and load font search cache

Related issue: WORDSNET-22278

Loading previously saved font search cache will speed up the font cache initialization process. It is especially useful when access to font sources is complicated (e.g. when fonts are loaded via network).

To provide this feature following methods and properties has been added:

class FontSettings:

    def save_search_cache(self, output_stream: io.BytesIO):
        """Saves the font search cache to the stream.

        :param output_stream: Output stream."""

    def set_fonts_sources(self, sources: List[aw.fonts.FontSourceBase], cache_input_stream: io.BytesIO):
        """Sets the sources where Aspose.Words looks for TrueType fonts and additionally loads previously saved
        font search cache.

        Loading previously saved font search cache will speed up the font cache initialization process. It is
        especially useful when access to font sources is complicated (e.g. when fonts are loaded via network).

        When saving and loading font search cache, fonts in the provided sources are identified via cache key.
        For the fonts in the SystemFontSource and FolderFontSource cache key is the path
        to the font file. For MemoryFontSource and StreamFontSource cache key is defined
        in the MemoryFontSource.cache_key and StreamFontSource.cache_key properties
        respectively. For the FileFontSource cache key is either FileFontSource.cache_key
        property or a file path if the FileFontSource.cache_key is None.

        It is highly recommended to provide the same font sources when loading cache as at the time the cache was saved.
        Any changes in the font sources (e.g. adding new fonts, moving font files or changing the cache key) may lead to the
        inaccurate font resolving by Aspose.Words.

        :param sources: An array of sources that contain TrueType fonts.
        :param cache_input_stream: Input stream with saved font search cache.

class FileFontSource:

    def __init__(self, file_path: str, priority: int, cache_key: str):

        :param file_path: Path to font file.
        :param priority: Font source priority. See the FontSourceBase.priority property description for more information.
        :param cache_key: The key of this source in the cache. See cache_key property description for more information.

    def cache_key(self) -> str:
        """The key of this source in the cache.

        This key is used to identify cache item when saving/loading font search cache with
        FontSettings.save_search_cache() and FontSettings.set_fonts_sources() methods.

        If key is not specified then file_path will be used as a key instead.

class MemoryFontSource:

    def __init__(self, font_data: bytes, priority: int, cacheKey: str):

        :param font_data: Binary font data.
        :param priority: Font source priority. See the FontSourceBase.priority property description for more information.
        :param cache_key: The key of this source in the cache. See cache_key property description for more information.

    def cache_key(self) -> str:
        """The key of this source in the cache."""

        This key is used to identify cache item when saving/loading font search cache with
        FontSettings.save_search_cache() and FontSettings.set_fonts_sources() methods.

Use Case:

# Prepare font sources and generate font search cache beforehand.
file_source = aw.fonts.FileFontSource(file_path, file_source_priority, file_source_key)
memory_source = aw.fonts.MemoryFontSource(font_data, memory_source_priority, memory_source_key)
settings = aw.fonts.FontSettings()
settings.set_fonts_sources([file_source, memory_source])

# Set font sources and load search cache before processing documents. Note that sources should be the same as when saving font search cache.
file_source = aw.fonts.FileFontSource(file_path, file_source_priority, file_source_key)
memory_source = aw.fonts.MemoryFontSource(font_data, memory_source_priority, memory_source_key)
settings = aw.fonts.FontSettings()
settings.set_fonts_sources([file_source, memory_source], cache_input_stream)

Added new public method Fill.set_image

Related issue: WORDSNET-22811

Use Case: Explains how to work with Fill.set_image.

builder = aw.DocumentBuilder()

# Add new rectangle shape.
shape = builder.insert_shape(aw.drawing.ShapeType.RECTANGLE, 80, 80)
# Apply one single image to the shape.

Added word_open_xml property for content control nodes

Related issue: WORDSNET-22409

The following member has been added to the StructuredDocumentTag and StructuredDocumentTagRangeStart nodes:

def word_open_xml(self) -> str:
    """Gets a string that represents the XML contained within the node in the SaveFormat.FLAT_OPC format."""

Use Case:

doc = aw.Document("Test.docx")
sdt = doc.get_child(aw.NodeType.STRUCTURED_DOCUMENT_TAG, 0, True).as_structured_document_tag()
fopc_content = sdt.word_open_xml