Browse our Products

Aspose.Words for .NET 22.3 Release Notes

Major Features

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

  • Added saving to PDF 2.0 and several other improvements in PDF output.
  • Improved DML chart axis scaling algorithm.
  • Saving progress notifications were extended for TXT format.
  • Improved table comparing algorithm.
  • Provided comments syntax in LINQ Reporting.

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

KeySummaryCategory
WORDSNET-5101Support AES encryption algorithmsNew Feature
WORDSNET-14614Improve TOC style and page numbersNew Feature
WORDSNET-23250Support PDF 2.0 versionNew Feature
WORDSNET-20128Inconsistent behavior with dynamic columns and horizontal merge (portrait vs landscape)New Feature
WORDSNET-20127Inconsistent behavior with dynamic columns and horizontal mergeNew Feature
WORDSNET-22891Add loading progress notification for TXT documentsNew Feature
WORDSNET-23490Provide comments syntax in LINQ ReportingNew Feature
WORDSNET-23414Preserve paragraph outline level upon importing tagged PDF documentNew Feature
WORDSNET-23264Improve ConvertTabStops code during conversion from DOCX to fixed page formatEnhancement
WORDSNET-18140DML fill can not be retrieved and set correctlyBug
WORDSNET-23327HTML markup becomes visible in a document loaded from AZW3Bug
WORDSNET-18518Table compare bugBug
WORDSNET-19739Incorrect scaling of the horizontal axis after converting to PDFBug
WORDSNET-16918Document.Compare generates the incorrect revisionsBug
WORDSNET-18188Documents comparing gives incorrect revisionsBug
WORDSNET-9291Incorrect SmartArt rendering in output PDFBug
WORDSNET-20110Bangla in Microsoft Equation does not render correctly in PDFBug
WORDSNET-23196Tables overlap after rendering documentBug
WORDSNET-20829Table Rows being pushed to previous Pages in PDFBug
WORDSNET-20830Preserve empty page during Word DOCX to PDF ConversionBug
WORDSNET-23328A MOBI document cannot be loadedBug
WORDSNET-23204Incorrect text with black background after the conversionBug
WORDSNET-23366ImportFormatMode.KeepSourceFormatting behaves differently in AW and MS WordBug
WORDSNET-23209Revision.Accept fails for a specific documentBug
WORDSNET-21129Compare Document functionality is not working as expected with tablesBug
WORDSNET-21918Pie chart color is changed in output PDFBug
WORDSNET-23221Incorrect result of PdfFlateDecodeFilterBug
WORDSNET-23227Support xlink:href during import HTML with SVG imageBug
WORDSNET-22645Text of Table cell is lost after HTML to DOCX conversionBug
WORDSNET-22989Document cannot be unprotected with correct passwordBug
WORDSNET-20649Document.Compare generates incorrect revision for table’s columnBug
WORDSNET-22671Table and image are overlapped after DOCX to PDF conversionBug
WORDSNET-23257ODT to DOC: output is different from MS WordBug
WORDSNET-23037IndexOutOfRangeException at JBig2Decoder.JBIG2Bitmap.DuplicateRowBug
WORDSNET-22830Chart is not rendered correctly after DOCX to PDF conversionBug
WORDSNET-23259Consider keeping support of deprecated PDF-A1Bug
WORDSNET-23398MSG to PDF line spacing issueBug
WORDSNET-20705Word to PDF conversion issue with Phonetic Guides, resulting in misaligned textBug
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-23373FileCorruptedException when opening DOCBug
WORDSNET-23191KeyNotFoundException: Dictionary doesn’t contain “S” entryBug
WORDSNET-23026InvalidOperationException: Encrypt element in the trailer dictionary must also be dictionaryBug
WORDSNET-23283StackOverflowException is thrown upon loading DOCX document.Bug
WORDSNET-23292An error “Alternative description missing for an annotation” in PDF/UA documentBug
WORDSNET-23424Text is incorrectly wrapped in table cellBug
WORDSNET-23372DOCX to RTF conversion throws an InvalidOperationExceptionBug
WORDSNET-23304Aspose.Words hangs on document layoutBug
WORDSNET-23433Resolving the ranged Sdt without IdBug
WORDSNET-23436Paragraphs indents (in character units) incorrectly calculated when Document Grid  is definedBug
WORDSNET-23428Range.Replace does not throw RegexMatchTimeoutExceptionBug
WORDSNET-23439InvalidOperationException: ‘Linked list is in invalid state.’ upon saving document to HTML or renderingBug
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-23472NullReferenceException at GetBordersBug
WORDSNET-23469Issue with Document.ExtractPages(..)Bug
WORDSNET-23471FileCorruptedException is thrown upon loading RTF documentBug
WORDSNET-23190KeyNotFoundException: MediaBox was not present in the dictionaryBug
WORDSNET-23478Some characters are retrieved incorrectlyBug
WORDSNET-23487XmlException: ‘w16sdtdh’ is an undeclared prefix.  Is thrown upon opening DOCX produced by Aspose.WordsBug
WORDSNET-23492FileFormatUtil.DetectFileFormat() detects some TIFF images as textBug
WORDSNET-23488Wrong table style is applied to a table after comparisonBug
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
WORDSNET-18696Wrong detections of revisions (paragraphs marked deleted)Bug
WORDSNET-18703Check the compare produces incorrect revisionsBug
WORDSNET-19048Document.Compare produces incorrect revisionsBug
WORDSNET-16293RTF Documents Comparison Issue with Table CellsBug
WORDSNET-21501Incorrect rendering of complex SVG image when  document save as PNGBug
WORDSNET-23444LayoutEnumerator does not work for textboxBug

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

KeySummaryCategory
WORDSNET-23346DOCX to PDF missing lines in the chartBug
WORDSNET-21033Document.Compare generates the incorrect outputBug
WORDSNET-20853Two Table Rows Created with Insertion and Deletion Revisions after Comparing Word DocumentsBug
WORDSNET-20439Document.compare performs unexpected comparisonBug
WORDSNET-20449Document.Compare generates incorrect revisionsBug
WORDSNET-20945Document.Compare generates the incorrect outputBug
WORDSNET-23378Content is missed upon rendering document.Bug
WORDSNET-21328Charts rendered incorrect when converted to PDFBug
WORDSNET-22827Table row is pushed down to next page in output PDFBug
WORDSNET-23410IndexOutOfRangeException is thrown upon saving document to HTMLBug
WORDSNET-23278Horizontal axis scaling is incorrect upon rendering chartBug
WORDSNET-23427Content in table cell is slightly overlaps borderBug
WORDSNET-18898MODIFY_ANNOTATIONS incorrectly Allows Commenting, Filling of Form Fields and Signing in PDFBug
WORDSNET-23484Bookmark is pointing to wrong page after rendering to PDFBug
WORDSNET-17379SmartArt text is rotated in output PDFBug
WORDSNET-16282Document.Compare generates incorrect revisions for tablesBug
WORDSNET-19422HTML to RTF conversion removes blank linesBug

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 added to PdfCompliance enum
    public enum PdfCompliance
    {
        /// <summary>
        /// The output file will comply with the PDF 2.0 (ISO 32000-2) standard.
        /// </summary>
        Pdf20
    }
  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.RipeMD160 value. PdfDigitalSignatureHashAlgorithm.Sha1 and PdfDigitalSignatureHashAlgorithm.Md5 values are marked as obsolete. Default value for PdfDigitalSignatureDetails.HashAlgorithm 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.
    public enum PdfDigitalSignatureHashAlgorithm
    {
        /// <summary>
        /// SHA-1 hash algorithm.
        /// </summary>
        [Obsolete("SHA-1 hash algorithm has been deprecated in latest PDF specification. Please, use the other hash algorithm instead.")]
        Sha1,
        /// <summary>
        /// MD5 hash algorithm.
        /// </summary>
        [Obsolete("MD5 hash algorithm has been deprecated in latest PDF specification. Please, use the other hash algorithm instead.")]
        Md5,
        /// <summary>
        /// RIPEMD-160 hash algorithm.
        /// </summary>
        RipeMD160,
    }
     
    public class PdfDigitalSignatureDetails
    {
        /// <summary>
        /// Gets or sets the hash algorithm.
        /// </summary>
        /// <remarks>The default value is the SHA-256 algorithm.</remarks>
        public PdfDigitalSignatureHashAlgorithm HashAlgorithm { get; set; }        
    }
  3. Improvements in PDF encryption Removed PdfEncryptionAlgorithm enum and encryptionAlgorithm 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. Updated XML comments on PdfPermissions to fit current algorithms.
    public class PdfSaveOptions
    {
        /// <summary>
        /// Gets or sets the details for encrypting the output PDF document.
        /// </summary>
        /// <remarks>
        /// <para>The default value is null and the output document will not be encrypted.
        /// When this property is set to a valid <see cref="PdfEncryptionDetails"/> object,
        /// then the output PDF document will be encrypted.</para>
        /// <para>AES-128 encryption algorithm is used when saving to PDF 1.7 based compliance (including PDF/UA-1).
        /// AES-256 encryption algorithm is used when saving to PDF 2.0 based compliance.</para>
        /// <para>Encryption is prohibited by PDF/A compliance. This option will be ignored when saving to PDF/A.</para>
        /// <para><see cref="PdfPermissions.ContentCopyForAccessibility"/> permission is required by PDF/UA compliance
        /// if the output document is encrypted. This permission will automatically used when saving to PDF/UA.</para>
        /// <para><see cref="PdfPermissions.ContentCopyForAccessibility"/> permission is deprecated in PDF 2.0 format.
        /// This permission will be ignored when saving to PDF 2.0.</para>
        /// </remarks>
        public PdfEncryptionDetails EncryptionDetails { get; set; }
    }
     
    public class PdfEncryptionDetails
    {
        /// <summary>
        /// Initializes an instance of this class.
        /// </summary>
        public PdfEncryptionDetails(string userPassword, string ownerPassword);
    }
     
    public enum PdfPermissions
    {
        /// <summary>
        /// Disallows all operations on the PDF document.
        /// This is the default value.
        /// </summary>
        DisallowAll,
        /// <summary>
        /// Allows all operations on the PDF document.
        /// </summary>
        AllowAll,
        /// <summary>
        /// Copy or otherwise extract text and graphics from the document by operations other than that controlled
        /// by <see cref="ContentCopyForAccessibility"/>.
        /// </summary>
        ContentCopy,
        /// <summary>
        /// Extract text and graphics (in support of accessibility to users with disabilities or for other purposes).
        /// </summary>
        ContentCopyForAccessibility,
        /// <summary>
        /// Modify the contents of the document by operations other than those controlled by
        /// <see cref="ModifyAnnotations"/>, <see cref="FillIn"/>, and <see cref="DocumentAssembly"/>.
        /// </summary>
        ModifyContents,
        /// <summary>
        /// Add or modify text annotations, fill in interactive form fields, and, if <see cref="ModifyContents"/> is
        /// also set, create or modify interactive form fields (including signature fields).
        /// </summary>
        ModifyAnnotations,
        /// <summary>
        /// Fill in existing interactive form fields (including signature fields), even if <see cref="ModifyContents"/>
        /// is clear.
        /// </summary>
        FillIn,
        /// <summary>
        /// Assemble the document (insert, rotate, or delete pages and create document outline items or thumbnail
        /// images), even if <see cref="ModifyContents"/> is clear.
        /// </summary>
        DocumentAssembly,
        /// <summary>
        /// Print the document (possibly not at the highest quality level, depending on whether
        /// <see cref="HighResolutionPrinting"/> is also set).
        /// </summary>
        Printing,
        /// <summary>
        /// Print the document to a representation from which a faithful digital copy of the PDF content could be
        /// generated, based on an implementation-dependent algorithm. When this flag is clear (and
        /// <see cref="Printing"/> is set), printing shall be limited to a low-level representation of the appearance,
        /// possibly of degraded quality.
        /// </summary>
        HighResolutionPrinting
    }
  4. Several options in PdfSaveOptions cannot be used when saving PDF 2.0
    public class PdfSaveOptions
    {
        /// <summary>
        /// Gets or sets a value determining whether or not to substitute TrueType fonts Arial, Times New Roman,
        /// Courier New and Symbol with core PDF Type 1 fonts.
        /// </summary>
        /// <remarks>
        ...
        /// <para>Core fonts are not supported when saving to PDF 2.0 format. <c>false</c> value will be used
        /// automatically when saving to PDF 2.0.</para>
        ...
        /// </remarks>
        public bool UseCoreFonts { get; set; }
     
        /// <summary>
        /// Gets or sets a value determining the way <see cref="Document.CustomDocumentProperties"/> are exported to PDF file.
        /// </summary>
        /// <remarks>
        ...
        /// <para><see cref="PdfCustomPropertiesExport.Standard"/> value is not supported when saving to PDF 2.0.
        /// <see cref="PdfCustomPropertiesExport.Metadata"/> will be used instead.
        /// </para>
        /// </remarks>
        public PdfCustomPropertiesExport CustomPropertiesExport { get; set; }
    }
  5. Changes related to obsolete PdfCompliance enum values:
  • Removed obsolete PdfCompliance.Pdf15
  • Removed obsolete attribute from PdfCompliance.PdfA1b and PdfCompliance.PdfA1a