Spire.Office 8.11.0 is released

2023-11-23 06:16:00

We are happy to announce the release of Spire.Office 8.11.0. In this version, Spire.PDF supports getting the text coordinates of multi-column text in reading order; Spire.Doc adds the feature of text formatting when converting Word to PDF; Spire.XLS supports customizing the names of pivot table fields; Spire.Presentation supports getting location information of the text within shapes. 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.Email, Spire.DocViewer, Spire.PDFViewer, Spire.Spreadsheet, Spire.OfficeViewer, Spire.DataExport, Spire.Barcode are included.

DLL Versions:

  • Spire.Doc.dll v11.10.11
  • Spire.Pdf.dll v9.10.2
  • Spire.XLS.dll v13.10.3
  • Spire.Presentation.dll v8.10.3
  • Spire.Email.dll v6.5.8
  • Spire.DocViewer.Forms.dll v8.7.3
  • Spire.PdfViewer.Forms.dll v7.12.1
  • Spire.PdfViewer.Asp.dll v7.12.1
  • Spire.Spreadsheet.dll v7.4.3
  • Spire.OfficeViewer.Forms.dll v8.10.2
  • Spire.Barcode.dll v7.2.3
  • Spire.DataExport.dll v4.9.0
  • Spire.DataExport.ResourceMgr.dll v2.1.0
Click the link to get the version Spire.Office 8.11.0:
More information of Spire.Office new release or hotfix:

Here is a list of changes made in this release

Spire.PDF

Category ID Description
New feature SPIREPDF-6153 Supports getting the text coordinates of multi-column text in reading order.
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(input);
PdfPageBase pdfPageBase = doc.Pages[0];
PdfTextFinder finder = new PdfTextFinder(pdfPageBase);
finder.Options.Strategy = PdfTextStrategy.Simple;
New feature SPIREPDF-6264 Supports setting the HorizontalScalingFactor property for PdfStringFormat.
PdfDocument doc = new PdfDocument();
PdfPageBase page = doc.Pages.Add();
string text = "Please add the code picture BehindText=true to set the picture behind text";
PdfSolidBrush solidBrush = new PdfSolidBrush (new PdfRGBColor(Color.Black));
PdfStringFormat format = new PdfStringFormat():
format.HorizontalScalingFactor = 80;
PdfFont font = new PdfFont(PdfFontFamily.TimesRoman, 14f, PdfFontStyle.Regular);
PdfGraphicsState state = page.Canvas.Save();
page.Canvas.DrawString(text, font, solidBrush, 0, 0, format);
page.Canvas.Restore(state):
doc.SaveToFile(outputFile);
doc.Close();
New feature SPIREPDF-6285 Support setting whether to allow conversion when converting the PDF with permission password.
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(inputFile);
doc.ConvertOptions.ApplyPermissionsOptions(true);
StringBuilder sb = new StringBuilder();
    foreach (FileFormat type in Enum.GetValues(typeof(FileFormat)))
        {
            try
                {
                    if (type.ToString().Equals("PDF"))
                    {
                        doc.SaveToFile(outputFile_P, type);
                    }
                    else
                    {
                        doc.SaveToFile(outputFile, type);
                    }
                }
                catch (Exception ex)
                {
                    sb.AppendLine("save to: "+ type +"  :"+ ex.Message);
                }
            }
File.AppendAllText(outputFile,sb.ToString());
doc.Dispose();
Bug SPIREPDF-5579 Fixes the issue that the extracted table data was not formatted correctly.
Bug SPIREPDF-6089 Fixes the issue that the output result was incorrect after setting cell spacing for a table.
Bug SPIREPDF-6244 Fixes the issue that filling the form fields of XFA's text box failed .
Bug SPIREPDF-6262 Fixes the issue that the program threw "System.IO.IOExceptions:Stream was too long" exception when merging PDF files.
Bug SPIREPDF-6268 Fixes the issue that fonts were applied incorrectly after filling the textbox field.
Bug SPIREPDF-6284 Fixes the issue that no permission password was requested when converting PDF with permission password to Word.
Bug SPIREPDF-6292 Fixes the issue that the program threw "System.NullReferenceException" exception when converting OFD to PDF files.
Bug SPIREPDF-6303 Fixes the issue that "new PdfGoToAction(partBookmarkDest)" did not work.

Spire.Doc

Category ID Description
New feature - Adds the feature of text formatting when converting Word to PDF (mainly for handling Thai characters and Tibetan characters), and supports for .NET 4.6.2 and above, .NET Core, and .NET Standard platforms.
Document doc = new Document();
doc.LoadFromFile(fileName);
doc.LayoutOptions.UseHarfBuzzTextShaper = true;
doc.SaveToFile(pdfFileName, Spire.Doc.FileFormat.PDF)
Bug SPIREDOC-9831 Fixes the issue that Thai characters were not aligned and wrapped when converting Word to PDF.

Spire.XLS

Category ID Description
New feature SPIREXLS-4907 Improves the efficiency of Excel to PDF conversion.
New feature SPIREXLS-4857 Supports customizing the names of pivot table fields.
sheet.PivotTables[0].RowFields[0].CustomName = "rowName";
sheet.PivotTables[0].ColumnFields[0].CustomName = "colName";
sheet.PivotTables[0].PivotFields[0].CustomName = "fieldName1";
sheet.PivotTables[0].DataFields[0].CustomName = "dataName";
Bug SPIREXLS-4883 Fixes the issue that the position of images changed after converting Excel to HTML.
Bug SPIREXLS-4897 Fixes the issue that deleted annotations were not successfully removed from the document.
Bug SPIREXLS-4909 Fixes the issue that the program threw System.OverflowException exception when reading Excel documents.

Spire.Presentation

Category ID Description
New feature SPIREPPT-2324 Supported the functionality to obtain the text position information within a shape.
Presentation ppt = new Presentation();
ppt.LoadFromFile(inputFile);
StringBuilder sb = new StringBuilder();
ISlide slide = ppt.Slides[0];
for (int i = 0; i < slide.Shapes.Count; i++)
 {
     IShape shape = slide.Shapes[i];
     if (shape is IAutoShape)
     {
         IAutoShape autoshape = slide.Shapes[i] as IAutoShape;
         string text = autoshape.TextFrame.Text;
         //obtain the text position information
         PointF point = autoshape.TextFrame.GetTextLocation();
         sb.AppendLine("Shape " + i + ":" + text + "\r\n" + "location:" + point.ToString());
     }
}
File.AppendAllText(outputFile, sb.ToString());
ppt.Dispose();
New feature SPIREPPT-2350 Supported the functionality to get the Ascent and Descent properties of text within a Shape.
Presentation ppt = new Presentation();
ppt.LoadFromFile(inputFile);
ISlide slide = ppt.Slides[0];
IAutoShape autoshape = slide.Shapes[0] as IAutoShape;
IList<LineText> lines = autoshape.TextFrame.GetLayoutLines();
for (int i = 0; i < lines.Count; i++)
{
   float ascent= lines[i].Ascent;
   float descent = lines[i].Descent;
}
New feature SPIREPPT-2365 Supported the functionality to convert shapes to SVG format.
Presentation ppt = new Presentation();
ppt.LoadFromFile("FreeForm.pptx");
ISlide slide = ppt.Slides[0];
int num = 0;
foreach (IShape shape in slide.Shapes)
{
    byte[] svgByte = shape.SaveAsSvg();
    FileStream fs = new FileStream("shape_" + num + ".svg",FileMode.Create);
    fs.Write(svgByte, 0, svgByte.Length);
    fs.Close();
    num++;
}
Bug SPIREPPT-2350 Fixed the issue of SVG files appearing blank when opening them in a browser after converting PPT to SVG.