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)
Key | Summary | Category |
---|---|---|
WORDSNET-1506 | Add feature to set image as background of TextBox | New Feature |
WORDSNET-5101 | Support AES encryption algorithms | New Feature |
WORDSNET-6614 | Support of PdfCompliance PDF/UA | New Feature |
WORDSNET-9675 | Layout of the document is incorrect: paragraph justify and table grids | New Feature |
WORDSNET-11377 | DOCX to PDF conversion issue with table rendering | New Feature |
WORDSNET-11575 | Add option to stop Document.Save method after specific time | New Feature |
WORDSNET-12792 | Add feature to set Fill.ImageBytes | New Feature |
WORDSNET-14614 | Improve TOC style and page numbers | New Feature |
WORDSNET-16357 | Implement ability to replace shape background image | New Feature |
WORDSNET-18739 | Gather data about gradient fills | New Feature |
WORDSNET-18936 | Implement performance logger | New Feature |
WORDSNET-19268 | Incorrect behavior of KeepSourceFormatting ImportFormatMode | New Feature |
WORDSNET-20127 | Inconsistent behavior with dynamic columns and horizontal merge | New Feature |
WORDSNET-20128 | Inconsistent behavior with dynamic columns and horizontal merge (portrait vs landscape) | New Feature |
WORDSNET-22278 | Add a possibility to cache FontSearchInfos in a file and then load it | New Feature |
WORDSNET-22409 | Requesting feature to get OOXML of content control | New Feature |
WORDSNET-22411 | Add support for loading of AZW3 (Kindle KF8) format documents | New Feature |
WORDSNET-22811 | Implement Fill.SetImage() method | New Feature |
WORDSNET-22882 | Provide dynamic text color setting using LINQ Reporting Engine | New Feature |
WORDSNET-22891 | Add loading progress notification for TXT documents | New Feature |
WORDSNET-22892 | Add loading progress notification upon Markdown loading | New Feature |
WORDSNET-23235 | Consider adding an html save option to export shapes as SVG. | New Feature |
WORDSNET-23246 | Provide list style in Aps | New Feature |
WORDSNET-23250 | Support PDF 2.0 version | New Feature |
WORDSNET-23319 | Add saving progress notification | New Feature |
WORDSNET-23414 | Preserve paragraph outline level upon importing tagged PDF document | New Feature |
WORDSNET-23490 | Provide comments syntax in LINQ Reporting | New Feature |
WORDSNET-20756 | DOCX to PDF conversion issue with accessibility | Enhancement |
WORDSNET-22664 | Shape.OleFormat returns null when Excel chart is copied to Word using Option “Link & Keep Source Formatting” | Enhancement |
WORDSNET-22692 | Compare document with content control | Enhancement |
WORDSNET-22884 | Cross-reference not working in Docker after CustomXmlParts property is set | Enhancement |
WORDSNET-23223 | Pass a hyperlink ScreenTip from model to Aps | Enhancement |
WORDSNET-23264 | Improve ConvertTabStops code during conversion from DOCX to fixed page format | Enhancement |
WORDSNET-837 | Table layout algorithm does not work for “merged cells” that are simply wide | Bug |
WORDSNET-6683 | UpdateTablelayout resizes the cell widths incorrectly | Bug |
WORDSNET-7379 | Table layout issue on converting DOCM to PDF | Bug |
WORDSNET-8933 | DOCX to PDF conversion issue with table rendering | Bug |
WORDSNET-9035 | “Automatically resize to fit contents” table option does not work during converting to PDF | Bug |
WORDSNET-9291 | Incorrect SmartArt rendering in output PDF | Bug |
WORDSNET-9595 | Calling UpdateTableLayout makes table widths incorrect | Bug |
WORDSNET-10113 | Table width is changed after conversion from DOC to fixed file format | Bug |
WORDSNET-10721 | A floating table partially renders beyond left/right page margins in PDF | Bug |
WORDSNET-12200 | Table column widths are not correct in PDF/HTML | Bug |
WORDSNET-12869 | DOC to XPS conversion issue with image rendering | Bug |
WORDSNET-13360 | Table’s cell contents are wrapped to next line in output PDF | Bug |
WORDSNET-13803 | Table’s width is changed after conversion from DOCX to PDF | Bug |
WORDSNET-14064 | Table’s width is changed after conversion from DOCX to PDF | Bug |
WORDSNET-14634 | Table’s width shrinks when two cells are merged | Bug |
WORDSNET-14846 | An image and the text are bunched together with no padding in PDF | Bug |
WORDSNET-15017 | Table and cell width is changed in output Pdf | Bug |
WORDSNET-15380 | A word splits and renders on two lines | Bug |
WORDSNET-15755 | Difference in number of pages between Aspose.Words and MS Word generated PDF | Bug |
WORDSNET-15766 | Document layout differs from Word | Bug |
WORDSNET-15845 | Pages with landscape orientation trimmed after PDF rendition | Bug |
WORDSNET-15846 | The document content corrupted after PDF rendition | Bug |
WORDSNET-16293 | RTF Documents Comparison Issue with Table Cells | Bug |
WORDSNET-16375 | Table width is decreased after conversion from DOCX to PDF | Bug |
WORDSNET-16511 | Path gradient fill of rotated shape is rendered incorrectly | Bug |
WORDSNET-16918 | Document.Compare generates the incorrect revisions | Bug |
WORDSNET-17060 | Wrong Table column width in PDF export when mixing millimeter and percent widths | Bug |
WORDSNET-17446 | Table column content truncated in generated PDF | Bug |
WORDSNET-17523 | How to determine maximum value for table border | Bug |
WORDSNET-18140 | DML fill can not be retrieved and set correctly | Bug |
WORDSNET-18188 | Documents comparing gives incorrect revisions | Bug |
WORDSNET-18518 | Table compare bug | Bug |
WORDSNET-18661 | Imitate MS Word logic of table grid calculation for auto-fit tables with cells spanning multiple columns | Bug |
WORDSNET-18696 | Wrong detections of revisions (paragraphs marked deleted) | Bug |
WORDSNET-18698 | Curved text is not rendered correctly | Bug |
WORDSNET-18703 | Check the compare produces incorrect revisions | Bug |
WORDSNET-18786 | Document.PageCount returns incorrect page count | Bug |
WORDSNET-19048 | Document.Compare produces incorrect revisions | Bug |
WORDSNET-19160 | OfficeMath renders incorrectly in output EMF | Bug |
WORDSNET-19395 | Document.PageCount returns incorrect value after saving document | Bug |
WORDSNET-19692 | Formula converted incorrectly (DOCX to PDF) | Bug |
WORDSNET-19739 | Incorrect scaling of the horizontal axis after converting to PDF | Bug |
WORDSNET-20056 | Document comparison result issue if comments are there in document | Bug |
WORDSNET-20110 | Bangla in Microsoft Equation does not render correctly in PDF | Bug |
WORDSNET-20192 | Curved lines of SmartArt render are rendered incorrectly in output PDF | Bug |
WORDSNET-20578 | Table corruption during Word to PDF conversion | Bug |
WORDSNET-20649 | Document.Compare generates incorrect revision for table’s column | Bug |
WORDSNET-20685 | Content are push down to page after DOCX to PDF conversion | Bug |
WORDSNET-20686 | Cell Content are rendered on two lines after DOCX to PDF conversion | Bug |
WORDSNET-20687 | DOCX to PDF conversion issue with Table header | Bug |
WORDSNET-20705 | Word to PDF conversion issue with Phonetic Guides, resulting in misaligned text | Bug |
WORDSNET-20766 | Structure element issues after DOCX to PDF conversion | Bug |
WORDSNET-20819 | Exception was thrown: Could not create the bitmap with the specified parameters | Bug |
WORDSNET-20829 | Table Rows being pushed to previous Pages in PDF | Bug |
WORDSNET-20830 | Preserve empty page during Word DOCX to PDF Conversion | Bug |
WORDSNET-20844 | Table layout does not match Word | Bug |
WORDSNET-21070 | Support Widow/Orphan paragraph rule for the first line in a column when footnotes balancing | Bug |
WORDSNET-21129 | Compare Document functionality is not working as expected with tables | Bug |
WORDSNET-21205 | DOCX to PDF conversion issue with chart rendering | Bug |
WORDSNET-21384 | Embedded graphs are rendered wrong when saving to PDF | Bug |
WORDSNET-21416 | Strikethrough formatting in list indent is disappeared after DOCX to PDF conversion | Bug |
WORDSNET-21501 | Incorrect rendering of complex SVG image when document save as PNG | Bug |
WORDSNET-21626 | Narrowing of Table columns cause increase in Table heights and an extra page in PDF | Bug |
WORDSNET-21918 | Pie chart color is changed in output PDF | Bug |
WORDSNET-22056 | Unwanted revisions are appeared after re-saving DOC | Bug |
WORDSNET-22074 | Image logo and text moved toward left side of page in output PDF | Bug |
WORDSNET-22127 | Heading style attributes are not applied | Bug |
WORDSNET-22192 | DOCX to HTML and Back to DOCX conversion loses the footer page number alignment | Bug |
WORDSNET-22198 | Text position is changed after DOCX to PDF conversion | Bug |
WORDSNET-22406 | System.InvalidOperationException is thrown when DOCX is saved to HTML | Bug |
WORDSNET-22424 | Table AutoFit not working While converting From Word To PDF | Bug |
WORDSNET-22504 | PDF size comparison between .NET framework and .NET Core | Bug |
WORDSNET-22522 | Table Error! No text of specified style in document after appending documents | Bug |
WORDSNET-22526 | Unwanted styles appear during DOTX to DOCX conversion | Bug |
WORDSNET-22564 | Comments for Content controls are messed up after clone | Bug |
WORDSNET-22618 | Percentage Values of a Vertical Axis of Chart are not Preserved | Bug |
WORDSNET-22645 | Text of Table cell is lost after HTML to DOCX conversion | Bug |
WORDSNET-22660 | Compile Time error when using Aspose Words for .NET in C++/CLI project | Bug |
WORDSNET-22671 | Table and image are overlapped after DOCX to PDF conversion | Bug |
WORDSNET-22682 | After rendering a DML shape gets larger by 1 pixel than its original image | Bug |
WORDSNET-22689 | Table cell width increased in Aspose PDF | Bug |
WORDSNET-22710 | Bad performance of “UpdatePageLayout” | Bug |
WORDSNET-22723 | Word to PDF Conversion loses space and lines | Bug |
WORDSNET-22735 | Content are lost after DOCX to PDF conversion | Bug |
WORDSNET-22743 | Build logical structure for layout graphics | Bug |
WORDSNET-22780 | Shape is shifted when rendering | Bug |
WORDSNET-22782 | System.ArgumentOutOfRangeException is raised while exporting into Markdown format | Bug |
WORDSNET-22791 | Setting mapping creates corrupted output | Bug |
WORDSNET-22795 | Incorrect rendering of Chinese font | Bug |
WORDSNET-22804 | Document.Compare throws System.InvalidCastException | Bug |
WORDSNET-22818 | Text formatting is italicized in the PDF | Bug |
WORDSNET-22826 | Chart X-Axis are changed after DOCX to PDF Conversion | Bug |
WORDSNET-22830 | Chart is not rendered correctly after DOCX to PDF conversion | Bug |
WORDSNET-22839 | Infinite loop in FloaterOverlapResolver due to shape with zero height | Bug |
WORDSNET-22845 | PDF Accessibility Checker (PAC 3) reports failures upon testing for PDF/UA compatibility | Bug |
WORDSNET-22850 | Convert docx to PDF radar chart missing category labels and incorrect scale | Bug |
WORDSNET-22853 | Image of a DML shape is shifted to the right after rendering | Bug |
WORDSNET-22854 | Image of a DML shape is shifted to the top left after rendering | Bug |
WORDSNET-22859 | Image disappears when render document to PDF with SkiaSharp 2.80.3 | Bug |
WORDSNET-22874 | WML to PDF conversion issue with hyperlink | Bug |
WORDSNET-22875 | DOCX to PDF conversion issue with hyperlink | Bug |
WORDSNET-22876 | Conversion issue with hyperlink upon converting to PDF | Bug |
WORDSNET-22877 | Unable to set bit depth of output TIFF image | Bug |
WORDSNET-22881 | RTF to HTML - System.ArgumentNullException | Bug |
WORDSNET-22883 | Cross-reference not working after removing XML mapping | Bug |
WORDSNET-22886 | Extra characters are added in output after DOCX to PDF conversion | Bug |
WORDSNET-22898 | Incorrect table column widths on conversion to PDF | Bug |
WORDSNET-22899 | Document compare is not working properly | Bug |
WORDSNET-22903 | Some SVG symbols look distorted | Bug |
WORDSNET-22906 | Rich text content control is not visible when the SetMapping function is used | Bug |
WORDSNET-22907 | DrawingML textbox position and text orientation is changed after updating page layout | Bug |
WORDSNET-22909 | ArgumentNullException is thrown in Linux when render Mhtml | Bug |
WORDSNET-22916 | Image is lost after DOCX to PDF conversion | Bug |
WORDSNET-22917 | Opening MHT file encoded quoted-printable hangs indefinitely | Bug |
WORDSNET-22919 | Word table formatting issue using Customer XML data | Bug |
WORDSNET-22925 | Math Equation (Shape) does not render correctly in output PDF | Bug |
WORDSNET-22928 | ArgumentNullException: Value cannot be null. (Parameter ‘buffer’) with SkiaSharp 20.8.3 in Docker | Bug |
WORDSNET-22931 | Sigma is rendered as S in EQ Field | Bug |
WORDSNET-22934 | Missing font fallback settings for the Geometric Shapes Extended Unicode block | Bug |
WORDSNET-22939 | NullReferenceException while converting DOCX to PDF | Bug |
WORDSNET-22946 | Incorrect position calculation for East Asian characters in MathTextElement | Bug |
WORDSNET-22949 | draft2digital.com shows exception for EPUB generated by Aspose.Words | Bug |
WORDSNET-22954 | Formatting of footnote is changed after re-saving document | Bug |
WORDSNET-22955 | TOC in document prevents replacements with Range.Replace below the TOC if IgnoreFields = True | Bug |
WORDSNET-22958 | System.ArgumentNullException with SkiaSharp 20.8.3 in Docker | Bug |
WORDSNET-22960 | Comment ranges are lost after comparing documents | Bug |
WORDSNET-22967 | Variables declared in document header when using LINQ are not working in document body | Bug |
WORDSNET-22968 | System.IO.FileLoadException while loading PDF | Bug |
WORDSNET-22969 | PDF to DOCX - content is missing | Bug |
WORDSNET-22970 | PDF to DOCX - extra content added | Bug |
WORDSNET-22974 | XmlException while saving to FOPC | Bug |
WORDSNET-22978 | Unexpected behavior of UpdateFields() | Bug |
WORDSNET-22979 | string.IsNullOrEmpty() method in LINQ template throws an exception | Bug |
WORDSNET-22980 | FileCorruptedException is thrown upon loading RTF document | Bug |
WORDSNET-22981 | Image becomes hidden after open/save document | Bug |
WORDSNET-22988 | DOCX to PDF/a: Empty ‘P’ tag added to output | Bug |
WORDSNET-22989 | Document cannot be unprotected with correct password | Bug |
WORDSNET-23020 | NullReferenceException at CSJ2K’s readBox() | Bug |
WORDSNET-23021 | NullReferenceException at CSJ2K’s FileBitstreamReaderAgent..ctor | Bug |
WORDSNET-23023 | FormatException at PdfTokenParser.EnterHexStringState | Bug |
WORDSNET-23026 | InvalidOperationException: Encrypt element in the trailer dictionary must also be dictionary | Bug |
WORDSNET-23027 | NullReferenceException at SASLPrepAlgorithm.MapCharacters | Bug |
WORDSNET-23028 | NullReferenceException at CSJ2K’s FileFormatReader.readFileFormat | Bug |
WORDSNET-23029 | NullReferenceException at PdfContext.ProcessCrossReferenceStream | Bug |
WORDSNET-23034 | InvalidOperationException: Unexpected nested BT operator | Bug |
WORDSNET-23036 | IndexOutOfRangeException at PdfUnfilteredStream.ApplyFilters | Bug |
WORDSNET-23037 | IndexOutOfRangeException at JBig2Decoder.JBIG2Bitmap.DuplicateRow | Bug |
WORDSNET-23041 | Wrong letters order for RTL text (Persian OCR) | Bug |
WORDSNET-23044 | Fix row detection issues on OCR Table.png | Bug |
WORDSNET-23047 | NotImplementedException: Security handler is not implemented for V=5, R=6 | Bug |
WORDSNET-23048 | Text was skipped because of incorrect ClippingBounds calculation | Bug |
WORDSNET-23049 | Too big font size when notes are written on the page borders | Bug |
WORDSNET-23050 | NullReferenceException when a PDF file has empty cross-reference stream | Bug |
WORDSNET-23051 | DivideByZeroException in TextCorrectionService if language is incorrect | Bug |
WORDSNET-23060 | Duplicated letters in words after the conversion | Bug |
WORDSNET-23061 | NullReferenceException at TableOfContentsTabStorage.NumberIsIncreasing | Bug |
WORDSNET-23062 | InvalidOperationException: Subtype must be present in a Font resource | Bug |
WORDSNET-23065 | InvalidOperationException: Pdf corrupted | Bug |
WORDSNET-23139 | System.InvalidOperationException: Collection was modified | Bug |
WORDSNET-23140 | InvalidOperationException: Footnotes are only allowed inside the main text of the document | Bug |
WORDSNET-23150 | Rotated PathGradient shapes inside group are rendered incorrectly | Bug |
WORDSNET-23151 | Wrong date format in chart after converting DOCX to PDF | Bug |
WORDSNET-23157 | OutOfMemoryException is thrown upon updating fields | Bug |
WORDSNET-23158 | FileCorruptedException is thrown while loading DOC | Bug |
WORDSNET-23161 | DllNotFoundException occurs when use HarfBuzzTextShaperFactory in .NET 6.0 | Bug |
WORDSNET-23165 | Text of Field’s code part is exported into Markdown format | Bug |
WORDSNET-23171 | System.StackOverflowException is thrown while loading RTF | Bug |
WORDSNET-23173 | The shape is changed while exporting from DOCX to PDF, DOC or RTF | Bug |
WORDSNET-23175 | IndexOutOfRangeException in PdfSyntaxParser.ParseArray | Bug |
WORDSNET-23177 | NullReferenceException if page resources are missing | Bug |
WORDSNET-23178 | InvalidOperationException: End of stream while reading literal string | Bug |
WORDSNET-23179 | NullReferenceException at FootnoteDetector.AddSegmentToFootnotes | Bug |
WORDSNET-23180 | Section breaks are changed after inserting document | Bug |
WORDSNET-23184 | Opening HTM file hangs indefinitely | Bug |
WORDSNET-23185 | Lost table while convert from PDF to MD | Bug |
WORDSNET-23187 | FileCorruptedException is thrown while loading document | Bug |
WORDSNET-23189 | FormatException at TimeSpanFormat.FormatCustomized | Bug |
WORDSNET-23190 | KeyNotFoundException: MediaBox was not present in the dictionary | Bug |
WORDSNET-23191 | KeyNotFoundException: Dictionary doesn’t contain “S” entry | Bug |
WORDSNET-23192 | KeyNotFoundException in RomanNumber.TryParse | Bug |
WORDSNET-23193 | InvalidCastException: Cannot cast PdfDictionary to PdfArray | Bug |
WORDSNET-23194 | Saving RTF file hangs indefinitely | Bug |
WORDSNET-23196 | Tables overlap after rendering document | Bug |
WORDSNET-23199 | InvalidOperationException: Cannot read AES initialization vector | Bug |
WORDSNET-23202 | InvalidOperationException in CffReader.ReadOffsets | Bug |
WORDSNET-23203 | NullReferenceException at PdfOperatorTj.Apply | Bug |
WORDSNET-23204 | Incorrect text with black background after the conversion | Bug |
WORDSNET-23205 | InvalidOperationException: Page content invalid at PdfPage.get_Contents() | Bug |
WORDSNET-23206 | Incorrect text of the legend items of the PieChart | Bug |
WORDSNET-23207 | InvalidOperationException at PdfStream.ToByteArray | Bug |
WORDSNET-23209 | Revision.Accept fails for a specific document | Bug |
WORDSNET-23211 | Setting mapping creates corrupted table | Bug |
WORDSNET-23212 | IndexOutOfRangeException at ColorSpaceDeviceRGB.ToRgb | Bug |
WORDSNET-23213 | The end-of-cell marker has been removed from the new row | Bug |
WORDSNET-23214 | Table is rendered improperly | Bug |
WORDSNET-23220 | The paragraph is missing when using WordOpenXML | Bug |
WORDSNET-23221 | Incorrect result of PdfFlateDecodeFilter | Bug |
WORDSNET-23224 | Process hangs when calling UpdateFields method | Bug |
WORDSNET-23226 | Incorrect size and position of the minus sign | Bug |
WORDSNET-23227 | Support xlink:href during import HTML with SVG image | Bug |
WORDSNET-23229 | Fix minor rendering issue | Bug |
WORDSNET-23231 | Shape.Id is duplicated for watermarks inserted by Aspose.Words | Bug |
WORDSNET-23232 | NullReferenceException on cloning | Bug |
WORDSNET-23233 | File can no be re-saved | Bug |
WORDSNET-23234 | NullReferenceException while re-saving document | Bug |
WORDSNET-23236 | Fix accuracy tests keeping failing | Bug |
WORDSNET-23237 | RTF to DOCX - PUA characters treated as symbols instead of text | Bug |
WORDSNET-23238 | Missing some contents after converting PDF to DOCX | Bug |
WORDSNET-23244 | Improve single-path frame DML WordArt rendering | Bug |
WORDSNET-23252 | Font is changed after open/save DOCX | Bug |
WORDSNET-23256 | DOCX to PDF conversion issue with page number rendering in footer | Bug |
WORDSNET-23257 | ODT to DOC: output is different from MS Word | Bug |
WORDSNET-23258 | IReplacingCallback is called before processing FindWholeWordsOnly option | Bug |
WORDSNET-23259 | Consider keeping support of deprecated PDF-A1 | Bug |
WORDSNET-23262 | Repeating table header is rendered improperly | Bug |
WORDSNET-23265 | PDF import takes a lot of time | Bug |
WORDSNET-23269 | Remove obsolete property LayoutOptions.ShowComments | Bug |
WORDSNET-23270 | WordArt glyphs are rendered with an extra outline | Bug |
WORDSNET-23272 | Add ListNumbering attribute to the PDF logical structure | Bug |
WORDSNET-23274 | Paragraph space after is changed in diagram after open/save DOCX document | Bug |
WORDSNET-23281 | Footnote paragraphs are broken | Bug |
WORDSNET-23283 | StackOverflowException is thrown upon loading DOCX document. | Bug |
WORDSNET-23284 | The end-of-cell marker has been removed and revisions have changed when creating custom XML | Bug |
WORDSNET-23287 | Aspose.Words produces invalid document after DOCX to DOCX to DOCM conversion | Bug |
WORDSNET-23292 | An error “Alternative description missing for an annotation” in PDF/UA document | Bug |
WORDSNET-23304 | Aspose.Words hangs on document layout | Bug |
WORDSNET-23307 | Footnote contains original reference name | Bug |
WORDSNET-23308 | Missing bookmarks in DOCX to PDF conversion | Bug |
WORDSNET-23309 | Repair OCR in Aspose.Apps project before next website release | Bug |
WORDSNET-23312 | Some content is pushed to the previous page after converting DOCX to PDF | Bug |
WORDSNET-23315 | Custom document property cannot be retrieved from the PDF generated by Aspose.Words | Bug |
WORDSNET-23318 | Formatting is lost after open/save DOC file | Bug |
WORDSNET-23327 | HTML markup becomes visible in a document loaded from AZW3 | Bug |
WORDSNET-23328 | A MOBI document cannot be loaded | Bug |
WORDSNET-23339 | Oval shape with text is wrapped improperly | Bug |
WORDSNET-23340 | An exception occurs when open ODT document | Bug |
WORDSNET-23344 | Consider exporting hyperlink screentip as alternative text to PDF logical structure | Bug |
WORDSNET-23347 | Out of memory exception when creating custom XML | Bug |
WORDSNET-23359 | “The document appears to be corrupted and cannot be loaded.” exception when opening ODT file | Bug |
WORDSNET-23364 | Text is justified improperly | Bug |
WORDSNET-23366 | ImportFormatMode.KeepSourceFormatting behaves differently in AW and MS Word | Bug |
WORDSNET-23372 | DOCX to RTF conversion throws an InvalidOperationException | Bug |
WORDSNET-23373 | FileCorruptedException when opening DOC | Bug |
WORDSNET-23374 | Custom footnote missed while converting from PDF to Word document | Bug |
WORDSNET-23387 | Alignment of the equation changed after converting a DOCX to PDF | Bug |
WORDSNET-23392 | No way to apply Style to ApplyFont in FindReplaceOptions | Bug |
WORDSNET-23398 | MSG to PDF line spacing issue | Bug |
WORDSNET-23405 | ArgumentException when Load document with SVG image | Bug |
WORDSNET-23407 | “NC sync failed” occurs upon comparing Docx files with SDT | Bug |
WORDSNET-23417 | NullReferenceException is thrown when comparing a document | Bug |
WORDSNET-23418 | “Unexpected subdocument type” when saving to DOC | Bug |
WORDSNET-23424 | Text is incorrectly wrapped in table cell | Bug |
WORDSNET-23428 | Range.Replace does not throw RegexMatchTimeoutException | Bug |
WORDSNET-23433 | Resolving the ranged Sdt without Id | Bug |
WORDSNET-23436 | Paragraphs indents (in character units) incorrectly calculated when Document Grid is defined | Bug |
WORDSNET-23439 | InvalidOperationException: ‘Linked list is in invalid state.’ upon saving document to HTML or rendering | Bug |
WORDSNET-23444 | LayoutEnumerator does not work for textbox | Bug |
WORDSNET-23452 | Unexpected text next to image after converting RTF to PDF | Bug |
WORDSNET-23460 | ArgumentException: ‘Parameter is not valid.’ is thrown upon rendering document to XPS and FixedHtml | Bug |
WORDSNET-23469 | Issue with Document.ExtractPages(..) | Bug |
WORDSNET-23471 | FileCorruptedException is thrown upon loading RTF document | Bug |
WORDSNET-23472 | NullReferenceException at GetBorders | Bug |
WORDSNET-23478 | Some characters are retrieved incorrectly | Bug |
WORDSNET-23487 | XmlException: ‘w16sdtdh’ is an undeclared prefix. Is thrown upon opening DOCX produced by Aspose.Words | Bug |
WORDSNET-23488 | Wrong table style is applied to a table after comparison | Bug |
WORDSNET-23492 | FileFormatUtil.DetectFileFormat() detects some TIFF images as text | Bug |
WORDSNET-23497 | Table is distorted on PDF import | Bug |
WORDSNET-23510 | Arabic text inside table cells is too large | Bug |
WORDSNET-23516 | List labels are displayed as question marks (0xF03F) after conversion from RTF to another formats | Bug |
Full List of Issues Covering all Changes in this Release (Reported by Java Users)
Key | Summary | Category |
---|---|---|
WORDSNET-17734 | DOCX to PDF conversion issue with table and images rendering | New Feature |
WORDSNET-23142 | Support HTML color codes as color values for LINQ Reporting Engine tags | New Feature |
WORDSNET-23198 | Make FieldData property public | New Feature |
WORDSNET-23326 | Tables are rendered with incorrect column widths | New Feature |
WORDSNET-16282 | Document.Compare generates incorrect revisions for tables | Bug |
WORDSNET-17015 | DOCX to PDF - incorrect table cell width | Bug |
WORDSNET-17379 | SmartArt text is rotated in output PDF | Bug |
WORDSNET-18898 | MODIFY_ANNOTATIONS incorrectly Allows Commenting, Filling of Form Fields and Signing in PDF | Bug |
WORDSNET-18902 | Size of SVG images are not displayed correctly | Bug |
WORDSNET-19422 | HTML to RTF conversion removes blank lines | Bug |
WORDSNET-19833 | IndexOutOfRangeException is thorwn while saving DOCX to PDF | Bug |
WORDSNET-20439 | Document.compare performs unexpected comparison | Bug |
WORDSNET-20449 | Document.Compare generates incorrect revisions | Bug |
WORDSNET-20549 | More rows rendered on first Page causing lesser total pages in PDF | Bug |
WORDSNET-20853 | Two Table Rows Created with Insertion and Deletion Revisions after Comparing Word Documents | Bug |
WORDSNET-20945 | Document.Compare generates the incorrect output | Bug |
WORDSNET-21033 | Document.Compare generates the incorrect output | Bug |
WORDSNET-21082 | Aspose Saved DOCX Converted to PDF Suppresses First Column from Table | Bug |
WORDSNET-21135 | Different table widths in resultant file | Bug |
WORDSNET-21328 | Charts rendered incorrect when converted to PDF | Bug |
WORDSNET-21921 | Number is wrapped to next line in table cell after DOCX to PDF conversion | Bug |
WORDSNET-22436 | Font-size incorrectly added to paragraph tag, it should be added to span instead | Bug |
WORDSNET-22480 | DOCX to PDF conversion issue with hidden bookmark | Bug |
WORDSNET-22562 | Document.Compare does not ignore comment | Bug |
WORDSNET-22670 | Wrong text commented after comparing DOCX files | Bug |
WORDSNET-22779 | Document Compare changes the list numbers | Bug |
WORDSNET-22785 | Elements overlap when converting DOC to PDF with Java | Bug |
WORDSNET-22824 | Chart issues when converting DOCX to PDF | Bug |
WORDSNET-22827 | Table row is pushed down to next page in output PDF | Bug |
WORDSNET-22862 | Chart conversion issue upon converting to PDF | Bug |
WORDSNET-22895 | Insert SVG with special characters in Text fails to render in output DOCX and PDF | Bug |
WORDSNET-22922 | Exporting highlighted paragraphs to PDF | Bug |
WORDSNET-22923 | DOCX to PDF: Differences in generated output files | Bug |
WORDSNET-22926 | NullReferenceException is thrown on updating layout | Bug |
WORDSNET-22953 | Comparing documents with changes around a table cause the table to be marked as deleted and re-added | Bug |
WORDSNET-22956 | Revision.Accept throws System.InvalidOperationException | Bug |
WORDSNET-22961 | DOCX to HTML conversion throws System.NullReferenceException | Bug |
WORDSNET-22971 | DOC to PDF conversion issue - new line in wrong place | Bug |
WORDSNET-22972 | getBoundsWithEffects returns 0 width and 0 height | Bug |
WORDSNET-22976 | DOCX to PDF: Inserted image has different dimensions | Bug |
WORDSNET-22977 | IndexOutOfBoundsException when setting alternate text on the shape | Bug |
WORDSNET-22983 | Blank page is produced in output PDF where hidden content was in the original document | Bug |
WORDSNET-23170 | RTF to HTML conversion issue with List labels | Bug |
WORDSNET-23215 | InvalidCastException is thrown upon loading document | Bug |
WORDSNET-23253 | Exported PDF contains image with lower resolution | Bug |
WORDSNET-23278 | Horizontal axis scaling is incorrect upon rendering chart | Bug |
WORDSNET-23299 | ArgumentException is thrown while inserting document | Bug |
WORDSNET-23305 | Redundant table format revision is rendered | Bug |
WORDSNET-23346 | DOCX to PDF missing lines in the chart | Bug |
WORDSNET-23378 | Content is missed upon rendering document. | Bug |
WORDSNET-23410 | IndexOutOfRangeException is thrown upon saving document to HTML | Bug |
WORDSNET-23427 | Content in table cell is slightly overlaps border | Bug |
WORDSNET-23484 | Bookmark is pointing to wrong page after rendering to PDF | Bug |
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
-
New value PDF20 added to PdfCompliance enum
-
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
andPdfDigitalSignatureHashAlgorithm.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. -
Improvements in PDF encryption Removed
PdfEncryptionAlgorithm
enum andencryption_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. -
Several options (use_core_fonts, custom_properties_export in PdfSaveOptions cannot be used when saving PDF 2.0
-
Removed obsolete
PdfCompliance.PDF15
enum value
Added FieldStart.field_data property
Related issue: WORDSNET-23198
The following public property is added to FieldStart class:
@property
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]
print(len(field.start.field_data))
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
doc.save(output_filename, 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
builder.start_table()
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
builder.end_row()
# Second row
cell3 = builder.insert_cell()
cell3.cell_format.width = 200
builder.write("Row 2 cell spans 2 columns.")
# End of second row
builder.end_row()
builder.end_table()
doc.update_page_layout()
doc.save("merged_cell.docx")
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.
table.auto_fit(aw.tables.AutoFitBehavior.FIXED_COLUMN_WIDTHS)
doc.update_page_layout()
doc.save("merged_cell.docx")
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.
@property
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()
print(shape.chart.source_full_name)
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()
print(imported_para.paragraph_format.style_name)
# 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
doc.save("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):
"""Initializer.
: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.
"""
...
@property
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):
"""Initializer.
: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.
"""
...
@property
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])
settings.save_search_cache(cache_output_stream)
# 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.
shape.fill.set_image("ShapeBackground.jpg")
builder.document.save("SingleImageDocument.docx")
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:
@property
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