Aspose.Words for Java 18.9 Release Notes
Major Features
There are 85 improvements and fixes in this regular monthly release. The most notable are:
- Animated GIF is fully supported now
- MANIFEST.MF updated to support new OSGI versions
- TIFF colors accuracy improved
- Java10&11 compatibility improved: reflection for safe using of optional external libraries is removed.
- Bookmarks are allowed on block, cell, row level
- Added load option to treat Shapes with math XML as Shapes in the model
- Provided option to choose between Old and New Mail Merge behaviors
- Improved PDF encryption in case when owner password is not specified
- Metafile rendering improved: fixed drawing records processing when path bracket is opened, fixed processing of EMR_SETBKMODE record when incorrect values specified
- Improved output image quality when rendering metafiles with raster operations set
- Fixed handling of glyphs without outlines when parsing glyph data while rendering
- Fixed a bug with a glow effect, if the specified glow size is less than 10
- Fixed several problems in DrawingML Charts rendering: incorrect default axis color, bug with the date format for axis values, bug with rendering of the trend line with unsorted x-values
- Improved rendering of the mathematical element “Apostrophe” of the MathML object
- Improved justification of Asian texts
- Improved rendering of revisions in balloons
- Improved text placement around floating shapes
- Fixed issue with paragraph spacing in footnotes
- Fixed issue with line wrapping when it has single glyph wider than the line followed by page break
- Fixed issue with table row height calculation when cells in vertical merge have horizontal borders
Full List of Issues Covering all Changes in this Release
Key | Summary | Category |
---|---|---|
WORDSJAVA-1578 | Right-aligned tab-stops conversion issue in resultant MHTML | Bug |
WORDSJAVA-1837 | Image sometimes do not render in exported HTML | Bug |
WORDSJAVA-1840 | Math symbols are being read incorrectly | Bug |
WORDSJAVA-1847 | Animated GIF rendered to PDF with a bottom gray band | Bug |
WORDSJAVA-1848 | ReportingEngine.buildReport throws “Multiple decimal separators in pattern “yyyy.MM.dd” | Bug |
WORDSJAVA-1855 | DOCX to PDF conversion issue with image’s color | Bug |
WORDSJAVA-1859 | RtfLoadOptions.setRecognizeUtf8Text() does not work | Bug |
WORDSJAVA-1864 | Wrong export declaration in MANIFEST.MF | Bug |
WORDSJAVA-1844 | Update Manifest generation according to changed packages and new OSGI versions | Enhancement |
WORDSJAVA-1860 | Ampersand changes alphabetical sort order for INDEX field | Enhancement |
WORDSJAVA-1697 | Debugging assert throws on production code | Exception |
WORDSJAVA-1886 | Transparent background become visible | Regression |
WORDSNET-11845 | Docx to Png/Pdf conversion issue with table’s autofit behavior | Bug |
WORDSNET-12887 | Tables misaligned in rendered PDF | Bug |
WORDSNET-13392 | Text at the end of page flows to the next page when saving Word as PDF | Bug |
WORDSNET-16463 | Shape’s text and color is lost in output PDF/DOC | Bug |
WORDSNET-16477 | DOCX to PDF conversion issue with table rendering | Bug |
WORDSNET-16478 | Extra lines are rendered after conversion from DOCX to PDF | Bug |
WORDSNET-16535 | Size of picture changes after re-saving DOC | Bug |
WORDSNET-16560 | Format revisions and comments are not rendered correctly in PDF | Bug |
WORDSNET-16574 | Shape’s position is changed in output PDF | Bug |
WORDSNET-16751 | Empty pages are rendered in output PDF | Bug |
WORDSNET-16791 | MACROBUTTON HTMLDirect is not rendered in output PDF | Bug |
WORDSNET-16959 | Paragraph floats towards left page margin in PDF | Bug |
WORDSNET-16990 | DOCX to PDF conversion issue with shape’s position | Bug |
WORDSNET-17004 | Trendlines in graphs on word documents not displaying | Bug |
WORDSNET-17022 | Formula breaks when document is resaved | Bug |
WORDSNET-17044 | MailMergeCleanupOptions.RemoveUnusedFields removes REF field from the footer | Bug |
WORDSNET-17121 | Asian text is justified incorrectly | Bug |
WORDSNET-17135 | The EQ field does not render in output Jpeg when Document.GetPageInfo is called | Bug |
WORDSNET-17140 | Image’s content is lost after using Document.AppendDocument | Bug |
WORDSNET-17177 | Hidden bookmarks are not correct after re-saving DOCX | Bug |
WORDSNET-17183 | The EQ field does not render in output Jpeg | Bug |
WORDSNET-17186 | Font name and size is changed after appending one document into another | Bug |
WORDSNET-17206 | Vertical spacing not preserved in PDF | Bug |
WORDSNET-17225 | Open Save a DOCX causes Tabs to become Underlined | Bug |
WORDSNET-17226 | Endnotes becoming corrupted when saving DOC to DOCX | Bug |
WORDSNET-17227 | Endnotes becoming corrupted when saving DOC to DOCX | Bug |
WORDSNET-17228 | Endnotes becoming corrupted when saving DOC to DOCX | Bug |
WORDSNET-17229 | Endnotes Footnotes becoming corrupted when saving DOC | Bug |
WORDSNET-17249 | TOC isn’t rendered properly in PDF output | Bug |
WORDSNET-17250 | Fopc Strict can be written, but reading fails | Bug |
WORDSNET-17258 | Chart axis is wrong in Aspose.Words generated .pdf | Bug |
WORDSNET-17265 | An error raises while using ComHelper class. | Bug |
WORDSNET-17280 | Picture does not render correctly | Bug |
WORDSNET-17282 | Picture does not render correctly | Bug |
WORDSNET-17293 | Equation is not rendered correctly in PDF | Bug |
WORDSNET-17295 | DOCX to PDF conversion issue with cell borders | Bug |
WORDSNET-17334 | DOCX to PDF conversion issue with textbox shape glow | Bug |
WORDSNET-17342 | Incorrect color of the axis after converting to PDF | Bug |
WORDSNET-17343 | Color shade inside the shape is missing in output PDF | Bug |
WORDSNET-17344 | Irregular shapes, Missing colors, Incomplete shapes in output PDF | Bug |
WORDSNET-17345 | Fill color in shapes is missing in output PDF | Bug |
WORDSNET-17347 | Irregular shapes, Missing colors, Incomplete shapes in output PDF | Bug |
WORDSNET-6980 | Bookmark position is not preserved during open/save | Bug |
WORDSNET-7809 | Table in Shape overlaps the other Page content in fixed page formats | Bug |
WORDSNET-13707 | Table Bookmark gets deleted when importing Table | Enhancement |
WORDSNET-15693 | Incorrect wrapping around a table because of WrapGap issue. | Enhancement |
WORDSNET-17175 | Create tests for API 18.06 | Enhancement |
WORDSNET-17286 | AW doesn’t move text to the new line for tables with thick borders | Enhancement |
WORDSNET-17316 | Aspose.Words sets owner password when only user password is specified during conversion to PDF | Enhancement |
WORDSNET-17318 | Add unit tests code coverage analysis to development process | Enhancement |
WORDSNET-721 | Improve table bookmarks | Enhancement |
WORDSNET-8755 | Improve through wrapping of text boxes | Enhancement |
WORDSNET-14353 | Range.Bookmarks throws System.ArgumentException | Exception |
WORDSNET-16621 | LINQ Reporting Engine - OutOfMemory Exception While Saving Document | Exception |
WORDSNET-16745 | Save method throws NullReferenceException after doing MailMerge | Exception |
WORDSNET-16749 | Unable to load DLL ‘libSkiaSharp’ exception is thrown while converting DOCX to PDF | Exception |
WORDSNET-17079 | SetLicense throws: An error occurred while parsing EntityName | Exception |
WORDSNET-17141 | An exception raises when using long path names | Exception |
WORDSNET-17237 | System.IndexOutOfRangeException is thrown when SvgSaveOptions.TextOutputMode is UsePlacedGlyphs | Exception |
WORDSNET-17263 | Aspose.Words.FileCorruptedException is thrown while importing RTF | Exception |
WORDSNET-17301 | InvalidOperationException: Unsupported encryption parameters occurs when loading a DOC | Exception |
WORDSNET-17302 | InvalidOperationException: Unsupported encryption parameters occurs when loading a DOC | Exception |
WORDSNET-17303 | InvalidOperationException: Unsupported encryption parameters occurs when loading a DOC | Exception |
WORDSNET-17335 | “Not expected other boolex values here” error occurs upon invoking ListFormat.ListLevel.Font.Italic | Exception |
WORDSNET-16429 | Aspose.Words conversion throw error in Docker | Feature |
WORDSNET-16540 | Add load option to treat Shapes with math XML as Shapes in the model | Feature |
WORDSNET-16962 | Support insertion of Bookmarks at Block, Row and Cell levels | Feature |
WORDSNET-17190 | Investigate Aspose.Words for .NET containerization | Feature |
WORDSNET-17313 | Provide option to choose between Old and New Mail Merge behaviors | Feature |
WORDSNET-17127 | Significant decrease of performance getting bookmark | Performance |
WORDSNET-16637 | Bookmarks are not part of the BookmarkCollection | Regression |
WORDSNET-17300 | Bookmark.Remove very slow in the Aspose.Version 18.8 | Regression |
WORDSNET-17305 | Bookmark Performance issue in Aspose.Words 18.6 version | Regression |
Public API and Backward Incompatible Changes
This section lists public API changes that were introduced in Aspose.Words 18.9. 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.
Bookmarks are Allowed on Block, Cell, Row Levels
WORDSNET-721 has now been resolved.
The bookmark nodes are allowed to be placed on the block, cell and row levels now. In the previous versions bookmarks were moved into the next nearest paragraph on document loading. So, now on reading/saving DOCX, DOC, WML documents, bookmarks preserve their positions in document node structure. The following public properties have been added into the LoadOptions class to control the mentioned behavior.
/// <summary>
/// Gets or sets a flag indicating whether cross structure annotation nodes can be added at block/cell/row level (<see cref="Node.NodeLevel"/>).
/// </summary>
/// <remarks>
/// Currently only bookmarks are affected by this option.
/// </remarks>
public boolean AnnotationsAtBlockLevel { get; set; }
/// <summary>
/// Gets or sets a default value for the <see cref="AnnotationsAtBlockLevel"/> property.
/// </summary>
/// <remarks>
/// Allows defining necessary behaviour when an instance of <see cref="LoadOptions"/> is not specified on opening a document.
/// </remarks>
public static boolean AnnotationsAtBlockLevelAsDefault { get; set; }
Now code that uses Aspose.Words should consider that not only composite nodes may appear on the block/cell/row level, for example, as children of the Body, Table, Row, Cell nodes. Setting the AnnotationsAtBlockLevelAsDefault property to false allows temporarily prevent possible issues with the existing code. But please note that the property may become obsolete in the further versions of the software.
UC to open a document in the inline-bookmarks mode
LoadOptions options = new LoadOptions();
options.setAnnotationsAtBlockLevel(false);
Document doc = new Document("Document1.docx", options);
UC to set the “old” mode as default
LoadOptions.setAnnotationsAtBlockLevelAsDefault(false);
Added LoadOption to Treat Shapes with Math XML as Shapes in Model
WORDSNET-16540 has now been resolved.
The “ConvertShapeToOfficeMath” property has been added to “LoadOptions” class.
/// <summary>
/// Gets or sets whether to convert shapes with EquationXML to Office Math objects.
/// </summary>
public boolean ConvertShapeToOfficeMath
{
get { return mConvertShapeToOfficeMath; }
set { mConvertShapeToOfficeMath = value; }
}
Default value corresponds to MS Word behaviour i.e. shapes with equation XML are not converted to Office math objects.
Use case:
LoadOptions lo = new LoadOptions();
lo.setConvertShapeToOfficeMath(true);
// Specify load option to use previous default behaviour i.e. convert math shapes to office math ojects on loading stage.
Document doc = new Document("SrcFile.docx", lo);
Option to Choose Between Old and New Mail Merge Behaviors Added
WORDSNET-17313 has now been resolved.
We had a customer (issue: WORDSNET-17259) who was not happy with the current Aspose.Words behavior related to the IF fields evaluation during mail merge. They were relying on the fact that the merge fields and regions located in the “false” argument of the IF field (“false” meaning the argument that does not match the condition) were merged in the past along with the “true” argument. This behavior was changed over time to mimic MS Word and at the moment it matches MS Word (the “false” argument is not merged); however the customer considered it a regression and wanted the old behavior back. To satisfy them, we decided to introduce an option controlling the behavior.
/// <summary>
/// Gets or sets a value indicating whether merge fields and merge regions are merged regardless of the parent IF field's condition.
/// </summary>
/// <remarks>
/// The default value is <b>false</b>.
/// </remarks>
public boolean UnconditionalMergeFieldsAndRegions
Use case:
document.getMailMerge().setUnconditionalMergeFieldsAndRegions(true);
document.getMailMerge().execute(dataSource);
Improved PDF encryption in Case when Owner Password is not Specified
WORDSNET-17316 has now been resolved.
Previously Aspose.Words created random owner password in the produced PDF document when PdfEncryptionDetails.OwnerPassword was not set by the user. This behavior was described in XML comments:
If you do not specify an owner password, then the system will generate a random password when generating the PDF document.
Now Aspose.Words properly sets the empty owner password when saving to PDF.