Spire.OCR 2.2.10 supports integration with cloud AI models
We're pleased to announce the release of Spire.OCR 2.2.10. This version supports integration with cloud AI models (such as Doubao, Qwen, DeepSeek, etc.) for image text recognition. (Note: Users are required to obtain their own API Keys from the respective AI platforms.) More details are listed below.
Here is a list of changes made in this release
| Category | ID | Description |
| New Feature | SPIREOCR-125 | Supports integration with cloud AI models (such as Doubao, Qwen, DeepSeek, etc.) for image text recognition.
static void Main(string[] args)
{
string filename = "1.png";
string outputFile = "scan.txt";
string filePath = "F:\\3.3.0AI\\AI\\"+"ocr.xml";
string newModel = "AIModel";
string newApiKey = "ApiKey";
string newApiUrl = "ApiUrl";
UpdateOcrConfig(filePath, newModel, newApiKey, newApiUrl);
ScanImg(filename, outputFile);
}
public static void ScanImg(string filename, string outputFile)
{
OcrScanner scanner = new OcrScanner();
ConfigureOptions configureOptions = new ConfigureOptions();
configureOptions.ModelPath = "F:\\3.3.0AI\\AI";
configureOptions.Language = "English";
scanner.ConfigureDependencies(configureOptions);
scanner.Scan(filename);
File.WriteAllText(outputFile, scanner.Text.ToString());
}
public static void UpdateOcrConfig(string filePath, string model, string apiKey, string apiUrl)
{
XmlDocument doc = new XmlDocument();
doc.Load(filePath);
XmlNode modelNode = doc.SelectSingleNode("/ocr/configs/model");
XmlNode apiKeyNode = doc.SelectSingleNode("/ocr/configs/apiKey");
XmlNode apiUrlNode = doc.SelectSingleNode("/ocr/configs/apiUrl");
if (modelNode != null) modelNode.InnerText = model;
if (apiKeyNode != null) apiKeyNode.InnerText = apiKey;
if (apiUrlNode != null) apiUrlNode.InnerText = apiUrl;
doc.Save(filePath);
Console.WriteLine("XML file updated!");
}
|
Spire.Doc for JavaScript 14.4.2 adds support for Word to Markdown conversion and more features
We’re pleased to announce the release of Spire.Doc for JavaScript 14.4.2. This version adds support for converting Word documents to Markdown format, inserting SVG files into Word documents, and setting gutter width. More details are listed below.
Here is a list of changes made in this release
| Category | ID | Description |
| New Feature | — | Supports converting Word documents to Markdown format. |
| New Feature | — | Supports inserting SVG files into Word documents. |
| New Feature | — | Supports setting gutter width. |
Spire.Presentation for JavaScript 11.4.1 supports converting PowerPoint to PDF/A
We’re glad to announce the release of Spire.Presentation for JavaScript 11.4.1. This update introduces two major enhancements: converting PowerPoint to PDF/A, allowing you to create documents that meet long-term archival requirements directly from your presentations; and adding HTML with images to PowerPoint, enabling you to seamlessly embed rich HTML content, including images, into your slides.
Here is a list of changes made in this release
| Category | ID | Description |
| New Feature | - | Added support for converting PowerPoint to PDF/A compliant documents. |
| New Feature | - | Added support for adding HTML with images to PowerPoint documents. |
Spire.PDF for Android via Java 10.8.0 introduces the PdfImageHelper class for processing images
We're pleased to announce the release of Spire.PDF for Android via Java 10.8.0. This version introduces the PdfImageHelper class for image processing, and optimizes the methods for retrieving signature certificate names and registering table layout events. More details are listed below.
Here is a list of changes made in this release
| Category | ID | Description |
| Optimization | - | Introduced the PdfImageHelper class for processing PDF images.
Before: // Get the image information on a PDF page PdfImageInfo[] imageInfo = page.getImagesInfo(); // Replace the first image page.replaceImage(0, image) // Delete the first image page.deleteImage(0); After: // Get the image information on a PDF page PdfImageHelper imageHelper = new PdfImageHelper(); PdfImageInfo[] imagesInfos = imageHelper.getImagesInfo(page); // Replace the first image imageHelper.replaceImage(imagesInfos[0], image); // Delete the first image imageHelper.deleteImage(imagesInfos[0]); |
| Optimization | - | Optimized the method for retrieving signature certificate names.
Before: signature.getCertificate().get_IssuerName().getName() After: signature.getCertificate().getDistinguishedName()); |
| Optimization | - | Optimized the method for registering table layout events.
Before: table.beginRowLayout.add() / table.endCellLayout.add() After: table.addBeginRowLayoutEventHandler() / table.addEndCellLayoutEventHandler() |
Spire.XLS for JavaScript 16.4.0 supports converting Excel to SVG
We're pleased to announce the release of Spire.XLS for JavaScript 16.4.0. This version supports converting Excel and ChartSheet to SVG, and supports configuring OnlyCopyFormulaValue when cloning cell ranges to copy formula values only. More details are listed below.
Here is a list of changes made in this release
| Category | ID | Description |
| New Feature | SPIREXLS-5621 | Supports converting Excel to SVG. |
| New Feature | SPIREXLS-5622 | Supports converting ChartSheet to SVG. |
| New Feature | SPIREXLS-5623 | Supports configuring OnlyCopyFormulaValue when cloning cell ranges to copy formula values only. |
Spire.Doc for Java 14.4.0 resolves an HTML appending issue
We’re pleased to announce the release of Spire.Doc for Java 14.4.0. This update fixes a bug that caused a NoClassDefFoundError when calling the appendHTML method.
Here is a list of changes made in this release
| Category | ID | Description |
| Bug Fix | SPIREDOC-11879 | Fixed the issue where a "NoClassDefFoundError" exception was thrown when adding HTML via appendHTML. |
Spire.XLS for Python 16.4.0 adds support for Excel and Markdown conversion
We’re pleased to announce the release of Spire.XLS for Python 16.4.0. This version adds support for hiding the Pivot Table Field List, as well as converting between Excel and Markdown formats. It also fixes several issues, including an exception that occurred when setting the Value2 property of a cell. More details are listed below.
Here is a list of changes made in this release
| Category | ID | Description |
| New Feature | SPIREXLS-6094 | Supports hiding the Pivot Table Field List.
workbook.HidePivotFieldList = true; |
| New Feature | SPIREXLS-6097 | Supports converting Excel to Markdown.
workbook = Workbook() workbook.LoadFromFile(inputFile) markdownOptions = MarkdownOptions() markdownOptions.SavePicInRelativePath = False markdownOptions.SaveHyperlinkAsRef = False workbook.SaveToMarkdown(outputFile, markdownOptions) workbook.Dispose() |
| New Feature | SPIREXLS-6098 | Supports converting Markdown to Excel.
workbook = Workbook()
workbook.LoadFromFile(inputFile)
wb.SaveToFile("out.xlsx", ExcelVersion.Version2010);
|
| Bug Fix | SPIREXLS-5986 | Fixed an issue where setting the Value2 property of a cell caused an exception. |
| Bug Fix | SPIREXLS-6089 | Fixed an issue where running the package on Python 3.14.2 threw a `NotImplementedError: There is currently no support for "str |
| Bug Fix | SPIREXLS-6091 | Fixed an issue where setting the ShowValuesRow property of a Pivot Table to False did not take effect. |
| Bug Fix | SPIREXLS-6116 | Fixed an issue where specifying a large data source range when creating a Pivot Table caused an exception. |
Spire.PDF 12.4.0 optimizes memory consumption during PDF merging
We're pleased to announce the release of Spire.PDF 12.4.0. This version optimizes memory consumption during PDF merging and also fixes several issues that occurred when processing PDF files. More details are listed below.
Here is a list of changes made in this release
| Category | ID | Description |
| Optimization | SPIREPDF-7878 SPIREPDF-7958 | Optimized memory consumption during PDF merging. |
| Bug Fix | SPIREPDF-7850 | Fixed an issue where removing image watermarks from PDFs failed. |
| Bug Fix | SPIREPDF-7963 | Fixed an issue where keywords were not correctly identified when using “TextFindParameter.WholeWord”. |
| Bug Fix | SPIREPDF-7980 | Fixed an issue where content stream markers did not correctly include attribute placeholders when an “ArtifactPropertyList” object was passed to the “BeginMarkedContent” method. |
Spire.Office for Java 11.3.0 is released
We’re pleased to announce the release of Spire.Office for Java 11.3.0. In this update, Spire.Doc for Java supports “kerning for fonts” feature; Spire.PDF for Java supports PDF 2.0 format; Spire.Presentation supports saving PPTX to video formats; Spire.XLS for Java enhances the Excel to PDF conversion stability. Moreover, a large number of known issues have been successfully resolved. More details are as follows.
Below is a summary of the changes included in this release.
Spire.Doc for Java
| Category | ID | Description |
| New Feature | SPIREDOC-9870 | Support the "Automatically adjust right indent when defining grid" feature.
paragraph.Format.AdjustRightIndent = true; // Default value is true |
| New Feature | SPIREDOC-11030 | Support the "Kerning for fonts" feature.
textRange.CharacterFormat.Kerning = 2.5f; |
| New Feature | SPIREDOC-11792 | Supports configuring formula conversion to MathML when converting Word to HTML.
HtmlExportOptions options = document.getHtmlExportOptions(); options.setOfficeMathOutputMode(HtmlOfficeMathOutputMode.Math_ML); |
| Bug Fix | SPIREDOC-11702 | Fixed an issue where loading a document threw the exception "Document element did not appear. Line 2, position 1". |
| Bug Fix | SPIREDOC-11742 | Fixed an issue where bullet/numbering positions in headings were incorrect when converting Word to Markdown. |
| Bug Fix | SPIREDOC-11798 | Fixed an issue where page layout effects were rendered incorrectly. |
| Bug Fix | SPIREDOC-11804 | Fixed an issue where extra blank pages appeared when converting Word to PDF. |
| Bug Fix | SPIREDOC-10476 | Fixes the issue where a NullPointerException was thrown when loading a Word document in the JDK 11 environment. |
| Bug Fix | SPIREDOC-11628 | Fixes the issue where the "There are too many styles in the document" exception was thrown when loading a Word document. |
| Bug Fix | SPIREDOC-11635 | Fixes the issue where the "Invalid format string" exception was thrown when loading a Word document containing signatures. |
| Bug Fix | SPIREDOC-11713 | Fixes the issue where images were lost when converting Word to PDF. |
| Bug Fix | SPIREDOC-11819 | Fixes the issue where OLE object icons became abnormally large upon double-clicking after being added to a Word document. |
| Bug Fix | SPIREDOC-11828 | Fixes the issue where a NullPointerException was thrown when deleting OLE objects from a Word document. |
| Bug Fix | SPIREDOC-11843 | Fixes the issue where the java.lang.Float cannot be cast to java.lang.Integer exception was thrown when loading a Word document. |
| Bug Fix | SPIREDOC-11847 | Fixes the issue where content overlapped when converting Word to PDF. |
Spire.XLS for Java
| Category | ID | Description |
| Bug Fix | SPIREXLS-6109 | Fixed an issue where some borders were missing when converting Excel to PDF on a Linux server. |
| Bug Fix | SPIREXLS-6119 | Fixed an issue where the application would hang when loading a document. |
Spire.PDF for Java
| Category | ID | Description |
| New Feature | SPIREPDF-4796 | Added support for setting the PDF 2.0 version.
doc.getFileInfo().setVersion(PdfVersion.Version_2_0); |
| Bug Fix | SPIREPDF-6872 | Fixed an issue where punctuation marks appeared at the beginning of lines when rendering Chinese text. |
| Bug Fix | SPIREPDF-7863 | Fixed an issue where OFD files converted from PDF failed to open with ofd.umd.js. |
| Bug Fix | SPIREPDF-7682 | Fixed an issue where images placed at the bottom layer appeared above text after converting PDF to PDF/A-1a. |
| Bug Fix | SPIREPDF-7944 | Fixed an issue where the application hung when loading a PDF document. |
| Bug Fix | SPIREPDF-7978 | Fixed an issue where partial text was lost after converting PDF to PDF/A-1a. |
| Bug Fix | SPIREPDF-7979 SPIREPDF-7993 | Fixed an issue where the application threw a "file structure is not valid" exception when loading a PDF document. |
| Bug Fix | SPIREPDF-7811 | Fixes the issue where a java.lang.NullPointerException was thrown when merging PDF documents. |
| Bug Fix | SPIREPDF-7931 | Fixes the issue where a java.lang.NullPointerException was thrown when releasing resources during PDF merging. |
| Bug Fix | SPIREPDF-7995 | Fixes the issue where partial text was missing when converting PDF to PDF/A. |
Spire.Presentation for Java
| Category | ID | Description |
| New Feature | - | Added support for saving PPTX to video formats.
String inputFile = "input.pptx";
String outputFile = "output.mp4";
Presentation presentation = new Presentation();
presentation.loadFromFile(inputFile);
SaveToVideoOption saveOption = new SaveToVideoOption.Builder("D:\\tools\\ffmpeg-7.1.1-essentials_build\\bin") // Set ffmpeg path
.setFps() // Frame rate
.setThreadsCount() // Number of threads
.setDurationForEachSlide() // Duration for each slide
.build();
presentation.setSaveToVideoOption(saveOption);
presentation.saveToFile(outputFile, FileFormat.AUTO);
|
Spire.PDF for Java 12.3.9 enhances the conversion from PDF to PDF/A
We're pleased to announce the release of Spire.PDF for Java 12.3.9. This version enhances the conversion from PDF to PDF/A. Meanwhile, some issues that occurred when merging PDF documents and releasing resources have also been successfully fixed. More details are listed below.
Here is a list of changes made in this release
| Category | ID | Description |
| Bug Fix | SPIREPDF-7811 | Fixes the issue where a java.lang.NullPointerException was thrown when merging PDF documents. |
| Bug Fix | SPIREPDF-7931 | Fixes the issue where a java.lang.NullPointerException was thrown when releasing resources during PDF merging. |
| Bug Fix | SPIREPDF-7995 | Fixes the issue where partial text was missing when converting PDF to PDF/A. |