Aspose.Words for CPP 20.6 Release Notes

Major Features

We have added the following features from Aspose.Words for .NET on this regular monthly release:

  • Font.EmphasisMark is exposed to the public.
  • Added a new public property ImportFormatOptions.IgnoreHeaderFooter.
  • MarkdownSaveOptions class is introduced.

Limitations and API Differences

Aspose.Words for C++ has some differences as compared to its equivalent .NET version of the API. This section contains information about all such functionality that is not available in the current release. The missing features will be added in future releases.

  • The current release does not support the Metered license.
  • The current release does not support a multipage TIFF format.
  • The current release does not support LINQ and Reporting features.
  • The current release does not support OpenGL 3D Shapes rendering.
  • The current release does not support advanced typography based on the HarfBuzz shaper.
  • The current release does not support loading PDF documents.
  • The current release has limited support for database features - C++ does not have a common API for DB like .NET System.Data.
  • The current release only supports Microsoft Visual C++ version 2017 or higher and only for the x64 platform.

Full List of Issues Covering all Changes in this Release

KeySummaryCategory
WORDSNET-13983Add feature to support ‘Emphasis Mark’ font settingNew Feature
WORDSNET-19976Font embedding works fine but the symbol is saved to PDF incorrectlyNew Feature
WORDSNET-20297Add ability to create MarkdownSaveOptions using SaveOptionsNew Feature
WORDSNET-20491System.IO.FileLoadException occurs upon loading a PDFEnhancement
WORDSNET-20354Chart X-Axis with superscript valueBug
WORDSNET-20376Font style (Name, Size, etc) of header/footer content gets lost after appending two documentsBug
WORDSNET-20183The image is reversed (180-degree flip) after DOC to HTML conversionBug
WORDSNET-19457System.StackOverflowException is thrown while loading HTMLBug
WORDSNET-20330Document.updateFields() wrong field values in tablesBug
WORDSNET-20331Content-control text is replaced during open/save a documentBug
WORDSNET-20339Gradient fill effect not preserved during Word to PDF ConversionBug
WORDSNET-20341WordArt has linebreakBug
WORDSNET-20342Options to improve the quality of a rendered document does not work correctly on NetStandardBug
WORDSNET-20344Office Math. The combination of a comma and two spaces should be replaced by a comma and nine spaces.Bug
WORDSNET-17270DOCX to PDF conversion issue with Shape renderingBug
WORDSNET-17872DOCX to PDF conversion issue with Formula renderingBug
WORDSNET-10330DOCX to PDF conversion issue with Persian textBug
WORDSNET-17491Conversion of document with soft returns does not retain formatting in PDFBug
WORDSNET-17818Some lines move to the next pages in PDFBug
WORDSNET-18710Improve OOXML embedding comparisonBug
WORDSNET-19010DOCX to ODT conversion issue with characters rendering having “Wingdings 2” fontsBug
WORDSNET-19104Problem with paragraph above footnote after conversion DOCX to PDFBug
WORDSNET-20446SVG attribute names that start with invalid characters leads to an exceptionBug
WORDSNET-20170On conversion from MHTML to PDF the exception “FileCorruptedException” has been thrownBug
WORDSNET-17988Text in SmartArt mirrored and reversed when renderingBug
WORDSNET-20357Re-naming FormField does not re-name its corresponding bookmarkBug
WORDSNET-3980“o:extrusion”->"rotationangle” attribute is imported incorrectlyBug
WORDSNET-20506Text font formatting is changed after setting FontInfos (Embedded Fonts)Bug
WORDSNET-20227Fidelity to MS Word page breaks - DOCX to PDFBug
WORDSNET-20368Content missing after DOC to PDF conversionBug
WORDSNET-20372EMF image in DOCX loses text after conversion of DOCX to PDFBug
WORDSNET-19128Watermark image is missed from document after saveBug
WORDSNET-20378Extra paragraph is created when single line TXT document is imported into DOMBug
WORDSNET-20493First Line on a PDF Page is repeating at the end of previous Page in DOCBug
WORDSNET-19132Numbering issue for table when it’s part of listBug
WORDSNET-20188Font-weight of SVG ignoredBug
WORDSNET-20392Math Equation Replaced by an Empty Picture during Inserting HTML to WordBug
WORDSNET-20393Incorrect export of nested tables into MarkdownBug
WORDSNET-18629SVG is rendered incorrectly in output DOCX/PDFBug
WORDSNET-20475Aspose.Words.FileCorruptedException is thrown when DOCX is imported into DOMBug
WORDSNET-19167SmartArt to PNG conversion issue with text colorBug
WORDSNET-18966Image Coloring is wrong in PDFBug
WORDSNET-20405Document.Compare Produces Six Revisions for Identical DocumentsBug
WORDSNET-20394Content lines with only whitespace characters are incorrectly escaped while exporting into MarkdownBug
WORDSNET-18977Critical memory consumption while converting DOCX to PDFBug
WORDSNET-20261Size of FieldIncludePicture is changed after updatingBug
WORDSNET-5287DocumentBuilder behaves improperly when insert a multi-line formfieldBug
WORDSNET-19540Document inline images losing resolution quality on savingBug
WORDSNET-20407Incorrect export of Headings inside table into MarkdownBug
WORDSNET-20408Wrong output of paragraphs started with ordered list markers inside table while exporting into MarkdownBug
WORDSNET-20409List labels are not preserved while exporting numbered paragraphs into MarkdownBug
WORDSNET-20355Extra empty page is created after DOCX to PDF conversionBug
WORDSNET-20002SVG renders incorrectly in output DOCX and PDFBug
WORDSNET-20412Error converting to PDF - Buffer cannot be null. Parameter name: bufferBug
WORDSNET-19155NodeRendererBase.Save saves the OfficeMath incorrectlyBug
WORDSNET-14904DOCX to HTML conversion issue with shape’s renderingBug
WORDSNET-20269SmartArt Text Rotation (Direction) issue when converting from DOCX to PDFBug
WORDSNET-19526DOCX to HTML conversion issue with text direction in table’s cellBug
WORDSNET-19917The “span” attribute of elements in HTML is not supportedBug
WORDSNET-20270ThrowArgumentOutOfRangeException occurs if “rowspan” attribute of a table cell is not correctly definedBug
WORDSNET-20420InsertDocument changes the inserted documentBug
WORDSNET-20422InvalidOperationException in PdfWriterBug
WORDSNET-19703Incorrect border width on conversion to PDFBug
WORDSNET-20425Add the ability to control the alignment of table contents when exporting to the MarkdownBug
WORDSNET-20273Document.Compare generates incorrect outputBug
WORDSNET-20120Performance issue while saving first page of document to JPEGBug
WORDSNET-20431Font formatting " All Caps” is lost for heading text in output PDFBug
WORDSNET-20272System.IO.__Error.EndOfFile occurs if an image with base64 source is corruptedBug
WORDSNET-20283ArgumentOutOfRangeException occurs if “value” parameter of <li> is less than 0 or greater than 32767Bug
WORDSNET-20507LINQ Reporting Engine - Nullable int is not recognized for JsonDataSourceBug
WORDSNET-19870System.ArgumentException Invalid object Parameter name: opaque - DOCX to HTMLBug
WORDSNET-2295Compatibility option “Use Word 97 line-breaking rules for Asian text” is not supportedBug
WORDSNET-19923Performance degrades while writing to more than 100MB fileBug
WORDSNET-20358JoinRunsWithSameFormatting does not join the Run nodes with same formattingBug
WORDSNET-20444ArgumentOutOfRangeException occurs if “value” of <li> and “start” of <ol> are both out of rangeBug
WORDSNET-20132Picture pushed to the next page when converting DOCX to PDFBug
WORDSNET-20282ArgumentOutOfRangeException occurs if “margin-top” or “margin-bottom” is less than 0 or greater than 2112pxBug
WORDSNET-6886Theme colors in Font color palette are displayed black in MS WORD WEB APPBug
WORDSNET-20459Graphics Object has Incorrect Rotation during DOCX to PDF ConversionBug
WORDSNET-20165Bold and italic text is not properly converted to MarkdownBug
WORDSNET-20470Issue with DOC to PDF conversionBug
WORDSNET-20313Incorrect gradient fill for rectangle shape with bevelBug
WORDSNET-19553Blank page added after [page break] in PDFBug
WORDSNET-20182Headers render incorrectly after DOT to PDF conversionBug
WORDSNET-5072FormField is not listed in the ForFieldCollectionBug
WORDSNET-16677Incorrect track changes in output DOCX after setting field’s resultBug
WORDSNET-16283Image is cropped when saved to PDFBug
WORDSNET-9418Export to DOC fails for the documentBug
WORDSNET-9450RTF Hebrew contents are changed into incorrect characters when it is loaded into Aspose.Words DOMBug
WORDSNET-10546Contents are changed from RTL to LTR after saving RTF to DOCXBug
WORDSNET-17076Additional rows in table (using Repeating section) after comparing word documentsBug
WORDSNET-17198Unwanted Revisions appear in generated DOCXBug
WORDSNET-20349WordArt - text incorrectly rotated in the output PDFBug
WORDSNET-20318Shape.Width returns incorrect valueBug
WORDSNET-6648Table formatting (horizontal cell merging) lost upon conversion to DOCBug
WORDSNET-16221Table is overlapped after conversion from DOCX to PDFBug

Public API and Backward Incompatible Changes

This section lists public API changes that were introduced in Aspose.Words 20.6. It includes not only new and obsoleted public methods, but also a description of any changes in the behavior behind the scenes in Aspose.Words which may affect existing code. Any behavior introduced that could be seen as regression and modifies the existing behavior is especially important and is documented here.

Added a new public class MarkdownSaveOptions

Related issue: WORDSNET-20297

A new public class MarkdownSaveOptions has been added into Aspose.Words.Saving namespace:

.NET

 /// <summary>

/// Class to specify additional options when saving a document into the <see cref="Words.SaveFormat.Markdown"/> format.

/// </summary>

public class MarkdownSaveOptions : TxtSaveOptionsBase

For a moment it has only the following own public property:

.NET

 /// <summary>

/// Specifies the format in which the document will be saved if this save options object is used.

/// Can only be <see cref="Words.SaveFormat.Markdown"/>.

/// </summary>

public override SaveFormat SaveFormat

Note, TxtSaveOptionsBase.PreserveTableLayout is moved to TxtSaveOptions.PreserveTableLayout:

.NET

 /// <summary>

/// Specifies whether the program should attempt to preserve layout of tables when saving in the plain text format.

/// The default value is <b>false</b>.

/// </summary>

public bool PreserveTableLayout

Use Case. Explains how to create and use MarkdownSaveOptions object:

.NET

 DocumentBuilder builder = new DocumentBuilder();

builder.Writeln("Some text!");



MarkdownSaveOptions saveOptions = (MarkdownSaveOptions)SaveOptions.CreateSaveOptions(SaveFormat.Markdown);

builder.Document.Save("TestDocument.md", saveOptions);

Added a new public property Font.EmphasisMark

Related issue: WORDSNET-13983

Added a new public property Font.EmphasisMark:

.NET

 /// <summary>

/// Gets or sets the emphasis mark applied to this formatting.

/// </summary>

public EmphasisMark EmphasisMark

The emphasis mark is an additional character that is rendered above or below the main character glyph as specified in the enum below.

.NET

 /// <summary>

/// Specifies possible types of emphasis mark.

/// </summary>

public enum EmphasisMark

{

    /// <summary>

    /// No emphasis mark.

    /// </summary>

    None = 0x00,



    /// <summary>

    /// Emphasis mark is a solid black circle displayed above text.

    /// </summary>

    OverSolidCircle = 0x01,



    /// <summary>

    /// Emphasis mark is a comma character displayed above text.

    /// </summary>

    OverComma = 0x02,



    /// <summary>

    /// Emphasis mark is an empty white circle displayed above text.

    /// </summary>

    OverWhiteCircle = 0x03,



    /// <summary>

    /// Emphasis mark is a solid black circle displayed below text.

    /// </summary>

    UnderSolidCircle = 0x04,

}

Use Case. Explains how to set Font.EmphasisMark via DocumentBuilder:

.NET

 Document document = new Document();

DocumentBuilder builder = new DocumentBuilder(document);



builder.Font.EmphasisMark = EmphasisMark.UnderSolidCircle;



builder.Write("Emphasis text");

builder.Writeln();

builder.Font.ClearFormatting();

builder.Write("Simple text");



document.Save(savePath, saveOptions);

Added a new public property ImportFormatOptions.IgnoreHeaderFooter

Related issue: WORDSNET-19776

Added a new public property ImportFormatOptions.IgnoreHeaderFooter:

.NET

 /// <summary>

/// Gets or sets a boolean value that specifies that source formatting of headers/footers content ignored

/// if ImportFormatMode.KeepSourceFormatting mode is used.

/// The default value is true.

/// </summary>

It’s true by default to preserve Word’s behavior.

Use Case:

.NET

 Document dstDocument = new Document(dstDocumentPath);

Document srcDocument = new Document(srcDocumentPath);



ImportFormatOptions importFormatOptions = new ImportFormatOptions();

importFormatOptions.IgnoreHeaderFooter = false;



dstDocument.AppendDocument(srcDocument, ImportFormatMode.KeepSourceFormatting, importFormatOptions);

Added a new public property MarkdownSaveOptions.TableContentAlignment

Related issue: WORDSNET-20425

A new public property TableContentAlignment has been added into MarkdownSaveOptions class:

.NET

 /// <summary>

/// Gets or sets a value that specifies how to align contents in tables

/// when exporting into the <see cref="Words.SaveFormat.Markdown"/> format.

/// The default value is <see cref="Saving.TableContentAlignment.Auto"/>. 

/// </summary>

public TableContentAlignment TableContentAlignment { get; set; }

Also, a new public enumeration has been added:

.NET

 /// <summary>

/// Allows to specify the alignment of the content of the table to be used when exporting into Markdown format.

/// </summary>

public enum TableContentAlignment

{

    /// <summary>

    /// The alignment will be taken from the first paragraph in corresponding table column.

    /// </summary>

    Auto,

    /// <summary>

    /// The content of tables will be aligned to the Left.

    /// </summary>

    Left,

    /// <summary>

    /// The content of tables will be aligned to the Center.

    /// </summary>

    Center,

    /// <summary>

    /// The content of tables will be aligned to the Right.

    /// </summary>

    Right

}

Use Case. Explains how to align content inside the table when exporting into Markdown:

.NET

 DocumentBuilder builder = new DocumentBuilder();



// Create a new table with two cells.

builder.InsertCell();

builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;

builder.Write("Cell1");

builder.InsertCell();

builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;

builder.Write("Cell2");



MarkdownSaveOptions saveOptions = new MarkdownSaveOptions();

// Makes all paragraphs inside table to be aligned to Left. 

saveOptions.TableContentAlignment = TableContentAlignment.Left;

builder.Document.Save("left.md", saveOptions);



// Makes all paragraphs inside table to be aligned to Right. 

saveOptions.TableContentAlignment = TableContentAlignment.Right;

builder.Document.Save("right.md", saveOptions);



// Makes all paragraphs inside table to be aligned to Center. 

saveOptions.TableContentAlignment = TableContentAlignment.Center;

builder.Document.Save("center.md", saveOptions);



// Makes all paragraphs inside table to be aligned automatically.

// The alignment in this case will be taken from the first paragraph in corresponding table column.

saveOptions.TableContentAlignment = TableContentAlignment.Auto;

builder.Document.Save("auto.md", saveOptions);

PDF version 1.5 is marked as obsolete

PDF version 1.5 is outdated and marked as obsolete. Please, use the latest PDF version 1.7.

.NET

 // Specifies the PDF standards compliance level. 

public enum PdfCompliance

{

...

    [Obsolete("PDF version 1.5 is outdated and will be removed in future releases. Please, use the latest PDF version 1.7.")]

    Pdf15,

...

}