Spire.PDF 12.8.5 Adjusts Annotation Classes and Properties
We're pleased to announce the release of Spire.PDF 12.8.5. This version optimizes and adjusts internal comments, updates and adds demos, revises related articles, and adjusts annotation class names and properties for improved consistency. More details are listed below.
Here is a list of changes made in this release
Class Name Adjustments
| Old | New |
| PdfTextMarkupAnnotationWidget | PdfTextMarkupAnnotation |
| PdfFreeTextAnnotationWidget | PdfFreeTextAnnotation |
| PdfTextAnnotationWidget | PdfTextAnnotation |
| PdfPopupAnnotationWidget | PdfPopupAnnotation |
| PdfLineAnnotationWidget | PdfLineAnnotation |
| PdfRubberStampAnnotationWidget | PdfRubberStampAnnotation |
| PdfPolyLineAnnotation | PdfPolylineAnnotation |
| PdfAttachmentAnnotation | PdfFileAttachmentAnnotation |
| PdfEmbeddedGoToAction | PdfGoToEmbeddedAction |
| PdfTextMarkupAnnotation | PdfHighlightAnnotation |
Property Adjustments
| Old | New | Description |
| xxx.Text | xxx.Contents | Annotation text content |
| xxx.Author | xxx.Title | Annotation author / title |
| xxx.Bounds | xxx.Rectangle | Annotation bounding rectangle |
| xxx.TextMarkupColor | xxx.Color | Highlight / markup color |
| xxx.Opacity | xxx.StrokingOpacity | Stroking opacity |
| xxx.LineEndingStyle | xxx.CalloutLineEndingStyle | Callout line ending style |
| xxx.CalloutLines | xxx.CalloutLine | Callout line points |
| xxx.BorderStyle / xxx.BorderWidth(lineBorder) | xxx.Border.Style / xxx.Border.Width | Line border style / width |
| xxx.BeginLineStyle / xxx.EndLineStyle | xxx.StartingStyle / xxx.EndingStyle | Line ending styles |
| xxx.InnerLineColor / xxx.BackColor | xxx.InteriorColor / xxx.Color | Line interior color / background color |
| xxx.LeaderLineExt | xxx.LeaderLineExtension | Leader line extension |
| xxx.BorderEffect = PdfBorderEffect.BigCloud | xxx.Border.Effect = PdfBorderEffect.Cloudy | Cloudy border effect |
Spire.Presentation for Python 11.8.1 supports saving PPTX to video
We're glad to announce the release of Spire.Presentation for Python 11.8.1. This version supports saving PPTX to video and also fixes two issues that occurred when converting and loading PowerPoint files. Check below for the details.
Here is a list of changes made in this release
| Category | ID | Description |
| New Feature | - | Supported saving PPTX to video (.mp4/.wmv).
ppt = Presentation() ppt.LoadFromFile(inputFile) SaveToVideoOption saveOption = new SaveToVideoOption(ffmpegDir) ppt.SaveToVideoOption=saveOption ppt.SaveToFile(outputFile_mp4, FileFormat.MP4) ppt.SaveToFile(outputFile_wmv, FileFormat.WMV) ppt.Dispose() |
| Bug Fix | SPIREPPT-3152 | Fixed the issue where the program hung when converting PowerPoint to image. |
| Bug Fix | SPIREPPT-3176 SPIREPPT-3178 | Fixed the issue where an error was thrown when loading a PowerPoint file. |
Spire.XLS for Python 16.8.2 supports macro (VBA) functionality
We're pleased to announce the release of Spire.XLS for Python 16.8.2. This version supports macro (VBA) functionality, including adding, getting, and deleting VBA projects, as well as configuring PDF encryption when converting Excel to PDF. Meanwhile, an issue that occurred when combining multiple CopyRangeOptions enum values has also been successfully fixed. More details are listed below.
Here is a list of changes made in this release
| Category | ID | Description |
| New Feature | SPIREXLS-6151 | Adds support for macro (VBA) functionality, including adding, getting, and deleting VBA projects.
//1.Add
workbook = Workbook()
# Add VBA project to document
vbaProject = workbook.VbaProject
vbaProject.Name = "SampleVBAMacro"
text = "Code page before modification: " + str(vbaProject.CodePage) + "\n"
vbaProject.CodePage = 936 # Set encoding to support Chinese characters
text += "Code page after modification: " + str(vbaProject.CodePage) + "\n"
File.WriteAllText(outputFile_TXT, text)
vbaModule = vbaProject.Modules.Add("SampleModule", VbaModuleType.Module)
# Does not support Chinese characters
vbaModule.SourceCode = """
Sub ExampleMacro()
' Declare variables
Dim ws As Worksheet
Dim i As Integer
' Set reference to active worksheet
Set ws = ActiveSheet
' Clear worksheet content (optional)
ws.Cells.Clear
' Fill sample data
With ws
' Write header row
.Range("A1: C1").Value = Array("Serial No.", "Project Name", "Amount")
' Loop to fill 10 rows of data
For i = 1 To 10
.Cells(i + 1, 1).Value = i ' Serial number column
.Cells(i + 1, 2).Value = "Project " & i ' Project name column
.Cells(i + 1, 3).Value = i * 100 ' Amount column (sample calculation)
Next i
' Auto-fit column widths
.Columns("A:C").AutoFit
' Format header row
With.Range("A1:C1")
.Font.Bold = True
.Interior.Color = RGB(200, 220, 255) ' Light blue background
End With
' Format amount column
.Range("C2:C11").NumberFormat = "$#,##0.00"
End With
' Show completion message
MsgBox "Data population complete!", vbInformation, "Operation Prompt"
End Sub"""
workbook.SaveToFile(outputFile_Xls, FileFormat.Version97to2003)
workbook.SaveToFile(outputFile_Xlsb, FileFormat.Xlsb2007)
workbook.SaveToFile(outputFile_Xlsm, FileFormat.Xlsm)
workbook.SaveToFile(outputFile_Xltm, FileFormat.XLTM)
workbook.Dispose()
//2.Obtain and modify
workbook = Workbook()
workbook.LoadFromFile(inputFile)
worksheet = workbook.Worksheets[0]
vbaProject = workbook.VbaProject
// Modify worksheet module
mod = vbaProject.Modules.GetWorksheetModule(worksheet)
mod.Name = "IVbaModule"
mod.SourceCode = "Dim lRow As Long"
mod.Type = VbaModuleType.Module
// Save file
workbook.SaveToFile(outputFile)
workbook.Dispose()
//3. Delete
workbook1 = Workbook()
workbook1.LoadFromFile(inputFile_Module)
vbaProject1 = workbook1.VbaProject
vbaProject1.Modules.Remove("SampleModule")
workbook1.SaveToFile(outputFile_1)
workbook1.Dispose()
|
| New Feature | SPIREXLS-6169 | Adds support for configuring PDF encryption when converting Excel to PDF.
workbook = Workbook()
#Load a excel document
workbook.LoadFromFile(inputFile)
#Set permission password and permissions to encrypt converted pdf
workbook.ConverterSetting.PdfSecurity.Encrypt("123", PdfPermissionsFlags.Print)
#Convert excel to pdf
workbook.SaveToFile(outputFile, FileFormat.PDF)
workbook.Dispose()
|
| Bug Fix | SPIREXLS-6199 | Fixes the issue where combining multiple CopyRangeOptions enum values threw an error. |
E-iceblue Limited-Time Autumn Promotion: Buy Spire Products, Get Spire.Agent Licenses Free
E-iceblue, a leading provider of document processing SDKs, today announced a limited-time promotional campaign offering free Spire.Agent licenses with qualifying purchases or renewals of Spire products. The offer, valid from August 24 to September 24, provides businesses and developers with an opportunity to enhance their document automation workflows with AI capabilities at no additional cost.
Spire.Agent, is the AI powered agent suite built to supercharge Spire’s mature document processing SDK stack, rather than replace it. Developers can leverage natural language driven workflows to create, refine, review, convert, format, and extract content across Word, Excel, PowerPoint, and PDF files. Compared with traditional document SDKs that require heavy manual coding for every workflow, Spire.Agent brings adaptive AI driven logic, reduces engineering overhead, and speeds up enterprise level document automation deployment.
Under the campaign:
- New purchases: Receive a 2 month full Spire.Agent license.
- Renewal orders: Receive a 1 month full Spire.Agent license.
Eligible Products and Free AI Agent Tiers
Every qualifying purchase or renewal automatically includes a Spire.Agent license matched to the product tier. The table below outlines the free license value:
| Purchase Product | Free AI Agent Included | Tier & 2 Month Gift Value (Renewal: 1 Month) |
| Spire.Office for .NET | Spire.Agent.Office | Developer → Developer ($2,398) Site Small Business → Site Lite ($11,998) Site OEM → Site Enterprise ($35,998) |
| Individual Spire Components for .NET (Doc / XLS / Presentation / PDF) |
Spire.Agent.Doc Spire.Agent.XLS Spire.Agent.Presentation Spire.Agent.PDF |
Developer → Developer ($798) Site Small Business → Site Lite ($3,998) Site OEM → Site Enterprise ($11,998) |
Note: All licenses are full, not trial versions, and are delivered via official E-iceblue channels only.
How to Claim Your Free AI License
Participation is simple and entirely automated:
1. Purchase or renew any eligible Spire product through official E-iceblue channels during the campaign period (Aug 24 – Sep 24).
2. Check your email—your Spire.Agent license will be automatically delivered with activation instructions upon order completion.
3. If you don't receive it, contact the E-iceblue sales team anytime for manual issuance.
Important Terms & Conditions
- Offer valid only for orders placed via official E iceblue channels; purchases from third-party resellers are excluded.
- Free Spire.Agent validity starts on the license activation date.
- Free licenses cannot be exchanged for cash or other compensation.
- The free license cannot be exchanged for cash or other compensation.
- E iceblue retains rights to modify, suspend, or terminate this offer at any time.
Ready to upgrade your document workflows with AI?
Don’t miss this limited-time Autumn offer to elevate your document processing capabilities with AI — claim your no cost Spire.Agent license alongside your Spire product investment.
- Browse products: https://www.e-iceblue.com/Download/product-list.html
- Promotion details: https://www.e-iceblue.com/Campaign.html
- Sales inquiries: sales@e-iceblue.com
Spire.Agent.Office 11.8.3 adds cross-platform support, custom AI models, and simplified licensing
We’re pleased to announce the release of Spire.Agent.Office 11.8.3. This version introduces support for .NET Standard 2.1, enabling seamless cross-platform usage. It also adds the ApplyLicense() method for convenient SDK activation through SpireToken Key, supports custom AI models with compatibility for Anthropic protocol models, and improves overall stability, responsiveness, and user experience. More details are listed below.
Here is a list of changes made in this release
| Category | Description |
| New Feature | Added support for .NET Standard 2.1, enabling seamless cross-platform usage. |
| New Feature | Added the ApplyLicense() method, allowing users to activate and use all SDK features conveniently through a SpireToken Key. |
| New Feature | Added support for custom AI models compatible with the Anthropic protocol. |
| Optimization | Improved Token error messages and waiting status descriptions. |
| Optimization | Optimized stability and response speed. |
| Bug Fix | Fixed an issue where timeout configurations did not take effect. |
Spire.Presentation 11.8.4 enhances the conversion from PPTX to PDF
We’re pleased to announce the release of Spire.Presentation for .NET 11.8.4. This update mainly resolves multiple rendering and export defects encountered during PPTX-to-PDF conversion, delivering more stable, accurate and visually consistent document conversion results. More details are as follows.
Here is a list of changes made in this release
| Category | ID | Description |
| Bug Fix | SPIREPPT-3087 | Fixes the issue where black boxes appear when converting PowerPoint documents to PDF. |
| Bug Fix | SPIREPPT-3107 | Fixes the issue where attachment names are garbled when converting PowerPoint documents to PDF. |
| Bug Fix | SPIREPPT-3170 | Fixes the issue where part of the text is covered when converting PowerPoint documents to PDF. |
| Bug Fix | SPIREPPT-3184 | Fixes the issue where some shapes are converted to NULL when calling SaveAsSvgInSlide to convert shapes to SVG. |
Spire.XLS 16.8.2 adds support for the TEXTSPLIT formula
We're pleased to announce the release of Spire.XLS 16.8.2. This version adds support for the TEXTSPLIT formula and fixes several known issues related to OFD stream saving, mixed-type data export, and formula calculation. More details are listed below.
Here is a list of changes made in this release
| Category | ID | Description |
| New Feature | SPIREXLS-6201 | Added support for the TEXTSPLIT formula.
sheet.getCellRange("A8").setFormula("=TEXTSPLIT(\"A,B,C\", \",\")");
|
| Bug Fix | SPIREXLS-6193 | Fixed an issue where the file content was corrupted when saving to an OFD stream. |
| Bug Fix | SPIREXLS-6194 | Fixed an issue where data was lost due to incorrect type inference when exporting mixed-type columns with KeepDataType enabled. |
| Bug Fix | SPIREXLS-6198 | Fixed an issue where formula calculation with CalculateAllValue returned "N/A" errors. |
Spire.PDF for Java 12.8.6 enhances the conversion from PDF to Word
We're pleased to announce the release of Spire.PDF for Java 12.8.6. This version mainly enhances the conversion from PDF to Word. Details are listed below.
Here is a list of changes made in this release
| Category | ID | Description |
| Bug Fix | - | Optimized PDF to Word conversion effects. |
Spire.PDF 12.8.3 fixes PDF conversion and text extraction issues
We’re pleased to announce the release of Spire.PDF 12.8.3. This version fixes several issues, including an exception that occurred when converting PDF files to images and overlapping characters when extracting text from PDF files. More details are listed below.
Here is a list of changes made in this release
| Category | ID | Description |
| Bug Fix | SPIREPDF-8114 | Fixed an issue where the program threw a “System.InvalidOperationException: can not convert to rectangle” error when converting PDF to images. |
| Bug Fix | SPIREPDF-8131 | Fixed an issue where characters overlapped when extracting text from PDF files. |
Spire.Presentation 11.8.2 enhances the conversion from PPTX to PDF
We’re pleased to announce the release of Spire.Presentation for .NET 11.8.2. This update mainly fixes the issues that occurred when convert PPTX to PDF and SVG. More details are as follows.
Here is a list of changes made in this release
| Category | ID | Description |
| Bug Fix | SPIREPPT-3090 SPIREPPT-3115 | Fixed the issue where the content was inconsistent when converting PPTX to PDF. |
| Bug Fix | SPIREPPT-3146 | Fixed the issue where text content was rendered as <path> tags when converting PPTX to SVG. |
| Bug Fix | SPIREPPT-3158 | Fixed the issue where the content was incorrect when exporting shapes to SVG in PPTX. |