Aspose.HTML for .NET 22.2 Release Notes

As per regular monthly update process of all APIs being offered by Aspose, we are honored to announce the February release of Aspose.HTML for .NET.

In this release, we have significantly redesigned text processing algorithms. Now, when processing text, the features declared in fonts will be applied, dramatically improving the quality of rendering for some languages. We have also made many improvements to other algorithms, here are some of them:

  • Improved the table header splitting algorithm. Now the situation when the header is larger than the free space is correctly handled.
  • Improved the font selection algorithm used in SVG rendering.
  • Implemented an algorithm for handling obsolete CSS properties.

Improvements and Changes

KeySummaryCategory
HTMLNET-3568HTML to PDF: right side is cut offBug
HTMLNET-2682Support for .NET 5Investigation
HTMLNET-3618HTML to PDF conversion does not work for page-break-insideBug
HTMLNET-3569HTM to PDF content is cut off on the right sideBug
HTMLNET-3567Convert from Template HTML (with Template Data Json), then save file .html - Failed to parse URLBug
HTMLNET-2774Issue with Arabic charactersBug

Public API and Backward Incompatible Changes

Changed APIs

Some classes have been replaced due to the transition to the new text processing logic.

namespace Aspose.Html.Rendering
{
    //From
    public class TextInfo
    {
        public IList<CharacterInfo> CharacterInfos { get; }
    }

    //To
    public class TextInfo
    {
        /// <summary>
        /// Gets information about rendered glyphs.
        /// </summary>
        /// <value>
        /// A <see cref="IList{GlyphInfo}" /> that contains information about rendered glyphs.
        /// </value>
        public IList<GlyphInfo> GlyphInfos { get; }
    }
}
namespace Aspose.Html.Rendering
{
    //From
    public struct CharacterInfo
    {
        public float Width { get; }

        public float Offset { get; }
    }

    //To
    /// <summary>
    /// Contains glyph related information.
    /// </summary>
    public struct GlyphInfo
    {
        /// <summary>
        /// Gets the width of the glyph, in points.
        /// </summary>
        /// <value>
        /// Width in points.
        /// </value>
        public float Width { get; }

        /// <summary>
        /// Gets the offset to the next glyph in points.
        /// </summary>
        /// <value>
        /// Offset in points.
        /// </value>
        public float Offset { get; }

        /// <summary>
        /// Gets the index of this glyph in the font.
        /// </summary>
        /// <value>
        /// Index of the glyph.
        /// </value>
        public uint Index { get; }
    }
}