We are happy to announce the release of Spire.Barcode for Java 5.2.0. In this version, two issues that occurred while scanning an image have been successfully fixed. Details are listed below.

Here is a list of changes made in this release

Category ID Description
Bug SPIREBARCODE-273 Fixed the issue where the application threw a "java.lang.OutOfMemoryError" when scanning an image.
Bug SPIREBARCODE-276 Fixed the issue of incorrect result data when scanning an image.
Click the link to download Spire.Barcode for Java 5.2.0:
Tuesday, 30 September 2025 11:10

Spire.Office 10.9.0 is released

We are excited to announce the release of Spire.Office 10.9.0. In this version, Spire.Doc exposes core interfaces for fine-grained document styling control; Spire.XLS supports creating and modifying Equations; Spire.Presentation fixes an issue where documents failed to open; Spire.PDF improves OFD to PDF conversion; Spire.DocViewer adjusts its security-related dependencies; Spire.PDFViewer adds a platform-agnostic .NET 7.0 version; Spire.Barcode fixes a font issue. Besides, a lot of known issues are fixed successfully in this version. More details are listed below.

In this version, the most recent versions of Spire.Doc, Spire.PDF, Spire.XLS, Spire.Presentation, Spire.Barcode, Spire.DocViewer, and Spire.PDFViewer are included.

DLL Versions:

  • Spire.Doc.dll v13.9.10
  • Spire.PDF.dll v11.9.17
  • Spire.XLS.dll v15.9.7
  • Spire.Presentation.dll v10.9.3
  • Spire.Barcode.dll v7.4.1
  • Spire.Email.dll v6.6.3
  • Spire.DocViewer.Forms.dll v8.9.4
  • Spire.PDFViewer.Asp.dll v8.2.1
  • Spire.PDFViewer.Forms.dll v8.2.1
  • Spire.Spreadsheet.dll v7.5.2
  • Spire.OfficeViewer.Forms.dll v8.8.0
  • Spire.DataExport.dll 4.9.0
  • Spire.DataExport.ResourceMgr.dll v2.1.0
Click the link to get the version Spire.Office 10.9.0:
More information of Spire.Office new release or hotfix:

Here is a list of changes made in this release

Spire.Doc

Category ID Description
New feature - Exposes core style interfaces ICharacterStyle, IListStyle, and ITableStyle to enable fine-grained document styling control.
New feature SPIREDOC-7186 SPIREDOC-7365 Removes CharacterFormat from IStyle, now implemented in CharacterStyle, ParagraphStyle, and TableStyle.
IStyle style = document.Styles.FindByName("Normal");
if (style != null && style is ICharacterStyle)
{
    ICharacterStyle cStyle = style as ICharacterStyle;
    cStyle.CharacterFormat.FontName = "cambria";
    cStyle.CharacterFormat.FontSize = 14;
    cStyle.CharacterFormat.Bold = true;
    cStyle.CharacterFormat.TextColor = Color.FromArgb(42, 123, 136);
}
New feature SPIREDOC-2945 SPIREDOC-4871 Adds the IStyle.RemoveSelf() method to remove a style from the document.
string pStyleName = "testStyle";
Document document = new Document();
ParagraphStyle pStyle = (ParagraphStyle)document.Styles.Add(StyleType.ParagraphStyle, pStyleName);
pStyle.CharacterFormat.FontName = "Calibri";
pStyle.CharacterFormat.FontSize = 16;
pStyle.CharacterFormat.Bold = true;
pStyle.CharacterFormat.TextColor = Color.DarkRed;
Section section = document.AddSection();
Paragraph para = section.AddParagraph();
para.ApplyStyle(pStyle);
para.AppendText("Hello world!");
Style firstParaStyle = document.FirstSection.Body.FirstParagraph.Format.Style;
document.SaveToFile(outputDocxFile1, FileFormat.Docx);
document.Styles[pStyleName].RemoveSelf();
document.SaveToFile(outputDocxFile2, FileFormat.Docx);
New feature - Enables conditional table formatting via TableConditionalStyle, TableConditionalStyleCollection, and TableConditionalStyleType to style odd/even rows and columns.
Document doc = new Document();
Section section = doc.AddSection();
Table table = section.AddTable();
table.ResetCells(15, 4);
for (int i = 0; i < 15; i++)
{
    TableRow row = table.Rows[i];
    for (int j = 0; j < 4; j++)
    {
        TableCell cell = row.Cells[j];
        cell.AddParagraph().AppendText(string.Format("{0} column.", (j % 2 == 0 ? "Even" : "Odd")));
        cell.AddParagraph().AppendText(string.Format("Row banding {0}", (i % 3 == 0 ? "start" : "continuation")));
    }
}

TableStyle tableStyle = (TableStyle)doc.Styles.Add(StyleType.TableStyle, "TestTableStyle1");
tableStyle.Borders.Color = Color.Black;
tableStyle.Borders.BorderType = BorderStyle.Double;

tableStyle.RowStripe = 3;
tableStyle.ConditionalStyles[TableConditionalStyleType.OddRowStripe].Shading.BackgroundPatternColor = Color.LightBlue;
tableStyle.ConditionalStyles[TableConditionalStyleType.EvenRowStripe].Shading.BackgroundPatternColor = Color.LightCyan;

tableStyle.ColumnStripe = 1;
tableStyle.ConditionalStyles[TableConditionalStyleType.EvenColumnStripe].Shading.BackgroundPatternColor = Color.LightPink;

table.ApplyStyle(tableStyle);

table.Format.StyleOptions = table.Format.StyleOptions | TableStyleOptions.ColumnStripe;

doc.SaveToFile(outputDocxFile1, FileFormat.Docx); 
New feature - Obsoletes the Table.TableStyleName and replaces it with Table.Format.StyleName. Adds Table.Format.Style and Table.ApplyStyle(ITableStyle) for applying styles to tables.
New feature SPIREDOC-3647 Exposes Style, StyleOptions, and StyleName properties in TableFormat, with TableStyleOptions enum support.
Document doc = new Document();
Section section = doc.AddSection();

TableStyle tableStyle = (TableStyle)doc.Styles.Add(StyleType.TableStyle, "TestTableStyle1");
tableStyle.HorizontalAlignment = RowAlignment.Center;
tableStyle.Borders.Color = Color.Blue;
tableStyle.Borders.BorderType = BorderStyle.Single;

Table table = section.AddTable();
table.ResetCells(1, 1);
table.Rows[0].Cells[0].AddParagraph().AppendText("Aligned to the center of the page");
table.PreferredWidth = PreferredWidth.FromPoints(300);

table.ApplyStyle(tableStyle);

section.AddParagraph().AppendText(" ");

tableStyle = (TableStyle)doc.Styles.Add(StyleType.TableStyle, "TestTableStyle2");
tableStyle.LeftIndent = 55;
tableStyle.Borders.Color = Color.Green;
tableStyle.Borders.BorderType = BorderStyle.Single;

table = section.AddTable();
table.ResetCells(1, 1);
table.Rows[0].Cells[0].AddParagraph().AppendText("Aligned according to left indent");
table.PreferredWidth = PreferredWidth.FromPoints(300);

table.Format.Style = tableStyle;

doc.SaveToFile(outputDocxFile1, FileFormat.Docx); 
New feature - Adds Document.AddStyle(DefaultTableStyle) method to apply built-in table styles.
Document doc = new Document();
Section section = doc.AddSection();
Table table = section.AddTable();
table.ResetCells(15, 4);
for (int i = 0; i < 15; i++)
{
    TableRow row = table.Rows[i];
    for (int j = 0; j < 4; j++)
    {
        TableCell cell = row.Cells[j];
        cell.AddParagraph().AppendText(string.Format("{0} column.", (j % 2 == 0 ? "Even" : "Odd")));
        cell.AddParagraph().AppendText(string.Format("Row banding {0}", (i % 2 == 0 ? "Even" : "Odd")));
    }
}

TableStyle tableStyle = doc.AddStyle(DefaultTableStyle.LightListAccent3);
table.ApplyStyle(tableStyle);
doc.SaveToFile(outputDocxFile1, FileFormat.Docx);
New feature - Adds public classes PdfDigitalSignatureHashAlgorithm, PdfDigitalSignatureInfo, and PdfDigitalSignatureTimestampConfiguration to enable adding digital signatures and timestamps when saving PDF documents.
Document sDoc = new Document();
sDoc.LoadFromFile(inputFile);
ToPdfParameterList toPdfParameter = new ToPdfParameterList();
toPdfParameter.DigitalSignatureInfo = new PdfDigitalSignatureInfo(pfxInputFile, pfxPassword, "Test signing", "Spire Doc"); 
toPdfParameter.DigitalSignatureInfo.HashAlgorithm = PdfDigitalSignatureHashAlgorithm.RipeMD160;
toPdfParameter.DigitalSignatureInfo.SignatureDate = nowDateTime;
toPdfParameter.DigitalSignatureInfo.TimestampConfiguration = new PdfDigitalSignatureTimestampConfiguration("https://freetsa.org/tsr", "bill", "Password");
sDoc.SaveToFile(outputFile3, toPdfParameter); 
New feature SPIREDOC-11376 The Bookmark object now exposes FirstColumn and LastColumn properties, supporting retrieval of the column where a bookmark starts and where it ends.
int firstColumn = doc.Bookmarks["t_insert"].FirstColumn;
int lastColumn = doc.Bookmarks["t_insert"].LastColumn;
New feature SPIREDOC-11445 Adds the SearchOptions class, supporting the option to ignore or include OfficeMath formula text during text replacement.
SearchOptions op = new SearchOptions();
op.IgnoreOfficeMath = false;
doc.Replace("ab","new", op);
New feature SPIREDOC-11452 Adds the PageLayout property to support setting page layout when converting to PDF. The enumeration types are as follows: Default: Does not write a value; displayed according to the PDF reader's default view. SinglePage: Single page view. OneColumn: Continuous single-page view. TwoColumnLeft: Continuous two-page view, odd-numbered pages on the left. TwoColumnRight: Continuous two-page view, odd-numbered pages on the right. TwoPageLeft: Two-page view, odd-numbered pages on the left. TwoPageRight: Two-page view, odd-numbered pages on the right.
Document doc = new Document("xx.docx");
ToPdfParameterList toPdf = new ToPdfParameterList(){ PageLayout = PdfPageLayout.TwoColumnLeft };
doc.SaveToFile("xx.pdf", toPdf);
Bug SPIREDOC-10022 Fixes incorrect parsing of LaTeX formulas.
Bug SPIREDOC-10885 Fixes inconsistent table styles when converting Word to PDF.
Bug SPIREDOC-10992 Fixes header images being obscured when converting Word to PDF.
Bug SPIREDOC-11018 Fixes incorrect text positioning when converting Word to PDF.
Bug SPIREDOC-11041 Fixes incorrect paragraph indentation when converting Word to PDF.
Bug SPIREDOC-11129 Fixes table content shifting when converting Word to PDF.
Bug SPIREDOC-11184 SPIREDOC-11391 Fixes inconsistent table styles when converting Word to PDF.
Bug SPIREDOC-11384 Fixes extra blank pages appearing when converting Word to PDF.
Bug SPIREDOC-11423 Fixes System.NullReferenceException thrown when converting Word to PDF.
Bug SPIREDOC-11438 Fixes ArgumentOutOfRangeException thrown when loading a Word document.
Bug SPIREDOC-11512 Fixes incorrect page count retrieval.

Spre.XLS

Category ID Description
Optimization SPIREXLS-5888 Optimizes the time consumption for converting Excel to PDF.
Optimization SPIREXLS-5929 Optimizes the time consumption for converting Excel to HTML.
New feature SPIREXLS-4316 Adds IXlsEquation Interface to support creating and modifying Equations.
Workbook workbook = new Workbook();
workbook.LoadFromFile("Equation_1.xlsx");
Worksheet sheet = workbook.Worksheets[0];
// Add a new equation at position (1, 1) with size 50x50, displaying fraction A/B
sheet.Equations.AddEquation(1, 1, 50, 50, "\\frac{A}{B}");
// Get the first equation in the worksheet
IXlsEquation equation = sheet.Equations[0];
// Update the equation content using LaTeX syntax
equation.UpdateByLatexText("\\text{tan}\\frac{\\alpha}{2}=\\frac{\\text{sin}\\alpha}{1+ \\text{cos}\\alpha}");
// Set the position and size of the equation
equation.Top = 19;
equation.Left = 72;
equation.Width = 100;
equation.Height = 100;
// Get the second equation in the worksheet
IXlsEquation equation1 = sheet.Equations[1];
// Get the collection of equation items (components of the formula)
IEquationItemCollection equationItems = equation1.EquationItems;
// Get the first item in the collection
IEquationItem item1 = equationItems[0];
item1.Text = "e-iceblue"; // Modify the text of the item
// Append a new LaTeX formula at the end
equationItems.AddByLatex("\\frac{n!}{r!(n-r)!} ");
// Insert a LaTeX formula at index 0
equationItems.InsertByLatex(0, "\\Delta A B C");
// Save the workbook
workbook.SaveToFile("out.xlsx");
New feature SPIREXLS-5934 Supports preserving frozen rows when converting Excel to HTML.
HTMLOptions.Default.IsSaveFreezedPanes = true;  // true to preserve freeze panes, false to discard
New feature SPIREXLS-5935 Supports the ISOMITTED function.
sheet.Range["D7"].Formula = "=LAMBDA(val,max,IF(ISOMITTED(max),val,IF(AND(val>0,val<max),\"within range\",\"out of range\")))(A1,A2)";
New feature SPIREXLS-5941 Supports the LAMBDA function.
sheet.Range["D5"].Formula = "=LAMBDA(a,b,IF(ISOMITTED(b),a*a,a*b))(A1,A2)";
Bug SPIREXLS-5856 Fixes the issue where row height was retrieved incorrectly.
Bug SPIREXLS-5904 Fixes the issue where text boxes were missing when converting Excel to PDF.
Bug SPIREXLS-5907 Fixes the issue where text alignment in text boxes was incorrect when converting Excel to PDF.
Bug SPIREXLS-5910 Fixes the issue where data was incorrect when converting Excel to PDF.
Bug SPIREXLS-5915 Fixes the issue where content was incorrect when converting Excel to PDF.
Bug SPIREXLS-5926 Fixes the issue where rendering was incorrect when converting Excel to PDF.
Bug SPIREXLS-5932 Fixes the issue where borders were incorrect when converting Excel to PDF.
Bug SPIREXLS-5940 Fixes the issue that copying a worksheet containing a Slicer to another workbook threw a "System.ArgumentOutOfRangeException" exception.
Bug SPIREXLS-5947 Enhances compatibility handling for NamedRanges that contain error values.
Bug SPIREXLS-5953 Fixes the issue where chart formatting was incorrect when converting Excel to images.

Spire.Presentation

Category ID Description
Bug SPIREPPT-3008 Fixed an issue where documents failed to open when using netstandard libraries on .NET 9.0.
Bug SPIREPPT-2976 Fixes the issue of accidentally creating a new slide when inserting an SVG into a specified shape in a multi-page PowerPoint presentation.

Spire.PDF

Category ID Description
New feature SPIREPDF-7617 Adds the SaveAsImage(int pageIndex, int dpiX, int dpiY) method in the NETStandard DLL to support customizing image DPI when converting PDF to images.
New feature SPIREPDF-7694 Adds the Collate property in the NETStandard DLL to support setting the print order for multiple copies.
// true: Collated printing; default false: Uncollated printing
doc.PrintSettings.Collate = true;
Bug SPIREPDF-1134 Fixes the issue where the text order was incorrect when rendering mixed Hebrew and English strings.
Bug SPIREPDF-2641 SPIREPDF-4108 Fixes the issue where Arabic text displayed incorrectly in TextBox form fields.
Bug SPIREPDF-5073 Fixes the issue where extra characters appeared when extracted text was redrawn.
Bug SPIREPDF-7219 SPIREPDF-7261 Fixes the issue where Arabic text was rendered incorrectly.
Bug SPIREPDF-7647 Fixes the issue where lines became thicker after converting OFD to PDF.
Bug SPIREPDF-7685 Fixes the issue where the application threw an exception when extracting text from pages.
Bug SPIREPDF-7718 Fixes the issue where printing PDF documents failed when calling the .NET Standard DLL.
Bug SPIREPDF-6584 Fixed an issue where memory consumption was high when using the NETStandard DLL to convert PDF to images.
Bug SPIREPDF-7072 Fixed an issue where the retrieved font name was inaccurate when searching for text.
Bug SPIREPDF-7371 Fixed an issue where the conversion result from OFD to PDF was incorrect.
Bug SPIREPDF-7373 Fixed an issue where annotations were not displayed when converting PDF to XPS.
Bug SPIREPDF-7658 Fixed an issue where the application threw an "Unexpected token before 158586" exception when loading a PDF document.
Bug SPIREPDF-7669 Fixed an issue where the application threw an "ArgumentOutOfRangeException" when extracting text.
Bug SPIREPDF-7684 Fixed an issue where the application threw an "Unknown annotation type value: 'Free Text'" exception when converting OFD to PDF.
Bug SPIREPDF-7706 Fixed an issue where some fonts could not be embedded correctly after drawing text.

Spire.DocViewer

Adjustment - Removed the "System.Security.Cryptography.Pkcs", "System.Security.Permissions", and "System.Security.Cryptography.Xml" dependencies.
Adjustment - Introduced a platform-agnostic .NET 7.0 version that supports running on all operating systems.
Adjustment - Introduced platform-specific versions for .NET 7.0-Android33.0 and .NET 7.0-Windows10.0.19041, which are deeply optimized for their respective platforms.

Spire.PDFViewer

New feature - Added a platform-agnostic .NET 7.0 version that runs across all operating systems.
Adjustment - Enhanced the platform-specific version for .NET 7.0-Windows 10.0.19041.

Spire.Barcode

Adjustment - Removed the“System.Security.Cryptography.Pkcs”, “System.Security.Permissions”, and “System.Security.Cryptography.Xml” dependencies on .NET Core and .NET Standard platforms.
Bug SPIREBARCODE-285 Fixed the issue where specific fonts could not be recognized when creating barcodes.

We’re pleased to announce the release of Spire.PDFViewer 8.2.1. This update introduces a cross-platform .NET 7.0 version, along with the dedicated version for Windows, ensuring broad compatibility and seamless integration across environments. More details are as follows.

Here is a list of changes made in this release

Category ID Description
New feature - Added a platform-agnostic .NET 7.0 version that runs across all operating systems.
Adjustment - Enhanced the platform-specific version for .NET 7.0-Windows 10.0.19041.
Click the link to get Spire.PDFViewer 8.2.1:
More information of Spire.PDFViewer new release or hotfix:

We’re pleased to announce the release of Spire.PDF 11.9.17. This version includes several important bug fixes, addressing text rendering issues with Hebrew and Arabic scripts, problems with text extraction, OFD-to-PDF conversion, and PDF printing using the .NET Standard DLL. See the full details below.

Here is a list of changes made in this release

Category ID Description
Bug SPIREPDF-1134 Fixes the issue where the text order was incorrect when rendering mixed Hebrew and English strings.
Bug SPIREPDF-2641 SPIREPDF-4108 Fixes the issue where Arabic text displayed incorrectly in TextBox form fields.
Bug SPIREPDF-5073 Fixes the issue where extra characters appeared when extracted text was redrawn.
Bug SPIREPDF-7219 SPIREPDF-7261 Fixes the issue where Arabic text was rendered incorrectly.
Bug SPIREPDF-7647 Fixes the issue where lines became thicker after converting OFD to PDF.
Bug SPIREPDF-7685 Fixes the issue where the application threw an exception when extracting text from pages.
Bug SPIREPDF-7718 Fixes the issue where printing PDF documents failed when calling the .NET Standard DLL.
Click the link to download Spire.PDF 11.9.17:
More information of Spire.PDF new release or hotfix:

We're glad to announce the release of Spire.Presentation 10.9.3. This version fixes an issue where documents failed to open. Check below for the details.

Here is a list of changes made in this release

Category ID Description
Bug SPIREPPT-3008 Fixed an issue where documents failed to open when using netstandard libraries on .NET 9.0.
Click the link to download Spire.Presentation 10.9.3:
More information of Spire.Presentation new release or hotfix:

We would like to inform you that E-iceblue will be on holiday from October 1st to October 8th, 2025 (GMT+8:00), in observance of China’s National Day and Mid-Autumn Festival.

During the holiday, your email will be received as usual, and the urgent problems will be solved as soon as possible by the staff on duty.

Note: The purchase system will remain available 24 hours a day and 7 days a week. Once you process the order online and finish the payment, the license file will be sent to you automatically by our system.

If you want to obtain a temporary license file to have a better evaluation on our products, please Request a Temporary Licensefor yourself. If you could not request it successfully, please send an email to the sales team.

Regular business hours will resume on October 9th, 2025. We apologize for any inconvenience this may cause and sincerely appreciate your understanding and continued support.

Please feel free to contact us via the following emails:


Useful Links Related to Purchase

Purchase Policy:
Order Online:
How to use Coupon Code:
How to Request an invoice:
Monday, 29 September 2025 10:13

Spire.Office for Java 10.9.0 Released

We are excited to announce the release of Spire.Office for Java 10.9.0. In this version, Spire.Doc for Java introduces several new features to enhance Word-to-Markdown conversion; Spire.Presentation for Java adds a new method to quickly retrieve the number of slides; Spire.PDF for Java optimizes memory consumption when loading documents. This release also includes numerous bug fixes. Details are provided below.

Click the link to download Spire.Office for Java 10.9.0:

Here is a list of changes made in this release

Spire.Doc for Java

Category ID Description
New feature SPIREDOC-11484 Supports configuring images to be embedded in Base64 encoding when converting Word to Markdown.
doc.getMarkdownExportOptions().setImagesAsBase64(true); 
New feature Supports configuring the output directory and resource reference path for images when converting Word to Markdown.
doc.getMarkdownExportOptions().setImagesFolder(ImagesFolder);
doc.getMarkdownExportOptions().setImagesFolderAlias(file_imageFile.getCanonicalPath());
New feature Supports configuring the link output mode (Auto/Inline/Reference) when converting Word to Markdown.
doc.getMarkdownExportOptions().setLinkOutputMode(MarkdownLinkOutputMode.Inline);
New feature Supports configuring lists to be exported using Markdown syntax or plain text when converting Word to Markdown.
doc.getMarkdownExportOptions().setListOutputMode(MarkdownListOutputMode.PlainText);
New feature Supports configuring equations to be exported as text, image, or MathML when converting Word to Markdown.
doc.getMarkdownExportOptions().setOfficeMathOutputMode(MarkdownOfficeMathOutputMode.Image);
New feature Supports retaining specified content (e.g., tables) in HTML format when converting Word to Markdown.
doc.getMarkdownExportOptions().setSaveAsHtml(MarkdownSaveAsHtml.Tables);
New feature Supports using "++" symbols to represent underline formatting when converting Word to Markdown.
doc.getMarkdownExportOptions().setSaveUnderlineFormatting(true);
New feature Supports configuring text alignment (Left/Center/Right/Auto) for tables when converting Word to Markdown.
doc.getMarkdownExportOptions().setTableTextAlignment(TableTextAlignment.Center);
Bug SPIREDOC-10545 SPIREDOC-11365 SPIREDOC-11366 Fixed an issue where Word document revision comparison was inaccurate.
Bug SPIREDOC-11262 Fixed an issue where page retrieval was incorrect.
Bug SPIREDOC-11270 Fixed an exception "Shape width cannot be greater than 1584 points" when converting Markdown to Word.
Bug SPIREDOC-11319 Fixed an exception "Error loading file: Unsupported file format" when converting HTML to Word.
Bug SPIREDOC-11371 Fixed incorrect page breaking when converting Word to PDF.
Bug SPIREDOC-11435 Fixed incorrect indentation in table of contents when saving Word documents.
Bug SPIREDOC-11479 Fixed an issue where the output stream was blank when saving Word to Markdown.
Bug SPIREDOC-11480 Fixed incorrect behavior when accepting revisions.
Bug SPIREDOC-11486 Fixed an issue where clearing table row background color had no effect.
Bug SPIREDOC-11487 Fixed a "NullPointerException" when calling the removeSelfOnly method to remove content controls.
Bug SPIREDOC-11500 Fixed an issue where the application hung when replacing bookmark content after enabling revisions.
Bug SPIREDOC-11501 Fixed an issue where the "incorrect password" exception was not properly thrown when loading encrypted documents.
Bug SPIREDOC-11505 Fixed a "NullPointerException" when retrieving the PackageFileName of an OLE object.
Bug SPIREDOC-11506 Fixed incorrect text retrieval.
Bug SPIREDOC-11517 Fixed an "Unsupported file format" exception when loading HTML files.
Bug SPIREDOC-11548 Fixed incorrect comment timestamps after saving Word documents.

Spire.Presentation for Java

Category ID Description
New feature SPIREPPT-2978 Adds the getSlidesCount() method to quickly retrieve the number of slides without fully parsing the entire document.
// Stream approach:
InputStream stream = new FileInputStream(inputFile);
int count = Presentation.getSlidesCount(stream);

// File path approach:
int count = Presentation.getSlidesCount(inputFile);
Bug SPIREPPT-2908 SPIREPPT-2913 Fixed an issue where the font rendering was incorrect when converting PPTX to PDF on Linux systems.
Bug SPIREPPT-2916 Fixed an issue where layout discrepancies occurred when converting slides to images.
Bug SPIREPPT-2917 Fixed an issue where table content overflowed its cells when converting slides to images.
Bug SPIREPPT-2918 SPIREPPT-2924 Fixed an issue where table borders were missing when converting slides to images.
Bug SPIREPPT-2927 SPIREPPT-2966 Fixed an issue where the rendering of LaTeX formulas was incorrect.

Spire.PDF for Java

Category ID Description
Optimization SPIREPDF-7717 Optimizes memory consumption when loading documents.
Bug SPIREPDF-7608 Fixes the issue where the program threw a "NullPointerException" when converting PDF to HTML.
Bug SPIREPDF-7635 Fixes the issue where the character "-" was missing when extracting text from PDF.
Bug SPIREPDF-7639 Fixes the issue where text wrap settings in Grid cells were not taking effect.
Bug SPIREPDF-7652 Fixes the issue where the obtained image coordinates were inaccurate.

Spire.XLS for Java

Category ID Description
Bug SPIREXLS-5927 Fixed an issue causing extra content and missing blank lines when converting Excel to HTML.
Bug SPIREXLS-5942 Fixed an issue where an "IllegalStateException" exception was thrown when saving an XLSB file.
Bug SPIREXLS-5944 Fixed an issue causing pagination differences when converting Excel to PDF.
Bug SPIREXLS-5946 Fixed an issue where ChartPlotEmptyType changed from Interpolated to Gap when cloning a worksheet.

We’re pleased to announce the release of Spire.DocViewer 8.9.4. This version removes three security-related dependencies, and introduces both a cross-platform .NET 7.0 version and platform-specific versions for Android and Windows, ensuring broad compatibility and deep system integration. More details are as follows.

Here is a list of changes made in this release

Category ID Description
Adjustment - Removed the "System.Security.Cryptography.Pkcs", "System.Security.Permissions", and "System.Security.Cryptography.Xml" dependencies.
Adjustment - Introduced a platform-agnostic .NET 7.0 version that supports running on all operating systems.
Adjustment - Introduced platform-specific versions for .NET 7.0-Android33.0 and .NET 7.0-Windows10.0.19041, which are deeply optimized for their respective platforms.
Click the link to download Spire.DocViewer 8.9.4:

We're pleased to announce the release of Spire.Doc 13.9.10. This version exposes several core interfaces for fine-grained document styling control, and supports removing document style as well as applying built-in table styles. More details are listed below.

Here is a list of changes made in this release

Category ID Description
New feature - Exposes core style interfaces ICharacterStyle, IListStyle, and ITableStyle to enable fine-grained document styling control.
New feature SPIREDOC-7186 SPIREDOC-7365 Removes CharacterFormat from IStyle, now implemented in CharacterStyle, ParagraphStyle, and TableStyle.
IStyle style = document.Styles.FindByName("Normal");
if (style != null && style is ICharacterStyle)
{
    ICharacterStyle cStyle = style as ICharacterStyle;
    cStyle.CharacterFormat.FontName = "cambria";
    cStyle.CharacterFormat.FontSize = 14;
    cStyle.CharacterFormat.Bold = true;
    cStyle.CharacterFormat.TextColor = Color.FromArgb(42, 123, 136);
}
New feature SPIREDOC-2945 SPIREDOC-4871 Adds the IStyle.RemoveSelf() method to remove a style from the document.
string pStyleName = "testStyle";
Document document = new Document();
ParagraphStyle pStyle = (ParagraphStyle)document.Styles.Add(StyleType.ParagraphStyle, pStyleName);
pStyle.CharacterFormat.FontName = "Calibri";
pStyle.CharacterFormat.FontSize = 16;
pStyle.CharacterFormat.Bold = true;
pStyle.CharacterFormat.TextColor = Color.DarkRed;
Section section = document.AddSection();
Paragraph para = section.AddParagraph();
para.ApplyStyle(pStyle);
para.AppendText("Hello world!");
Style firstParaStyle = document.FirstSection.Body.FirstParagraph.Format.Style;
document.SaveToFile(outputDocxFile1, FileFormat.Docx);
document.Styles[pStyleName].RemoveSelf();
document.SaveToFile(outputDocxFile2, FileFormat.Docx);
New feature - Enables conditional table formatting via TableConditionalStyle, TableConditionalStyleCollection, and TableConditionalStyleType to style odd/even rows and columns.
Document doc = new Document();
Section section = doc.AddSection();
Table table = section.AddTable();
table.ResetCells(15, 4);
for (int i = 0; i < 15; i++)
{
    TableRow row = table.Rows[i];
    for (int j = 0; j < 4; j++)
    {
        TableCell cell = row.Cells[j];
        cell.AddParagraph().AppendText(string.Format("{0} column.", (j % 2 == 0 ? "Even" : "Odd")));
        cell.AddParagraph().AppendText(string.Format("Row banding {0}", (i % 3 == 0 ? "start" : "continuation")));
    }
}

TableStyle tableStyle = (TableStyle)doc.Styles.Add(StyleType.TableStyle, "TestTableStyle1");
tableStyle.Borders.Color = Color.Black;
tableStyle.Borders.BorderType = BorderStyle.Double;

tableStyle.RowStripe = 3;
tableStyle.ConditionalStyles[TableConditionalStyleType.OddRowStripe].Shading.BackgroundPatternColor = Color.LightBlue;
tableStyle.ConditionalStyles[TableConditionalStyleType.EvenRowStripe].Shading.BackgroundPatternColor = Color.LightCyan;

tableStyle.ColumnStripe = 1;
tableStyle.ConditionalStyles[TableConditionalStyleType.EvenColumnStripe].Shading.BackgroundPatternColor = Color.LightPink;

table.ApplyStyle(tableStyle);

table.Format.StyleOptions = table.Format.StyleOptions | TableStyleOptions.ColumnStripe;

doc.SaveToFile(outputDocxFile1, FileFormat.Docx);
New feature - Obsoletes the Table.TableStyleName and replaces it with Table.Format.StyleName. Adds Table.Format.Style and Table.ApplyStyle(ITableStyle) for applying styles to tables.
New feature SPIREDOC-3647 Exposes Style, StyleOptions, and StyleName properties in TableFormat, with TableStyleOptions enum support.
Document doc = new Document();
Section section = doc.AddSection();

TableStyle tableStyle = (TableStyle)doc.Styles.Add(StyleType.TableStyle, "TestTableStyle1");
tableStyle.HorizontalAlignment = RowAlignment.Center;
tableStyle.Borders.Color = Color.Blue;
tableStyle.Borders.BorderType = BorderStyle.Single;

Table table = section.AddTable();
table.ResetCells(1, 1);
table.Rows[0].Cells[0].AddParagraph().AppendText("Aligned to the center of the page");
table.PreferredWidth = PreferredWidth.FromPoints(300);

table.ApplyStyle(tableStyle);

section.AddParagraph().AppendText(" ");

tableStyle = (TableStyle)doc.Styles.Add(StyleType.TableStyle, "TestTableStyle2");
tableStyle.LeftIndent = 55;
tableStyle.Borders.Color = Color.Green;
tableStyle.Borders.BorderType = BorderStyle.Single;

table = section.AddTable();
table.ResetCells(1, 1);
table.Rows[0].Cells[0].AddParagraph().AppendText("Aligned according to left indent");
table.PreferredWidth = PreferredWidth.FromPoints(300);

table.Format.Style = tableStyle;

doc.SaveToFile(outputDocxFile1, FileFormat.Docx);
New feature - Adds Document.AddStyle(DefaultTableStyle) method to apply built-in table styles.
Document doc = new Document();
Section section = doc.AddSection();
Table table = section.AddTable();
table.ResetCells(15, 4);
for (int i = 0; i < 15; i++)
{
    TableRow row = table.Rows[i];
    for (int j = 0; j < 4; j++)
    {
        TableCell cell = row.Cells[j];
        cell.AddParagraph().AppendText(string.Format("{0} column.", (j % 2 == 0 ? "Even" : "Odd")));
        cell.AddParagraph().AppendText(string.Format("Row banding {0}", (i % 2 == 0 ? "Even" : "Odd")));
    }
}

TableStyle tableStyle = doc.AddStyle(DefaultTableStyle.LightListAccent3);
table.ApplyStyle(tableStyle);
doc.SaveToFile(outputDocxFile1, FileFormat.Docx);
Click the link to download Spire.Doc 13.9.10:
More information of Spire.Doc new release or hotfix:

We're pleased to announce the release of Spire.Doc for Java 13.9.19. This version introduces enhanced Markdown export options, allowing better control over image encoding, output paths, link modes, lists, equations, and table formatting when converting Word documents. Meanwhile, multiple issues related to document revision comparison, page retrieval, content formatting, and exceptions during file conversions have also been fixed. More details are listed below.

Here is a list of changes made in this release

Category ID Description
New feature SPIREDOC-11484 Supports configuring images to be embedded in Base64 encoding when converting Word to Markdown.
doc.getMarkdownExportOptions().setImagesAsBase64(true);
New feature Supports configuring the output directory and resource reference path for images when converting Word to Markdown.
doc.getMarkdownExportOptions().setImagesFolder(ImagesFolder);
doc.getMarkdownExportOptions().setImagesFolderAlias(file_imageFile.getCanonicalPath());
New feature Supports configuring the link output mode (Auto/Inline/Reference) when converting Word to Markdown.
doc.getMarkdownExportOptions().setLinkOutputMode(MarkdownLinkOutputMode.Inline);
New feature Supports configuring lists to be exported using Markdown syntax or plain text when converting Word to Markdown.
doc.getMarkdownExportOptions().setListOutputMode(MarkdownListOutputMode.PlainText);
New feature Supports configuring equations to be exported as text, image, or MathML when converting Word to Markdown.
doc.getMarkdownExportOptions().setOfficeMathOutputMode(MarkdownOfficeMathOutputMode.Image);
New feature Supports retaining specified content (e.g., tables) in HTML format when converting Word to Markdown.
doc.getMarkdownExportOptions().setSaveAsHtml(MarkdownSaveAsHtml.Tables);
New feature Supports using "++" symbols to represent underline formatting when converting Word to Markdown.
doc.getMarkdownExportOptions().setSaveUnderlineFormatting(true);
New feature Supports configuring text alignment (Left/Center/Right/Auto) for tables when converting Word to Markdown.
doc.getMarkdownExportOptions().setTableTextAlignment(TableTextAlignment.Center);
Bug SPIREDOC-10545, SPIREDOC-11365, SPIREDOC-11366 Fixed an issue where Word document revision comparison was inaccurate.
Bug SPIREDOC-11262 Fixed an issue where page retrieval was incorrect.
Bug SPIREDOC-11270 Fixed an exception "Shape width cannot be greater than 1584 points" when converting Markdown to Word.
Bug SPIREDOC-11319 Fixed an exception "Error loading file: Unsupported file format" when converting HTML to Word.
Bug SPIREDOC-11371 Fixed incorrect page breaking when converting Word to PDF.
Bug SPIREDOC-11435 Fixed incorrect indentation in table of contents when saving Word documents.
Bug SPIREDOC-11473, SPIREDOC-11485 Fixed a "NullPointerException" when converting Word to Markdown.
Bug SPIREDOC-11479 Fixed an issue where the output stream was blank when saving Word to Markdown.
Bug SPIREDOC-11480 Fixed incorrect behavior when accepting revisions.
Bug SPIREDOC-11486 Fixed an issue where clearing table row background color had no effect.
Bug SPIREDOC-11487 Fixed a "NullPointerException" when calling the removeSelfOnly method to remove content controls.
Bug SPIREDOC-11500 Fixed an issue where the application hung when replacing bookmark content after enabling revisions.
Bug SPIREDOC-11501 Fixed an issue where the "incorrect password" exception was not properly thrown when loading encrypted documents.
Bug SPIREDOC-11505 Fixed a "NullPointerException" when retrieving the PackageFileName of an OLE object.
Bug SPIREDOC-11506 Fixed incorrect text retrieval.
Bug SPIREDOC-11517 Fixed an "Unsupported file format" exception when loading HTML files.
Bug SPIREDOC-11548 Fixed incorrect comment timestamps after saving Word documents.
Click the link below to download Spire.Doc for Java 13.9.19:
Page 6 of 12