Aspose.Words for Java 18.11 Release Notes

Major Features

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

  • Aspose.Words for Java release jar is tested on Java 11.
  • Compatibility with GroupDocs Total License is improved.
  • GraphicsQualityOptions is better mapped to Java.
  • We did yet another step to shrink (already small) pixel difference between .NET and Java generated images, borders, etc.
  • JavaDoc for obsolette members become more clear.
  • Fixed hang with autosized tables when cell has right aligned floaters.
  • Fixed wrong visual order of text in specific cases.
  • Fixed non-breaking space widths calculation.
  • Implemented support for floating table metrics when calculating grid.
  • ROP (raster operations) emulation code was improved, resulting in a significant performance boost (up to 5 times) when rendering the corresponding metafiles.
  • Improved legacy vertical writing support in EMF rendering. Fonts with the ‘@’ prefix additionally rotate the Japanese glyphs.
  • Improved calculation of the shape boundaries, more accurately mimicking the MS Word output.
  • Improved the rendering of DrawingML charts canvases overlay. Markers of the “nofill” series are rendered on the foreground.
  • Improved rendering of DrawingML chart axes for documents created using MS Word 2007.
  • Fixed a bug with incorrect resolution of the system “window” color when rendering of VML shapes.
  • Fixed an issue with underline/strikeout text effects in EMF/WMF rendering.
  • Fixed a document rendering issue when font with English name could not be found in the system with a different locale.
  • Fixed bug with rendering of DrawingML chart markers, if series data are not sorted in ascending order.
  • Fixed a bug causing shifts of rotated shapes in DrawingML chart while rendering.
  • Provided TxtSaveOptions.ExportHeadersFootersMode property.

Full List of Issues Covering all Changes in this Release

Key Summary Category
WORDSJAVA-1818 Encrypted ODT file cannot be opened with OOo Bug
WORDSJAVA-1857 Non-breakable space vanishes in Online API JavaDoc. Bug
WORDSJAVA-1863 Absent crop on Svg Simple Stroke Line Cap. Bug
WORDSJAVA-1876 When DOCX is saved as PDF, images are shown as red X Bug
WORDSJAVA-1896 Canvas with half-tone meshing rendered unreadable Bug
WORDSJAVA-1907 Images are distorted in generated PDF Bug
WORDSJAVA-1908 Dashes in bullets list disappear in rendered PDF Bug
WORDSJAVA-1368 Aspose.Words for Java - API reference doesn’t contain information about obsolete properties and methods Enhancement
WORDSJAVA-1918 Unsupported PNG image subformat while converting to PDF. Enhancement
WORDSJAVA-1937 SVG round and square Enhancement
WORDSJAVA-1927 Run Aspose.Words jdk16 jar under JDK 11 Feature
WORDSNET-11330 Empty pages are created after conversion from Docx to Doc Bug
WORDSNET-17496 Incorrect color of the axis if WordStyle2010 is false after converting to PDF Bug
WORDSNET-17476 Orientation of characters in pictures changes during rendering Bug
WORDSNET-17517 Color Shading issues of Drawings in generated PDF Bug
WORDSNET-17420 Font Changed after a load/save Cycle of an RTF File Bug
WORDSNET-17472 DOCX to PDF conversion issue with SAVEDATE rendering Bug
WORDSNET-17467 Combo charts with custom combination renders incorrectly Bug
WORDSNET-16661 Incorrect position of Picture in PDF Bug
WORDSNET-17447 Problem with ListNum Cross References when converting to PDF Bug
WORDSNET-17515 Image misplaced in rendered PDF Bug
WORDSNET-16792 The user shape in the chart is shifted after converting to PDF Bug
WORDSNET-17530 Aspose.Words considers TextBox shapes as Rectangles Bug
WORDSNET-17606 An evaluation mark is added to a nested document being inserted dynamically while building a report in a venture licensed mode Bug
WORDSNET-16217 FindReplaceOptions.FindWholeWordsOnly does not replace standalone word Bug
WORDSNET-16710 Some PostScript tests fail with GoldDifferenceException by circle Bug
WORDSNET-9702 Chart color is changed after using Document.AppendDocument Bug
WORDSNET-7750 A Shape in Table gets cropped when rendered to fixed page formats Bug
WORDSNET-17480 Layout looks broken when rendering barcode Bug
WORDSNET-16855 Paragraph border is lost in output ODT Bug
WORDSNET-16762 Styles.AddCopy does not copy list number style Bug
WORDSNET-16682 Shape is rendered improperly Bug
WORDSNET-16694 Shape is rendered improperly Bug
WORDSNET-16685 Shape is rendered improperly Bug
WORDSNET-17559 Some elements in charts missing when converting DOCX to PDF Bug
WORDSNET-17332 The text is rendered towards left side of page in output HtmlFixed Bug
WORDSNET-16977 RTL text has wrong order Bug
WORDSNET-16146 The output PDF document words are getting mixed up Bug
WORDSNET-8681 /arabic characters order/ RTF to XPS conversion issue with Arabic Text Bug
WORDSNET-15287 /arabic characters order/ Doc to Pdf conversion issue with Arabic text Bug
WORDSNET-8581 English words are rendering in reverse order in fixed page formats Bug
WORDSNET-7370 /strong ltr text marked as rtl/ Non-RTL text gets written backward in Pdf Bug
WORDSNET-16497 Incorrect and flipped content in the PDF rendition Bug
WORDSNET-10415 /arabic characters order/ Arabic characters are rendered in incorrect order Bug
WORDSNET-17457 Conversion failed with error Infinite loop detected Bug
WORDSNET-17583 Foreign language text inside WordArt rendered incorrectly in PDF Bug
WORDSNET-17409 Font of tab is changed after DOCX-HTML-DOCX round-trip Bug
WORDSNET-17410 Strike-through formatting is lost in output PDF Bug
WORDSNET-17541 The position of shape is changed after conversion from DOCX to PDF Bug
WORDSNET-17507 /printer metrics/ A Table Row is Pushed to next Page in PDF Bug
WORDSNET-17425 Incorrect non-breaking space width in AW pdf output Bug
WORDSNET-2553 Width of merged cells is incorrect Bug
WORDSNET-17618 Document.copyStylesFromTemplate() issues Bug
WORDSNET-17167 DOCX to HTML conversion issue with alignment of math images Enhancement
WORDSNET-16709 CustomBarcodeGenerator is not available for netstandard. Enhancement
WORDSNET-17431 Customer wants to get extensions of embedded files Enhancement
WORDSNET-17611 Update to SkiaSharp 1.60.3 Enhancement
WORDSNET-16687 TestDefect3613 Gradient fill has artifact line. Enhancement
WORDSNET-16696 TestJira13671 metafile is rendered improperly Enhancement
WORDSNET-9751 /table grid/ Docx to Pdf conversion issue with table position Enhancement
WORDSNET-17587 Document.Protect does not work with AllowOnlyFormFields protection type Enhancement
WORDSNET-17584 Rework performance tests to use the new engine Enhancement
WORDSNET-17465 License.SetLicense throws System.Xml.XmlException Exception
WORDSNET-17390 License.SetLicense throws System.Xml.XmlException Exception
WORDSNET-17461 License.SetLicense throws System.Exception Exception
WORDSNET-17412 License.SetLicense throws System.Xml.XmlException Exception
WORDSNET-17581 SetLicense throws ‘Invalid license signature’ exception Exception
WORDSNET-17529 Aspose.Words.FileCorruptedException is thrown while loading DOCX Exception
WORDSNET-17375 Aspose.Words generated DOCX is corrupted Exception
WORDSNET-17317 Document.Compare throws System.InvalidOperationException Exception
WORDSNET-17605 System.InvalidOperationException is thrown while importing sections Exception
WORDSNET-17221 Exception is thrown when loading HTML during DOCX-HTML-DOCX roundtrip Exception
WORDSNET-11546 Provide TxtSaveOptions.ExportHeadersFootersMode Property Feature
WORDSNET-17386 Removing colon between empty MERGEFIELDs Feature
WORDSNET-9498 Add Table property for ‘Allow spacing between cells’ option Feature
WORDSNET-12695 Implement mass copy of styles Feature
WORDSNET-7763 Style.Name do not override the existing style after calling Style.AddCopy method Feature
WORDSNET-17436 ExportDocumentStructure does not create tags for PDF Regression
WORDSNET-17585 Performance test failed Regression
WORDSNET-17494 Infinite loop detected when invoking UpdatePageLayout method Regression

Public API and Backward Incompatible Changes

This section lists public API changes that were introduced in Aspose.Words 18.11. 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.

Removing Colon between Empty MERGEFIELDs

WORDSNET-17386 has now been resolved.

A customer requested a feature supported by Word where you can surround a colon with two merge fields and if both fields are empty then it will also remove the colon. In fact, Aspose.Words removes a paragraph with merge fields if it becomes empty or contains only white-spaces after mail merge, which is controlled by the MailMergeCleanupOptions.RemoveEmptyParagraphs option. However, MS Word considers paragraphs with some non-white-space symbols (including colon) empty, while Aspose.Words did not prior to the fix.

We could just hard-code the new Aspose.Words behavior but did not want to introduce something that could be treated as a regression. Given that, we have added another option:

/// <summary>
/// Gets or sets a value indicating whether paragraphs with punctuation marks are considered as empty
/// and should be removed if the <see cref="MailMergeCleanupOptions.RemoveEmptyParagraphs"/> option is specified.
/// </summary>
/// <remarks>
/// The default value is <c>true</c>.
/// </remarks>
/// <remarks>
/// Here is the complete list of cleanable punctuation marks:
/// <list type="bullet">
/// <item><description>!</description></item>
/// <item><description>,</description></item>
/// <item><description>.</description></item>
/// <item><description>:</description></item>
/// <item><description>;</description></item>
/// <item><description>?</description></item>
/// <item><description>¡</description></item>
/// <item><description>¿</description></item>
/// </list>
/// </remarks>
public bool CleanupParagraphsWithPunctuationMarks
{
    get { return mCleanupParagraphsWithPunctuationMarks; }
    set { mCleanupParagraphsWithPunctuationMarks = value; }
}

The default value of the option is true which means that the behavior was changed to mimic MS Word; however, the customers who rely on the old behavior are able to revert it by setting the option to false.

The following sample demonstrates this case:

document.MailMerge.CleanupOptions = MailMergeCleanupOptions.RemoveEmptyParagraphs;
document.MailMerge.CleanupParagraphsWithPunctuationMarks = false;
document.MailMerge.Execute(new string[] {"field"}, new object[] {null});

Provide TxtSaveOptions.ExportHeadersFootersMode Property

 New public enum type was added:

// Specifies the way headers and footers are exported to plain text format.
public enum TxtExportHeadersFootersMode
{
    // No headers and footers are exported.
    None,

    // Only primary headers and footers are exported at the beginning and end of each section.
    PrimaryOnly,

    // All headers and footers are placed after all section bodies at the very end of a document.
    AllAtEnd
}

New public property was added to TxtSaveOptions class:

// Specifies the way headers and footers are exported to the plain text format.
public TxtExportHeadersFootersMode ExportHeadersFootersMode

The main advantage of new property over the old TxtSaveOptions.ExportHeadersFooters property is that it has new headers and footers export mode: ‘AllAtEnd’. In this mode Aspose.Words acts the way similar to MS Word: all headers and footers are placed after all section bodies at the very end of a document.

UC

Document doc = new Document ("inputFileName");
TxtSaveOptions options = new TxtSaveOptions();
options.SaveFormat = SaveFormat.Text;

// All headers and footers are placed at the very end of the output document.
options.ExportHeadersFootersMode = TxtExportHeadersFootersMode.AllAtEnd;
doc.Save("outputFileNameA.txt", options);

// Only primary headers and footers are exported at the beginning and end of each section.
options.ExportHeadersFootersMode = TxtExportHeadersFootersMode.PrimaryOnly;
doc.Save("outputFileNameB.txt", options);

// No headers and footers are exported.
options.ExportHeadersFootersMode = TxtExportHeadersFootersMode.None;
doc.Save("outputFileNameC.txt", options);

Obsolete Property ShowRevisionBalloons was Removed from RevisionOptions Class

Obsolete property ShowRevisionBalloons was removed from RevisionOptions class. Please use ShowInBalloons property instead.

Obsolete Property IsShowParagraphMarks was Removed from LayoutOptions Class

Obsolete property IsShowParagraphMarks was removed from LayoutOptions class. Please use ShowParagraphMarks property instead.

Obsolete Property IsShowHiddenText was Removed from LayoutOptions Class

Obsolete property IsShowHiddenText was removed from LayoutOptions class. Please use ShowHiddenText property instead.