Browse our Products
Aspose.Words for .NET 17.5 Release Notes
Major Features
There are 84 improvements and fixes in this regular monthly release. The most notable are:
- MailMerge and Metafile rendering performance are improved.
- Support TOA, IMPORT, INCLUDE, SHAPE fields.
- API to bind SDT to CustomXML properties is provided.
- Implemented support for ShapeLayoutLikeWW8 compatibility option.
- Improved calculation of width of spaces in Asian text.
- Improved text wrapping for lines consisting of many tabs.
- Improved layout of multi-column sections when column ends with page break followed by paragraph break.
- A low resolution text rendering to images improved.
- Underlined text in EMF+ images are now rendered into fixed page formats.
- HtmlFixed output file rendering improved (removing zero-sized text boxes).
- Image crop is now taken into account while rendering HtmlFixed.
- Shaded DrawingML images rendering fixed.
- DrawingML Charts rendering improved (axis label placement).
Full List of Issues Covering all Changes in this Release
Key | Summary | Category |
---|---|---|
WORDSNET-10427 | Doc to fixed file format conversion issue with STYLEREF | Bug |
WORDSNET-10833 | non-breaking space. Text position is changed after conversion from Docx to Doc/Pdf | Bug |
WORDSNET-12367 | Aspose.Words does not import the Run nodes correctly in DOM | Bug |
WORDSNET-12544 | space width + BalanceSingleByteDoubleByteWidth. Cell’s text moves to next line in output Pdf | Bug |
WORDSNET-14200 | Rtf to Docx conversion issue with spaces’s width. | Bug |
WORDSNET-14348 | ShapeLayoutLikeWW8. Doc to Pdf conversion issue with content’s position | Bug |
WORDSNET-14349 | Veracode vulnerabilities in running Aspose.Words API code | Bug |
WORDSNET-14355 | ShapeLayoutLikeWW8. Doc to Pdf conversion issue with shape’s position | Bug |
WORDSNET-14408 | Bookmark.Remove() removes only some bookmarks. | Bug |
WORDSNET-14647 | Chart is corrupted after conversion from MS WORD to PDF | Bug |
WORDSNET-14661 | List labels are lost after conversion from RTF to PNG | Bug |
WORDSNET-14667 | Image is lost after modifying the output Doc with MS Word 2003. | Bug |
WORDSNET-14682 | Document.AcceptAllRevisions does not accept all tracked changes | Bug |
WORDSNET-14706 | Chart image size seems bigger than original when exporting to HTML | Bug |
WORDSNET-14874 | Embedded Fonts are gone when printing Aspose.Words generated PDF | Bug |
WORDSNET-14881 | If saving to HTML and CssSavingArgs.CssStream is provided, CSS outputs both to the stream and to a file | Bug |
WORDSNET-14928 | Slope of Drawing Line is inversed when opening and saving the document | Bug |
WORDSNET-14952 | Pictures are shifted in rendered documents | Bug |
WORDSNET-14987 | Chart rendering is not accurate. | Bug |
WORDSNET-14992 | Vertical Axis of chart does not render correctly | Bug |
WORDSNET-14997 | Accept revisions cause a text deletion in Cell | Bug |
WORDSNET-15034 | Paragraph space after is changed after mail merge | Bug |
WORDSNET-15040 | Docx to Pdf conversion issue with Shape’s text formatting | Bug |
WORDSNET-15055 | FontSettings are not document-bound during import from HTML | Bug |
WORDSNET-15067 | STYLEREF fields in headers resolve in Error when rendering Word document with revisions to PDF | Bug |
WORDSNET-15083 | SVG is not exported in output DOC/PDF | Bug |
WORDSNET-15105 | The stroke of SVG image is lost in output PDF | Bug |
WORDSNET-15118 | Inline styles are used when styles are set to be saved separately | Bug |
WORDSNET-15139 | Html to Docx/Pdf conversion issue with SVG image | Bug |
WORDSNET-15171 | Text color is changed in DOCX to JPG conversion | Bug |
WORDSNET-15177 | Range.Replace method does not replace text in footnote | Bug |
WORDSNET-15182 | Text in DrawingML textboxes missing when converting to PDF | Bug |
WORDSNET-15184 | Paragraph’s text is rendered on previous page in output HtmlFixed/Pdf | Bug |
WORDSNET-15202 | Document.AcceptAllRevisions removes the empty paragraph that causes incorrect page layout | Bug |
WORDSNET-15208 | Pages are truncated in output HtmlFixed/PDF | Bug |
WORDSNET-15210 | API throws InvalidCastException upon loading DOCX | Bug |
WORDSNET-15213 | Date field is incorrectly formatted when FieldUpdateCultureSource.FieldCode is used | Bug |
WORDSNET-15227 | Chart’s vertical axis are in correct in output PNG | Bug |
WORDSNET-15228 | Chart’s vertical axis are rendered as decimal instead of integer | Bug |
WORDSNET-15230 | The minimum axis bound is changed in output PNG | Bug |
WORDSNET-15232 | Axis bounds and units of chart are changed in output PNG | Bug |
WORDSNET-15237 | Incorrect conversion of x-axis data of a Chart | Bug |
WORDSNET-15242 | Docx to PDF conversion issue with image rendering | Bug |
WORDSNET-15254 | Horizontal axis of chart does not render correctly | Bug |
WORDSNET-6061 | decimal tab. Table column text aligned incorrectly while doc to png/bmp format. | Bug |
WORDSNET-6126 | Background of Shape becomes black upon converting to EPUB/HTML | Bug |
WORDSNET-6538 | Shapes are misplaced when rendering to TIFF | Bug |
WORDSNET-7377 | decimal tabs. A Run of text splits into three lines in Cell when rendering to Pdf | Bug |
WORDSNET-9371 | Hebrew (RTL) characters are turned into garbage characters during rendering to PDF | Bug |
WORDSNET-9606 | A nested floating table is not rendering in Pdf | Bug |
WORDSNET-11781 | Incorrect text wrapping when a line starts with a huge space | Enhancement |
WORDSNET-14782 | Outline is incorrect upon converting VML to DML | Enhancement |
WORDSNET-15014 | Aspose.Words Objects are very verbose | Enhancement |
WORDSNET-15038 | MHTML import. Image format EMZ is not supported. | Enhancement |
WORDSNET-15052 | Simplifiy OMath when copying it into toc entry | Enhancement |
WORDSNET-15135 | Take image crop in account when render to HtmlFixed. | Enhancement |
WORDSNET-15155 | Documents rendered incorrectly | Enhancement |
WORDSNET-15200 | Obtain the correct distance between list label and content of list item | Enhancement |
WORDSNET-7252 | Backslashes and double quotes are not processed properly by the FieldTokenDecoder | Enhancement |
WORDSNET-7302 | An odd space added between spans at export to PNG | Enhancement |
WORDSNET-8436 | Rendering RTL tables to GDI/PNG is wrong | Enhancement |
WORDSNET-14880 | Exception when Saving Words document and CSS to Stream | Exception |
WORDSNET-14926 | When open .MOBI file, the Aspose.Words.FileCorruptedException occurs. | Exception |
WORDSNET-14996 | AcceptAllRevisions throws System.ArgumentException | Exception |
WORDSNET-15068 | Document.UpdateFields throws System.IndexOutOfRangeException | Exception |
WORDSNET-15079 | Document.UpdateFields throws System.ArgumentException | Exception |
WORDSNET-15160 | Document.UpdateFields throws System.InvalidOperationException | Exception |
WORDSNET-15189 | Aspose.Words.FileCorruptedException is thrown while loading DOCX | Exception |
WORDSNET-15194 | Bookmark.Text throws System.ArgumentException when it is set to empty string | Exception |
WORDSNET-15267 | Document.Save throws System.InvalidOperationException | Exception |
WORDSNET-14363 | Support TOA field | Feature |
WORDSNET-15243 | Support IMPORT field | Feature |
WORDSNET-15244 | Support INCLUDE field | Feature |
WORDSNET-15245 | Support SHAPE field | Feature |
WORDSNET-4738 | Provide an API to bind SDT to CustomXML properties. | Feature |
WORDSNET-15089 | performance. slow Document.MailMerge.Execute | Performance |
WORDSNET-13424 | Odt appears to be corrupted with 16.2.0 and Mono 2.10.8 | Regression |
WORDSNET-15114 | HtmlFixed file size is increased after conversion from DOC | Regression |
WORDSNET-15122 | Escaping problem of double quotes in latest version | Regression |
WORDSNET-15143 | Changing of BackgroundPatternColor doesn’t work. | Regression |
WORDSNET-15146 | Table border can’t be changed. | Regression |
WORDSNET-15149 | DOC to HTML conversion results a big HTML | Regression |
WORDSNET-15161 | Table borders disappear after Paragraph removal | Regression |
WORDSNET-15199 | Header content becomes visible from behind a floating Frame with shading during rendering | Regression |
Public API and Backward Incompatible Changes
This section lists public API changes that were introduced in Aspose.Words 17.5. 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 a regression and modifies existing behavior is especially important and is documented here.
Added Public Method CustomXmlPartCollection.Add(string id, string xml)
A public method is added into the CustomXmlPartCollection class to help in creation of a custom XML part by specifying its XML:
/// <summary>
/// Creates a new XML part with the specified XML and adds it to the collection.
/// </summary>
/// <param name="id">Identifier of a new custom XML part.</param>
/// <param name="xml">XML data of the part.</param>
/// <returns>Created custom XML part.</returns>
public CustomXmlPart Add(string id, string xml)
Value of the ‘xml’ parameter is encoded as UTF8 and is stored in creating XML part.
UC for creating a custom XML part by specifying its XML
Document doc = new Document();
CustomXmlPart xmlPart = doc.CustomXmlParts.Add(Guid.NewGuid().ToString("B"), "<root><text>Hello, World!</text></root>");
StructuredDocumentTag sdt = new StructuredDocumentTag(doc, SdtType.PlainText, MarkupLevel.Block);
sdt.XmlMapping.SetMapping(xmlPart, "/root[1]/text[1]", "");
doc.FirstSection.Body.AppendChild(sdt);
Implemented API to Bind StructuredDocumentTag to Node of Custom XML Part
WORDSNET-4738 has been resolved. The following public property is added into the StructuredDocumentTag class:
/// <summary>
/// Gets an object that represents the mapping of this structured document tag to XML data
/// in a custom XML part of the current document.
/// </summary>
/// <remarks>
/// You can use the <see cref="Markup.XmlMapping.SetMapping"/> method of this object to map
/// a structured document tag to XML data.
/// </remarks>
public XmlMapping XmlMapping { get; }
Public methods of the XmlMapping class:
/// <summary>
/// Specifies the information that is used to establish a mapping between the parent
/// structured document tag and an XML element stored within a custom XML data part in the document.
/// </summary>
public class XmlMapping
{
/// <summary>
/// Sets a mapping between the parent structured document tag and an XML node of a custom XML data part.
/// </summary>
/// <param name="customXmlPart">A custom XML data part to map to.</param>
/// <param name="xPath">An XPath expression to find the XML node.</param>
/// <param name="prefixMapping">XML namespace prefix mappings to evaluate the XPath.</param>
/// <returns>A flag indicating whether the parent structured document tag is successfully mapped to
/// the XML node.</returns>
public bool SetMapping(CustomXmlPart customXmlPart, string xPath, string prefixMapping);
/// <summary>
/// Deletes mapping of the parent structured document to XML data.
/// </summary>
public void Delete();
/// <summary>
/// Returns the custom XML data part to which the parent structured document tag is mapped.
/// </summary>
public CustomXmlPart CustomXmlPart { get; }
/// <summary>
/// Returns the XPath expression, which is evaluated to find the custom XML node
/// that is mapped to the parent structured document tag.
/// </summary>
public string XPath { get; }
/// <summary>
/// Returns XML namespace prefix mappings to evaluate the <see cref="XPath"/>.
/// </summary>
/// <remarks>
/// Specifies the set of prefix mappings, which shall be used to interpret the XPath expression
/// when the XPath expression is evaluated against the custom XML data parts in the document.
/// </remarks>
public string PrefixMappings { get; }
/// <summary>
/// Returns <b>true</b> if the parent structured document tag is successfully mapped to XML data.
/// </summary>
public bool IsMapped { get; }
}
UC for creation of an XML part and binding a content control to it
Document doc = new Document();
CustomXmlPart xmlPart = doc.CustomXmlParts.Add(Guid.NewGuid().ToString("B"), "<root><text>Hello, World!</text></root>");
StructuredDocumentTag sdt = new StructuredDocumentTag(doc, SdtType.PlainText, MarkupLevel.Block);
doc.FirstSection.Body.AppendChild(sdt);
sdt.XmlMapping.SetMapping(xmlPart, "/root[1]/text[1]", "");
doc.Save(fileName);
CellFormat.SetPaddings Method was Introduced.
WORDSNET-15014 (Enhancement) has been resolved. We have added a simple method allowing to set all cell paddings in one line of code.
/// <summary>
/// Sets the amount of space (in points) to add to the left/top/right/bottom of the contents of cell.
/// </summary>
public void SetPaddings(double leftPadding, double topPadding, double rightPadding, double bottomPadding)
You can use this method instead of using four properties:
// Set all cell paddings.
builder.CellFormat.SetPaddings(30, 40, 50, 60);