Friday, 29 May 2026 08:25

Spire.Office 11.5.0 is released

We’re pleased to announce the release of Spire.Office 11.5.0. In this version, Spire.Doc enhances Word to PDF conversion. Spire.XLS enhances the conversion from Excel to EMF. Spire.Presentation adds support for saving PPTX to video. Spire.PDF adds support for SHA-2 and SHA-256 digital signature algorithms. Moreover, a large number of known bugs has been fixed successfully in this version.

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

DLL Versions:

  • Spire.Doc.dll v14.5.14
  • Spire.Pdf.dll v12.5.8
  • Spire.XLS.dll v16.5.6
  • Spire.Presentation.dll v11.5.1
  • Spire.Barcode.dll v7.5.0
  • Spire.Email.dll v6.8.0
  • Spire.DocViewer.Forms.dll v8.9.5
  • Spire.PdfViewer.Asp.dll v8.2.13
  • Spire.PdfViewer.Forms.dll v8.2.13
  • Spire.Spreadsheet.dll v7.5.3
  • Spire.OfficeViewer.Forms.dll v8.8.1
Click the link to get the version Spire.Office 11.5.0:
More information of Spire.Office new release or hotfix:

Here is a list of changes made in this release

Spre.doc

Category ID Description
Bug Fix SPIREDOC-10767 Fixed an issue where a “NullReferenceException” was thrown when using FixedLayoutPage.Section.
Bug Fix SPIREDOC-10826 Fixed an issue where a “NullReferenceException” was thrown when using FixedLayoutDocument.GetLayoutEntitiesOfNode().
Bug Fix SPIREDOC-11425 Fixed an issue with incorrect font effects when converting Word to PDF.
Bug Fix SPIREDOC-11845 Fixed an issue with incorrect value retrieval for IF fields.
Bug Fix SPIREDOC-11855 Fixed an issue with inconsistent table layout when converting Word to PDF.
Bug Fix SPIREDOC-11858 Fixed an issue where an “Arg_NullReferenceException” was thrown when converting Word to PDF.
Bug Fix SPIREDOC-11859 Fixed an issue where a “System.InvalidOperationException” was thrown when removing fields and saving Word to PDF.
Bug Fix SPIREDOC-11897 Fixed an issue where loading Word documents failed with “Value cannot be null. Arg_ParamName_Name”.
Bug Fix SPIREDOC-11898 Fixed an issue with inconsistent pagination when converting Word to PDF.
Bug Fix SPIREDOC-11902 Fixed an issue where a “NullReferenceException” was thrown when replacing bookmarks.
Bug Fix SPIREDOC-11942 Fixed an issue where incorrect pages were extracted using ExtractPages(0,1).

Spre.XLS

Category ID Description
Bug Fix SPIREXLS-6129 Fixed the issue where a "GDI+" exception was thrown when converting Excel files to EMF format.
Bug Fix SPIREXLS-6130 Fixed the issue where read formula values returned incorrect results.
Bug Fix SPIREXLS-6136 Fixed the issue where formula values were calculated incorrectly.

Spire.Presentation

Category ID Description
Bug Fix SPIREPPT-3105 Fixes the issue where loading PPT format documents threw an exception.
Bug Fix SPIREPPT-3106, SPIREPPT-3119, SPIREPPT-3121, SPIREPPT-3123 Fixes the issue where converting PowerPoint to PDF resulted in incorrect rendering.
Bug Fix SPIREPPT-3114 Fixes the issue where shapes became blank when converted to SVG.
Bug Fix SPIREPPT-3116 Fixes the issue where retrieving images from PowerPoint documents threw a "Parameter is not valid" exception.
Bug Fix SPIREPPT-3122 Fixes the issue where images were missing after converting PowerPoint to PDF.

Spire.PDF

Category ID Description
New Feature SPIREPDF-4878 Added support for SHA-2 and SHA-256 hash algorithms in digital signatures.
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile(inputFile);

X509Certificate2 cert = new X509Certificate2(inputFile_pfx, "e-iceblue");
IPdfSignatureFormatter formatter = new PdfPKCS7Formatter(cert, false);
PdfMDPSignatureMaker pdfMDPSignatureMaker = new PdfMDPSignatureMaker(pdf, formatter);
PdfSignature signature = pdfMDPSignatureMaker.Signature;
signature.Name = "e-iceblue";
signature.ContactInfo = "028-81705109";
signature.Location = "chengdu";
signature.Reason = " this document";

PdfSignatureAppearance appearance = new PdfSignatureAppearance(signature);
appearance.NameLabel = "Signer: ";
appearance.ContactInfoLabel = "ContactInfo: ";
appearance.LocationLabel = "Loaction: ";
appearance.ReasonLabel = "Reason: ";
pdfMDPSignatureMaker.MakeSignature("signName", pdf.Pages[0], 100, 100, 250, 200, appearance);
foreach (HashAlgorithmType hashAlgorithmType in Enum.GetValues(typeof(HashAlgorithmType)))
{
    if (string.Equals(hashAlgorithmType.ToString(), "SM3", StringComparison.OrdinalIgnoreCase))
    {
        continue;
    }
    //default value of HashAlgorithm is SHA256
    formatter.Properties.HashAlgorithm = hashAlgorithmType;
    try
    {
        pdf.SaveToFile( "out.pdf", FileFormat.PDF);
    }
    catch (Exception ex)
    {
        Console.WriteLine($"error:{ex.Message}");
    }
}
pdf.Dispose();
Bug Fix SPIREPDF-8016 Fixed an issue with content loss when printing PDF documents.
Bug Fix SPIREPDF-8017 Fixed an issue where an "ArgumentException" was thrown when converting PDF to images.
Bug Fix SPIREPDF-8026 Fixed an issue where "Object reference not set to an instance of an object" was thrown when merging PDF documents.
Bug Fix SPIREPDF-8031 Fixed an issue where the retrieved font was incorrect after filling PdfTextBoxField content with a specified font.
Bug Fix SPIREPDF-8042 Fixed an issue where an "IndexOutOfRangeException" was thrown when saving the result document while overwriting the source file.
Bug Fix SPIREPDF-8027 Fixes the issue where the program threw an "Index was outside the bounds of the array" exception during PDF to image conversion.
Bug Fix SPIREPDF-8032 Fixes the issue where characters were duplicated when extracting text from PDF pages.

We’re pleased to announce the release of Spire.OfficeJS 11.5.7. This update adds a new Linux (Arm64) deployment package, providing broader platform compatibility for modern server environments. In addition, Spire.OfficeJS now supports mobile document opening and collaborative editing through the "coAuthorUrl" configuration. These enhancements further improve the flexibility and usability of Spire.OfficeJS for online office applications. More details are as follows.

Here is a list of changes made in this release

Category ID Description
New Feature - Added "Spire.OfficeJS for Linux (Arm64)" package to support Linux Arm64 environment.
New Feature - Added "Open Document" functionality under the "File" menu in the editor.
New Feature - Added support for Japanese displaying language, which can be enabled by setting "viewLanguage": "ja".
New Feature - Added support for opening documents on mobile devices.
New Feature - Added support for collaboration features by configuring "coAuthorUrl".
"serverless":
{ "useServerless": true, "baseUrl": "http://127.0.0.1:3000", "coAuthorUrl": "http://127.0.0.1:8000" }
Click the link to download Spire.OfficeJS 11.5.7:
Thursday, 28 May 2026 02:43

Spire.Office for Java 11.5.0 is released

We are excited to announce the release of Spire.Office for Java 11.5.0. In this version, Spire.PDF for Java adds support for PDF conversion progress callback; Spire.Doc for Java adds support for footnote/endnote counting and font embedding option; Spire. Presentation for Java adds support for compressing images. Besides, many issues have been successfully fixed in this version. More details are listed below.

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

Here is a list of changes made in this release

Spire.Doc for Java

Category ID Description
New Feature SPIREDOC-11693 Added support for retrieving the number of footnotes or endnotes.
Document doc = new Document();
        doc.loadFromFile(inputFile);
        StringBuilder sb = new StringBuilder();
        for (int n = 0; n < doc.getSections().getCount(); n++) {
            Section s = doc.getSections().get(n);
            for (int i = 0; i < s.getParagraphs().getCount(); i++) {
                Paragraph para = s.getParagraphs().get(i);
                for (int j = 0, cnt = para.getChildObjects().getCount(); j < cnt; j++) {
                    ParagraphBase pBase = (ParagraphBase) para.getChildObjects().get(j);
                    if (pBase instanceof Footnote) {
                        Footnote fn = (Footnote) pBase;
                        if (fn.getFootnoteType() == FootnoteType.Footnote) {
                            StringBuilder fnText = new StringBuilder();
                            for (int k = 0; k < fn.getTextBody().getParagraphs().getCount(); k++) {
                                fnText.append(fn.getTextBody().getParagraphs().get(k).getText());
                            }
                            sb.append("Footnote:"+ fnText.toString() + "\nFootnoteID:" + fn.getId() + "\n");
                        }
                        if (fn.getFootnoteType() == FootnoteType.Endnote) {
                            StringBuilder enText = new StringBuilder();
                            for (int k = 0; k < fn.getTextBody().getParagraphs().getCount(); k++) {
                                enText.append(fn.getTextBody().getParagraphs().get(k).getText());
                            }
                            sb.append("Endnote:"+ enText.toString() + "\nEndnoteID:" + fn.getId() + "\n");
                        }
                    }
                }
            }
        }
New Feature SPIREDOC-11878 Added support for the “Embed only characters used in the document” setting.
doc.setEmbedFontsInFile(true);
doc.setSaveSubsetFonts(true);
Bug Fix SPIREDOC-11829 Fixed an issue with inconsistent formatting when converting Word to PDF.
Bug Fix SPIREDOC-11899 Fixed an issue with blurry images when converting Word to PDF.

Spire.PDF for Java

Category ID Description
New Feature SPIREPDF-8044 Added support for progress callback when converting PDF documents.
class CustomProgressNotifier implements IProgressNotifier {
    StringBuilder str = new StringBuilder();
    private String outputFile;

    public CustomProgressNotifier(String outputFile) {
        this.outputFile = outputFile;
    }

    @Override
    public void notify(float progress) {
        str.append("==============Progress: ").append(progress).append("%==============\n");
        try {
            Files.writeString(Paths.get(outputFile), str.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

//using 
PdfDocument pdf=new PdfDocument();
pdf.loadFromFile("test.pdf");
pdf.registerProgressNotifier(new CustomProgressNotifier("Progress.txt"));
pdf.saveToFile("out.docx", FileFormat.DOCX);
pdf.dispose();
Bug Fix SPIREPDF-7642 Fixed issue with content inconsistency when converting SVG to PDF.
Bug Fix SPIREPDF-7683 Fixed issue with incorrect validation results of digital signatures.

Spire.Presentation for Java

Category ID Description
New Feature SPIREPPT-3082 Added support for compressing images.
Presentation presentation = new Presentation();
presentation.loadFromFile(inputFile);

SlideCollection slides = presentation.getSlides();
for (int i = 0; i < slides.getCount(); i++) {
    ISlide slide = slides.get(i);
    ShapeCollection shapes = slide.getShapes();

    for (int j = 0; j < shapes.getCount(); j++) {
        IShape shape = shapes.get(j);

        if (shape instanceof SlidePicture) {
        SlidePicture slidepicture = (SlidePicture) shape;
        // The smaller the value, the greater the compression
        boolean result = slidepicture.getPictureFill().getCompressImage( true,  50f);
        }
    }
 }
Bug Fix SPIREPPT-3093 Fixed the issue where the background color was incorrect when converting PowerPoint to PDF.

We’re pleased to announce the release of Spire.Doc 14.5.14. This version enhances Word to PDF conversion and fixes several issues, including layout inconsistencies, font rendering problems, and multiple exceptions occurring during document processing. More details are listed below.

Here is a list of changes made in this release

Category ID Description
Bug Fix SPIREDOC-10767 Fixed an issue where a “NullReferenceException” was thrown when using FixedLayoutPage.Section.
Bug Fix SPIREDOC-10826 Fixed an issue where a “NullReferenceException” was thrown when using FixedLayoutDocument.GetLayoutEntitiesOfNode().
Bug Fix SPIREDOC-11425 Fixed an issue with incorrect font effects when converting Word to PDF.
Bug Fix SPIREDOC-11845 Fixed an issue with incorrect value retrieval for IF fields.
Bug Fix SPIREDOC-11855 Fixed an issue with inconsistent table layout when converting Word to PDF.
Bug Fix SPIREDOC-11858 Fixed an issue where an “Arg_NullReferenceException” was thrown when converting Word to PDF.
Bug Fix SPIREDOC-11859 Fixed an issue where a “System.InvalidOperationException” was thrown when removing fields and saving Word to PDF.
Bug Fix SPIREDOC-11897 Fixed an issue where loading Word documents failed with “Value cannot be null. Arg_ParamName_Name”.
Bug Fix SPIREDOC-11898 Fixed an issue with inconsistent pagination when converting Word to PDF.
Bug Fix SPIREDOC-11902 Fixed an issue where a “NullReferenceException” was thrown when replacing bookmarks.
Bug Fix SPIREDOC-11942 Fixed an issue where incorrect pages were extracted using ExtractPages(0,1).
Click the link below to download Spire.Doc 14.5.14:
More information of Spire.Doc new release or hotfix:

We are pleased to announce the release of Spire.Presentation for Java 11.5.1. This version adds a new feature to compress images and also fixes an issue while converting PowerPoint to PDF. Details are listed below.

Here is a list of changes made in this release

Category ID Description
New Feature SPIREPPT-3082 Added support for compressing images.
Presentation presentation = new Presentation();
presentation.loadFromFile(inputFile);

SlideCollection slides = presentation.getSlides();
for (int i = 0; i < slides.getCount(); i++) {
    ISlide slide = slides.get(i);
    ShapeCollection shapes = slide.getShapes();

    for (int j = 0; j < shapes.getCount(); j++) {
        IShape shape = shapes.get(j);

        if (shape instanceof SlidePicture) {
        SlidePicture slidepicture = (SlidePicture) shape;
        // The smaller the value, the greater the compression
        boolean result = slidepicture.getPictureFill().getCompressImage( true,  50f);
        }
    }
 }
Bug Fix SPIREPPT-3093 Fixed the issue where the background color was incorrect when converting PowerPoint to PDF.
Click the link below to download Spire.Presentation for Java 11.5.1:

We’re pleased to announce the release of Spire.Doc for Java 14.5.3. This version adds support for retrieving the number of footnotes or endnotes, as well as the “Embed only characters used in the document” setting. It also fixes several issues related to Word-to-PDF conversion, including inconsistent formatting and blurry images. More details are listed below.

Here is a list of changes made in this release

Category ID Description
New Feature SPIREDOC-11693 Added support for retrieving the number of footnotes or endnotes.
Document doc = new Document();
        doc.loadFromFile(inputFile);
        StringBuilder sb = new StringBuilder();
        for (int n = 0; n < doc.getSections().getCount(); n++) {
            Section s = doc.getSections().get(n);
            for (int i = 0; i < s.getParagraphs().getCount(); i++) {
                Paragraph para = s.getParagraphs().get(i);
                for (int j = 0, cnt = para.getChildObjects().getCount(); j < cnt; j++) {
                    ParagraphBase pBase = (ParagraphBase) para.getChildObjects().get(j);
                    if (pBase instanceof Footnote) {
                        Footnote fn = (Footnote) pBase;
                        if (fn.getFootnoteType() == FootnoteType.Footnote) {
                            StringBuilder fnText = new StringBuilder();
                            for (int k = 0; k < fn.getTextBody().getParagraphs().getCount(); k++) {
                                fnText.append(fn.getTextBody().getParagraphs().get(k).getText());
                            }
                            sb.append("Footnote:"+ fnText.toString() + "\nFootnoteID:" + fn.getId() + "\n");
                        }
                        if (fn.getFootnoteType() == FootnoteType.Endnote) {
                            StringBuilder enText = new StringBuilder();
                            for (int k = 0; k < fn.getTextBody().getParagraphs().getCount(); k++) {
                                enText.append(fn.getTextBody().getParagraphs().get(k).getText());
                            }
                            sb.append("Endnote:"+ enText.toString() + "\nEndnoteID:" + fn.getId() + "\n");
                        }
                    }
                }
            }
        }
New Feature SPIREDOC-11878 Added support for the “Embed only characters used in the document” setting.
doc.setEmbedFontsInFile(true);
doc.setSaveSubsetFonts(true);
Bug Fix SPIREDOC-11829 Fixed an issue with inconsistent formatting when converting Word to PDF.
Bug Fix SPIREDOC-11899 Fixed an issue with blurry images when converting Word to PDF.
Click the link below to download Spire.Doc for Java 14.5.3:

We're pleased to announce the release of Spire.PDF 12.5.8. This version optimizes the conversion from PDF to image. Meanwhile, some issues that occurred when extracting text from PDF pages 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-8027 Fixes the issue where the program threw an "Index was outside the bounds of the array" exception during PDF to image conversion.
Bug Fix SPIREPDF-8032 Fixes the issue where characters were duplicated when extracting text from PDF pages.
Click the link below to download Spire.PDF 12.5.8:
More information of Spire.PDF new release or hotfix:

We are excited to announce the release of Spire.Office for Python 11.5.0. This version introduces several powerful enhancements: Spire.Doc can now convert Word documents to Excel, Spire.PDF allows specifying text color when replacing content, Spire.XLS enables seamless conversion between Markdown and Excel, and Spire.OCR integrates with AI models to improve accuracy and enhance text recognition in images. In addition, all core components (except Spire.OCR) now offer universal support for macOS ARM.
Alongside these new features, numerous known issues related to converting, processing, and saving Word, Excel, PDF, and PowerPoint files have been resolved, delivering a more stable and reliable experience. More details are provided below.

Click the link to download Spire.Office for Python 11.5.0:

Here is a list of changes made in this release

Spire.Doc for Python

Category ID Description
Optimization - Chart namespace updated:
// Old import (deprecated):
from spire.doc.charts import ChartType

// New import (use this):
from spire.doc.charts.ChartType import ChartType
New Feature - The Bookmark class now includes FirstColumn and LastColumn properties to retrieve the starting and ending column indices of a bookmark within a table.
doc = Document()
doc.LoadFromFile(inputFile)
firstColumn = doc.Bookmarks["t_insert"].FirstColumn
lastColumn = doc.Bookmarks["t_insert"].LastColumn
New Feature - The TableFormat class now supports Style, StyleOptions, and StyleName properties for managing table styles.
doc = Document()
tableStyle = doc.Styles.Add(StyleType.TableStyle, "TestTableStyle3")
tableStyle.LeftIndent = 55
tableStyle.Borders.Color = Color.get_Green()
tableStyle.HorizontalAlignment = RowAlignment.Right
tableStyle.Borders.BorderType = BorderStyle.Single

section = doc.AddSection()
table = section.AddTable()
table.ResetCells(3, 3)
table.Rows[0].Cells[0].AddParagraph().AppendText("Aligned according to left indent")
table.PreferredWidth = PreferredWidth.FromPoints(300)
table.Format.StyleName = "TestTableStyle3"

style = doc.Styles.FindByName("TestTableStyle3")
if (style is not None) and isinstance(style, TableStyle):
tableStyle = style
tableStyle.Borders.Color = Color.get_Black()
tableStyle.Borders.BorderType = BorderStyle.Double
tableStyle.RowStripe = 3
    tableStyle.ConditionalStyles[TableConditionalStyleType.OddRowStripe].Shading.BackgroundPatternColor = Color.get_LightBlue()
           tableStyle.ConditionalStyles[TableConditionalStyleType.EvenRowStripe].Shading.BackgroundPatternColor = Color.get_LightCyan()
tableStyle.ColumnStripe = 1
            tableStyle.ConditionalStyles[TableConditionalStyleType.EvenColumnStripe].Shading.BackgroundPatternColor = Color.get_LightPink()
table.ApplyStyle(tableStyle)
table.Format.StyleOptions = table.Format.StyleOptions | TableStyleOptions.ColumnStripe

doc.SaveToFile(outputFile, FileFormat.Docx)
New Feature - The Style class now includes a RemoveSelf method to remove the style from the document.
style = doc.Styles.FindByName("TestTableStyle3")
style.RemoveSelf()
New Feature - Enhanced the Document class with features including page extraction (ExtractPages), first-section access (FirstSection), and support for hyphenation dictionary registration/unregistration (RegisterHyphenationDictionary, UnregisterHyphenationDictionary, IsHyphenationDictionaryRegistered).
New Feature SPIREDOC-10777 Added support for macOS on ARM architecture.
New Feature SPIREDOC-10770 Added support for converting MHTML to PDF.
document = Document()
document.LoadFromFile(“input.mhtml”)
document.SaveToFile(“output.pdf”, FileFormat.PDF)
document.Close()
New Feature SPIREDOC-11793 Added support for exporting Word mathematical formulas as standard MathML to ensure correct rendering in HTML.
HtmlExportOptions options = doc.HtmlExportOptions;
 options.OfficeMathOutputMode = HtmlOfficeMathOutputMode.MathML; 
New Feature SPIREDOC-11872 Added support for converting Word to Excel.
document = Document()
document.LoadFromFile(“input.docx”)
document.SaveToFile(“output.xlsx”, FileFormat.XLSX)
document.Close()
Bug Fix SPIREDOC-11668 Fixed an issue where enabling track changes and replacing text produced incorrect results.
Bug Fix SPIREDOC-11594 Fixed an issue where retrieving document properties in a Python v3.14 environment caused a “NotImplementedError” exception.
Bug Fix SPIREDOC-11602 Fixed an issue where setting CharacterFormat.FontSize on macOS caused a “RuntimeError: ffi_prep_cif_var failed” exception.
Bug Fix SPIREDOC-11701 Fixed an issue where the program threw an exception when adding a series to a chart.
Bug Fix SPIREDOC-11832 Fixed an issue where adding a digital signature failed when converting Word to PDF.

Spire.XLS for Python

Category ID Description
New feature SPIREXLS-5183 Added support for macOS on ARM architecture.
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-5970 Fixes the issue where copied OLE objects displayed incorrectly in WPS.
Bug Fix SPIREXLS-6011 Fixes the issue where deleting macros did not work correctly.
Bug Fix SPIREXLS-6012 Fixes the issue where no error message was shown for the incorrect setting workbook.ConverterSetting.Xdpi (should be XDpi).
Bug Fix SPIREXLS-6026 Fixes the issue where converting text-formatted values to number format failed.
Bug Fix SPIREXLS-6032 Fixes the issue where saving an Excel document to EMF threw an exception.
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.
Bug Fix SPIREXLS-6095 Fixed the issue where wrapping text in a Pivot table cell didn’t work.
Bug Fix SPIREXLS-6127 Corrected the enumeration class name from SortComparsionType to SortComparisonType.

Spire.Presentation for Python

Category ID Description
New feature SPIREPPT-3037 Added support for macOS on ARM architecture.
Bug Fix SPIREPPT-2859
SPIREPPT-3052
Fixed the issue where "ffi_prep_cif_var failed" error was thrown when using Python V12+ on macOS.
Bug Fix SPIREPPT-3028 Fixed the issue where incorrect SVG effects occurred when importing using AddFromSVGAsShapes.
Bug Fix SPIREPPT-3046
SPIREPPT-3053
Fixed the issue where inconsistent chart content was found when converting PPTX to PDF.
Bug Fix SPIREPPT-3054 Fixed the issue where charts were missing when converting PPTX to PDF.
Bug Fix SPIREPPT-3037 Fixed the issue of content loss when converting PPT to images.
Bug Fix SPIREPPT-3080 Fixed an issue where the program would hang when converting PowerPoint documents to images.

Spire.PDF for Python

Category ID Description
New feature SPIREPDF-7000 SPIREPDF-7698 Added support for customizing signature appearance via the PdfCustomAppearance class.
class MyPdfCustomAppearance(IPdfSignatureAppearance):
    def __init__(self):
        pass

    def Generate(self, g: PdfCanvas):
        x = 0.0
        y = 0.0
        fontSize = 10.0
        font = PdfTrueTypeFont("SimSun", fontSize, PdfFontStyle.Regular, True)
        lineHeight = fontSize
        image = PdfImage.FromFile(inputImage)
        g.DrawImage(image, x, y)
        x = float(image.Width)
        g.DrawString("Signer: Gary", font, PdfBrushes.get_Red(), PointF(x, y))
        y += lineHeight + 5
        g.DrawString("Phone: +86 12345678", font, PdfBrushes.get_Black(), PointF(x, y))
        y += lineHeight + 5
        g.DrawString("Address: Sichuan Province, China", font, PdfBrushes.get_Black(), PointF(x, y))

doc = PdfDocument()
doc.LoadFromFile(inputFile)
signatureMaker = PdfOrdinarySignatureMaker(doc, inputFile_pfx, "e-iceblue")
my_appearance = MyPdfCustomAppearance()
customAppearance = PdfCustomAppearance(my_appearance)
signatureMaker.MakeSignature("Signer", doc.Pages.get_Item(0), 90.0, 550.0, 270.0, 640.0, customAppearance)
doc.SaveToFile(outputFile)
New feature SPIREPDF-7053 Added support for retrieving font style information of extracted text.
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(inputFile);
// Define a rectangle
RectangleF rctg = new RectangleF(0, 0, 200, 300);
var page = doc.Pages[0];
PdfTextFinder finder = new PdfTextFinder(page);
finder.Options.Parameter = TextFindParameter.None;
finder.Options.Area = rctg;
// Find text within the rectangle
List<PdfTextFragment> findouts = finder.FindAllText();            
StringBuilder sb = new StringBuilder();
foreach (PdfTextFragment find in findouts)
{
    sb.AppendLine(find.Text);
    sb.AppendLine(find.TextStates[0].FontName);
    sb.AppendLine(find.TextStates[0].FontSize.ToString("F2"));
}
File.WriteAllText(outputFile, sb.ToString());
New Feature SPIREPDF-7558 Completed compatibility support for Mac M-series chips (ARM64 architecture)
New Feature SPIREPDF-7907 Added a color parameter overload to the ReplaceText interface.
textReplacer.ReplaceText("Text", "Replace", Color.get_Blue())
Bug Fix SPIREPDF-6659 Fixed an issue where text replacement produced incorrect results.
Bug Fix SPIREPDF-7483 Fixed an issue that the “ffi_prep_cif_var failed” error occurred when running certain Python features on macOS.
Bug Fix SPIREPDF-7819 SPIREPDF-7821 SPIREPDF-7822 Fixed an issue where content copied from a PDF/A-2B compliant document (converted from PDF) was incorrect.
Bug Fix SPIREPDF-7864 Fixed an issue where setting a color during text replacement did not take effect as expected.

Spire.Barcode for Python

Category ID Description
New feature - Added support for macOS on ARM architecture.

Spire.OCR for Python

Category ID Description
New Feature - Added support for integration of AI models into Spire.OCR. (Note: Users need to obtain an API Key from the AI platform on their own.)
def _run_ai_test(self):
    filename = "1.png"
    output_file = "scan.txt"
    file_path = r"F:\3.3.0AI\AI\ocr.xml"
    model = "AIModel"
    api_key = "ApiKey"
    api_url = "ApiUrl"
    self._update_ocr_config(file_path, model, api_key, api_url)
    self._scan_img(filename, output_file)


def _scan_img(self, filename, output_file):
    scanner = OcrScanner()
    configure_options = ConfigureOptions()
    configure_options.ModelPath = r"F:\3.3.0AI\AI"
    configure_options.Language = "Japanese"
    scanner.ConfigureDependencies(configure_options)
    scanner.Scan(filename)

    text = scanner.Text.ToString()
    with open(output_file, "w", encoding="utf-8") as f:
        f.write(text)


def _update_ocr_config(self, file_path, model, api_key, api_url):
    tree = ET.parse(file_path)
    root = tree.getroot()

    model_node = root.find('./configs/model')
    api_key_node = root.find('./configs/apiKey')
    api_url_node = root.find('./configs/apiUrl')

    if model_node is not None:
        model_node.text = model
    if api_key_node is not None:
        api_key_node.text = api_key
    if api_url_node is not None:
        api_url_node.text = api_url

    tree.write(file_path, encoding='utf-8', xml_declaration=True)
    print("XML updated successfully!")

We're pleased to announce the release of Spire.PDF for Java 12.5.1. This version adds support for progress callback when converting PDF. It also fixes several issues, including content inconsistency when converting SVG to PDF. More details are listed below.

Here is a list of changes made in this release

Category ID Description
New Feature SPIREPDF-8044 Added support for progress callback when converting PDF documents.
class CustomProgressNotifier implements IProgressNotifier {
    StringBuilder str = new StringBuilder();
    private String outputFile;

    public CustomProgressNotifier(String outputFile) {
        this.outputFile = outputFile;
    }

    @Override
    public void notify(float progress) {
        str.append("==============Progress: ").append(progress).append("%==============\n");
        try {
            Files.writeString(Paths.get(outputFile), str.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

//using 
PdfDocument pdf=new PdfDocument();
pdf.loadFromFile("test.pdf");
pdf.registerProgressNotifier(new CustomProgressNotifier("Progress.txt"));
pdf.saveToFile("out.docx", FileFormat.DOCX);
pdf.dispose();
Bug Fix SPIREPDF-7642 Fixed issue with content inconsistency when converting SVG to PDF.
Bug Fix SPIREPDF-7683 Fixed issue with incorrect validation results of digital signatures.
Click the link below to download Spire.PDF for Java 12.5.1:

We're pleased to announce the release of Spire.XLS 16.5.6. This version enhances the conversion from Excel to EMF, and also fixes two issues that occurred when reading and calculating formulas. More details are shown below.

Here is a list of changes made in this release

Category ID Description
Bug Fix SPIREXLS-6129 Fixed the issue where a "GDI+" exception was thrown when converting Excel files to EMF format.
Bug Fix SPIREXLS-6130 Fixed the issue where read formula values returned incorrect results.
Bug Fix SPIREXLS-6136 Fixed the issue where formula values were calculated incorrectly.
Click the link to download Spire.XLS 16.5.6:
More information of Spire.XLS new release or hotfix:
Page 1 of 20