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:

We're pleased to announce the release of Spire.PDF for Java 11.9.6. This version optimizes memory consumption when loading documents. Meanwhile, several issues related to PDF conversion, text extraction, Grid cell formatting, and image coordinates have been successfully fixed. More details are listed below.

Here is a list of changes made in this release

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.
Click the link below to download Spire.PDF for Java 11.9.6:

We’re glad to announce the release of Spire.Presentation for Python 10.9.0. This updates mainly fixes an issue occurred when inserting SVG images to a multi-page PowerPoint file. More details are as follows.

Here is a list of changes made in this release

Category ID Description
Bug SPIREPPT-2976 Fixed the issue where a new slide was accidently created when inserting SVG images to a specified shape in a multi-page PowerPoint file.*
Click the link to download Spire.Presentation for Python 10.9.0:

We're pleased to announce the release of Spire.XLS 15.9.7. This version adds a new interface for creating and modifying Equations, and also supports the ISOMITTED, LAMBDA functions. Besides, some issues that occurred when converting Excel to PDF and copying worksheets have been successfully fixed. More details are shown below.

Here is a list of changes made in this release

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.
Click the link to download Spire.XLS 15.9.7:
More information of Spire.XLS new release or hotfix:
Page 3 of 9