GroupDocs.Viewer for Java 23.4 Release Notes

There are 30+ features, enhancements, and bug fixes in this release.

Full list of changes in this release

KeyCategorySummary
VIEWERNET‑3748FeatureImplement support for multi-paged Dicom files
VIEWERJAVA‑3118FeatureImplement the way to load document into Viewer using URL object
VIEWERJAVA‑3153FeatureImplement options to control archive content when extracting it
VIEWERNET‑3814EnhancementDSmart detect whether text file is csv or tsv
VIEWERNET‑2600FixException: Could not create the bitmap with the specified parameters
VIEWERNET‑2635FixException: Could not create the bitmap with the specified parameters
VIEWERNET‑3015FixMobi file detected as damaged
VIEWERNET‑3693Fix“Destination array was not long enough.” exception when rendering TIF file
VIEWERNET‑3720Fix“Object reference not set to an instance of an object.” exception when rendering specific CMX file
VIEWERNET‑3792FixCannot view EPS - The given key ‘Wingdings’ was not present in the dictionary.
VIEWERNET‑3807FixTSV/CSV files are not rendered
VIEWERNET‑3813Fix“Input string was not in a correct format.” exception when rendering XLS file
VIEWERNET‑3815Fix“File type is not supported.” exception when rendering XLS file
VIEWERNET‑3820Fix“Could not load file. File is corrupted or damaged.” exception when rendering ODT file
VIEWERNET‑3874Fix“Could not load file. File is corrupted or damaged.” exception when rendering ODT file
VIEWERNET‑3907FixImprove image quality when converting to image and downscale
VIEWERNET‑3505Fix“Specified color model ‘Invalid’ is not supported.” exception when rendering CMX file
VIEWERNET‑3416Fix“Could not load file. File is corrupted or damaged.” exception when rendering DCM file
VIEWERNET‑3671FixSpecific DWF file rendered incorrectly.
VIEWERNET‑3849Fix“Object reference not set to an instance of an object.” exception when rendering ODS file
VIEWERNET‑3876Fix“Could not load file. File is corrupted or damaged.” exception when rendering PLT file
VIEWERNET‑3911FixViewer converting Excel to HTML with problems (cell overlay bug)
VIEWERNET‑3950FixException when converting particular file dwg file to PNG
VIEWERNET‑3951FixDwfx to Pdf produce empty result
VIEWERNET‑3952FixViewer font issue when rendering DOCX to PDF
VIEWERNET‑3973FixCharacters written on objects such as shapes and text boxes are garbled
VIEWERNET‑3919FixGroupDocs.Viewer doesn’t render the page when it’s a full page image in a PDF
VIEWERNET‑3969Fix“Output space is undefined” when rendering TEX files from stream
VIEWERNET‑3990FixOutput page size is 55 mb when rendering PPTX to HTML
VIEWERNET‑4000FixSaving a particular pdf document to image by page produces distored images
VIEWERNET‑4021FixSupport setting margins for Word documents
VIEWERNET‑4024Fix“Object reference not set to an instance of an object.” exception when open PS document
VIEWERJAVA‑3108FixViewer converts IFC document to empty HTML file
VIEWERJAVA‑3112FixFreezing when opening big zip files
VIEWERJAVA‑3113FixException is throws when opening file 7z file
VIEWERJAVA‑3154FixCan’t open ZIP archive when it contains characters from specific charset
VIEWERJAVA‑3156FixFileLogger ignores arguments which must be embedded into message

Public API and backward incompatible changes

com.groupdocs.viewer.options.WordProcessingOptions class

Added the boolean EnableOpenTypeFeatures property. Set it to true to enable kerning and other OpenType features when rendering Arabic, Hebrew, Indian, Latin-based, or Cyrillic-based scripts.

/**
 * This option enables kerning and other OpenType features when rendering Arabic, Hebrew, Indian, Latin-based, or Cyrillic-based scripts.
 */
public boolean isEnableOpenTypeFeatures();

/**
 * This option enables kerning and other OpenType features when rendering Arabic, Hebrew, Indian, Latin-based, or Cyrillic-based scripts.
 */
public void setEnableOpenTypeFeatures(boolean enableOpenTypeFeatures);

Within the new feature VIEWERNET-4021 - Support setting margins for Word documents we have changed the file type from float to Float in com.groupdocs.viewer.options.WordProcessingOptions. From this version, you can set the margins of the Word documents in the same way as using Page Setup in Microsoft Word.

/**
 * Left page margin (for HTML rendering only)
 */
public Float getLeftMargin();

/**
 * Left page margin (for HTML rendering only)
 */
public void setLeftMargin(Float leftMargin);

/**
 * Right page margin (for HTML rendering only)
 */
public Float getRightMargin();

/**
 * Right page margin (for HTML rendering only)
 */
public void setRightMargin(Float rightMargin);

/**
 * Top page margin (for HTML rendering only)
 */
public Float getTopMargin();

/**
 * Top page margin (for HTML rendering only)
 */
public void setTopMargin(Float topMargin);
/**
 * Bottom page margin (for HTML rendering only)
 */
public Float getBottomMargin();

/**
 * Bottom page margin (for HTML rendering only)
 */
public void setBottomMargin(Float bottomMargin);

com.groupdocs.viewer.Viewer and com.groupdocs.viewer.options.LoadOptions classes

Within the new feature VIEWERJAVA-3118 - Implement the way to load document into Viewer using URL object we have added new constructors. Also, we have added new properties to the com.groupdocs.viewer.options.LoadOptions class to configure timeouts.

com.groupdocs.viewer.Viewer


/**
 * <p>
 * Initializes new instance of {@link Viewer} class.
 * </p>
 *
 * @param url A url to a file that should be loaded into Viewer.
 * @throws IllegalArgumentException Thrown when {@code url} is null.
 */
public Viewer(URL url);

/**
 * <p>
 * Initializes new instance of {@link Viewer} class.
 * </p>
 *
 * @param url         A url to a file that should be loaded into Viewer.
 * @param loadOptions The document load options.
 * @throws IllegalArgumentException Thrown when {@code url} is null.
 * @throws IllegalArgumentException Thrown when {@code loadOptions} is null.
 */
public Viewer(URL url, LoadOptions loadOptions);

/**
 * <p>
 * Initializes new instance of {@link Viewer} class.
 * </p>
 *
 * @param url      A url to a file that should be loaded into Viewer.
 * @param settings The Viewer settings.
 * @throws IllegalArgumentException Thrown when {@code url} is null.
 * @throws IllegalArgumentException Thrown when {@code settings} is null.
 */
public Viewer(URL url, ViewerSettings settings);

/**
 * <p>
 * Initializes new instance of {@link Viewer} class.
 * </p>
 *
 * @param url         A url to a file that should be loaded into Viewer.
 * @param loadOptions The document load options.
 * @param settings    The Viewer settings.
 * @throws IllegalArgumentException Thrown when {@code url} is null.
 * @throws IllegalArgumentException Thrown when {@code settings} is null.
 */
public Viewer(URL url, LoadOptions loadOptions, ViewerSettings settings);

com.groupdocs.viewer.options.LoadOptions

/**
 * Connect timeout to create {@link com.groupdocs.viewer.Viewer} using {@link java.net.URL} to load document, default value is 5 seconds
 *
 * @return connect timeout
 */
public int getUrlConnectTimeout();

/**
 * Connect timeout to create {@link com.groupdocs.viewer.Viewer} using {@link java.net.URL} to load document, default value is 5 seconds
 *
 * @param urlConnectTimeout connect timeout
 */
public void setUrlConnectTimeout(int urlConnectTimeout);

/**
 * Read timeout to create {@link com.groupdocs.viewer.Viewer} using {@link java.net.URL} to load document, default value is 30 seconds
 *
 * @return read timeout
 */
public int getUrlReadTimeout();

/**
 * Read timeout to create {@link com.groupdocs.viewer.Viewer} using {@link java.net.URL} to load document, default value is 30 seconds
 *
 * @param urlReadTimeout read timeout
 */
public void setUrlReadTimeout(int urlReadTimeout);

com.groupdocs.viewer.options.LoadOptions and com.groupdocs.viewer.options.ArchiveSecurityOptions classes

Within the new feature VIEWERJAVA-3153 - Implement options to control archive content when extracting it we have added the com.groupdocs.viewer.options.ArchiveSecurityOptions and com.groupdocs.viewer.exception.ArchiveSecurityException classes. Also, we have added a new property to LoadOptions to set up ArchiveSecurityOptions.

com.groupdocs.viewer.options.LoadOptions

/**
 * <p>
 * Security options to control the process of extracting archives. Not each archive type supports all options.
 * </p>
 *
 * @return The options object to configure the process of extracting archives.
 */
public ArchiveSecurityOptions getArchiveSecurityOptions();

/**
 * <p>
 * Security options to control the process of extracting archives. Not each archive type supports all options.
 * </p>
 *
 * @param archiveSecurityOptions The options object to configure the process of extracting archives.
 */
public void setArchiveSecurityOptions(ArchiveSecurityOptions archiveSecurityOptions);

com.groupdocs.viewer.options.ArchiveSecurityOptions classes

/**
 * <p>
 * Archive entry name length can not be more than specified in this option. Default value is 255.
 * </p>
 *
 * @return Maximum archive entry name length
 */
public int getMaxAllowedEntryNameLength();

/**
 * <p>
 * Archive entry name length can not be more than specified in this option. Default value is 255.
 * </p>
 *
 * @param maxAllowedEntryNameLength Maximum archive entry name length.
 */
public void setMaxAllowedEntryNameLength(int maxAllowedEntryNameLength);

/**
 * <p>
 * Archive entry size can not be more than specified in this option. Default value is 10Gb (10737418240L).
 * </p>
 *
 * @return Maximum archive entry size.
 */
public long getMaxAllowedEntrySize();

/**
 * <p>
 * Archive entry size can not be more than specified in this option. Default value is 10Gb (10737418240L).
 * </p>
 *
 * @param maxAllowedEntrySize Maximum archive entry size
 */
public void setMaxAllowedEntrySize(long maxAllowedEntrySize);

/**
 * <p>
 * Archive that contains more entries, than specified in this option can not be extracted. Default value is 1000.
 * </p>
 *
 * @return Maximum count of entries in an archive.
 */
public long getMaxAllowedEntriesCount();

/**
 * <p>
 * Archive that contains more entries, than specified in this option can not be extracted. Default value is 1000.
 * </p>
 *
 * @param maxAllowedEntriesCount Maximum count of entries in an archive.
 */
public void setMaxAllowedEntriesCount(long maxAllowedEntriesCount);

/**
 * <p>
 * Archive entries which compression ratio is more, than specified in this option can not be extracted. Default value is 100.
 * </p>
 *
 * @return Maximum allowed entries compression ratio.
 */
public double getMaxAllowedEntryCompressionRatio();

/**
 * <p>
 * Archive entries which compression ratio is more, than specified in this option can not be extracted. Default value is 100.
 * </p>
 *
 * @param maxAllowedEntryCompressionRatio Maximum allowed entries compression ratio.
 */
public void setMaxAllowedEntryCompressionRatio(double maxAllowedEntryCompressionRatio);

com.groupdocs.viewer.FileType

Renamed the following constants of the FileType enumeration:

Old nameNew name
SevenZipSEVEN_ZIP

com.groupdocs.viewer.options.Resolution

Renamed the following constants of the Resolution enumeration:

Old nameNew name
DocumentResolutionDOCUMENT_RESOLUTION
Dpi150DPI_150
Dpi220DPI_220
Dpi330DPI_330
Dpi72DPI_72
Dpi96DPI_96