Spire.Office 6.10.3 is released

2021-10-28 09:41:06

We are excited to announce the release of Spire.Office 6.10.3. This version brings some new features, for example, Spire.XLS supports multiple new charts such as Waterfall, Pareto and Histogram; Spire.PDF supports setting document properties when converting PDF to Doc/Docx; Spire.Presentation supports getting the target slide of a hyperlink. Meanwhile, a lot of bugs have been successfully fixed. More details are listed as follows.

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 v9.10.9
  • Spire.Pdf.dll v7.10.4
  • Spire.XLS.dll v11.10.5
  • Spire.Email.dll v4.7.0
  • Spire.DocViewer.Forms.dll v6.8.0
  • Spire.PdfViewer.Forms.dll v6.9.1
  • Spire.PdfViewer.Asp.dll v6.9.1
  • Spire.Presentation.dll v6.10.2
  • Spire.Spreadsheet v5.10.0
  • Spire.OfficeViewer.Forms.dll v6.10.3
  • Spire.Barcode.dll v5.9.4
  • Spire.DataExport.dll v4.1.9
  • Spire.DataExport.ResourceMgr.dll v2.1.0
  • Spire.License.dll v1.4.0
Click the link to get the version Spire.Office 6.10.3:
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-4564 Supports setting document properties when converting PDF to Doc/Docx.
Spire.Pdf.Conversion.PdfToDocConverter doc = new Spire.Pdf.Conversion.PdfToDocConverter(inputFile);
doc.DocxOptions.Title = "PDFTODOCX";
doc.DocxOptions.Subject = "Set document properties.";
doc.DocxOptions.Tags = "Test Tags";
doc.DocxOptions.Categories = "PDF";
doc.DocxOptions.Commments = "This document just for testing the properties";
doc.DocxOptions.Authors = "TEST";
doc.DocxOptions.LastSavedBy = "/E-iceblue";
doc.DocxOptions.Revision = (int)7.9;
doc.DocxOptions.Version = "csharp V4.0";
doc.DocxOptions.ProgramName = "Spire.Pdf for .NET";
doc.DocxOptions.Company = "E-iceblue";
doc.DocxOptions.Manager = "Test";
doc.SaveToDocx(outputFile);
New feature SPIREPDF-4662 Supports creating poly line annotations.
PdfDocument pdf = new PdfDocument();
PdfPageBase page = pdf.Pages.Add();
PdfPolyLineAnnotation polyline = new PdfPolyLineAnnotation(page, new PointF[] { new PointF(0, 60), 
new PointF(30, 45), new PointF(60, 90), new PointF(90, 80) });
polyline.Color = Color.PaleVioletRed;
polyline.Text = "This is a polygon annotation";
polyline.Author = "E-ICEBLUE";
polyline.Subject = "polygon annotation demo";
polyline.Name = "Summer";
polyline.Border = new PdfAnnotationBorder(1f);
polyline.ModifiedDate = DateTime.Now;
page.AnnotationsWidget.Add(polyline);
pdf.SaveToFile(output);
New feature SPIREPDF-914 Supports extracting table.
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile(inputPath);
StringBuilder builder = new StringBuilder();
PdfTableExtractor extractor = new PdfTableExtractor(pdf);
PdfTable[] tableLists = null;
for (int pageIndex = 0; pageIndex  0)
    {
        foreach (PdfTable table in tableLists)
        {
            int row = table.GetRowCount();
            int column = table.GetColumnCount();
            for (int i = 0; i < row; i++)
            {
                for (int j = 0; j < column; j++)
                {
                    string text = table.GetText(i, j);
                    builder.Append(text + " ");
                }
                builder.Append("\r\n");
            }
        }
    }
}
File.WriteAllText(outputFile, builder.ToString());
Bug SPIREPDF-4085 Fixes the issue that finding the specific text failed.
Bug SPIREPDF-4566 Fixes the issue that the content was incorrect when adding SVG to PDF(.NET Core3.0 platform).
Bug SPIREPDF-4657 Fixes the issue that the application threw an error "Parameter is invalid" when printing PDF.
Bug SPIREPDF-4664 Fixes the issue that the content was incorrect when converting PDF to SVG.
Bug SPIREPDF-4668 Fixes the issue that the size of file increased after adding and deleting layers.
Bug SPIREPDF-4689 Fixes the issue that the content was incorrect when printing PDF.
Bug SPIREPDF-4692 Fixes the issue that some columns were hidden when converting PDF to Excel and the system's regional culture is Portuguese.
Bug SPIREPDF-4693
SPIREPDF-4705
Fixes the issue that the application threw NullReferenceException when filling form fields.

Spire.XLS

Category ID Description
New feature - Supports Waterfall, Pareto, Histogram, BoxAndWhisker, TreeMap, SunBurst and Funnel charts.
Workbook workbook = new Workbook();

workbook.LoadFromFile("waterfall_sample.xlsx");
var sheet = workbook.Worksheets[0];
var officeChart = sheet.Charts.Add();
//Set chart type as waterfall
officeChart.ChartType = ExcelChartType.WaterFall;

//Set data range to the chart from the worksheet
officeChart.DataRange = sheet["A2:B8"];

//Data point settings as total in chart
officeChart.Series[0].DataPoints[3].SetAsTotal = true;
officeChart.Series[0].DataPoints[6].SetAsTotal = true;

//Showing the connector lines between data points
officeChart.Series[0].Format.ShowConnectorLines = true;

//Set the chart title
officeChart.ChartTitle = "Company Profit (in USD)";

//Formatting data label and legend option
officeChart.Series[0].DataPoints.DefaultDataPoint.DataLabels.HasValue = true;
officeChart.Series[0].DataPoints.DefaultDataPoint.DataLabels.Size = 8;
officeChart.Legend.Position = LegendPositionType.Right;
workbook.SaveToFile("waterfall_chart.xlsx");
Workbook workbook = new Workbook();
workbook.LoadFromFile("Pareto_sample.xlsx");
var sheet = workbook.Worksheets[0];
var officeChart = sheet.Charts.Add();
//Set chart type as Pareto
officeChart.ChartType = ExcelChartType.Pareto;

//Set data range in the worksheet   
officeChart.DataRange = sheet["A2:B8"];

//Set category values as bin values   
officeChart.PrimaryCategoryAxis.IsBinningByCategory = true;

officeChart.PrimaryCategoryAxis.OverflowBinValue = 5;
officeChart.PrimaryCategoryAxis.UnderflowBinValue = 1;

//Formatting Pareto line      
officeChart.Series[0].ParetoLineFormat.LineProperties.Color = System.Drawing.Color.Blue;

//Gap width settings
officeChart.Series[0].DataFormat.Options.GapWidth = 6;

//Set the chart title
officeChart.ChartTitle = "Expenses";

//Hiding the legend
officeChart.HasLegend = false;
workbook.SaveToFile("Pareto_chart.xlsx");
Workbook workbook = new Workbook();
workbook.LoadFromFile("Histogram_sample.xlsx");
var sheet = workbook.Worksheets[0];
var officeChart = sheet.Charts.Add();
//Set chart type as histogram       
officeChart.ChartType = ExcelChartType.Histogram;

//Set data range in the worksheet   
officeChart.DataRange = sheet["A1:A15"];

//Category axis bin settings        
officeChart.PrimaryCategoryAxis.BinWidth = 8;

//Gap width settings
officeChart.Series[0].DataFormat.Options.GapWidth = 6;

//Set the chart title and axis title
officeChart.ChartTitle = "Height Data";
officeChart.PrimaryValueAxis.Title = "Number of students";
officeChart.PrimaryCategoryAxis.Title = "Height";

//Hiding the legend
officeChart.HasLegend = false;
workbook.SaveToFile("Histogram_chart.xlsx");
Workbook workbook = new Workbook();

workbook.LoadFromFile("Boxandwhisker_sample.xlsx");
var sheet = workbook.Worksheets[0];
var officeChart = sheet.Charts.Add();
//Set the chart title
officeChart.ChartTitle = "Yearly Vehicle Sales";

//Set chart type as Box and Whisker
officeChart.ChartType = ExcelChartType.BoxAndWhisker;

//Set data range in the worksheet
officeChart.DataRange = sheet["A1:E17"];

//Box and Whisker settings on first series
var seriesA = officeChart.Series[0];
seriesA.DataFormat.ShowInnerPoints = false;
seriesA.DataFormat.ShowOutlierPoints = true;
seriesA.DataFormat.ShowMeanMarkers = true;
seriesA.DataFormat.ShowMeanLine = false;
seriesA.DataFormat.QuartileCalculationType = ExcelQuartileCalculation.ExclusiveMedian;

//Box and Whisker settings on second series   
var seriesB = officeChart.Series[1];
seriesB.DataFormat.ShowInnerPoints = false;
seriesB.DataFormat.ShowOutlierPoints = true;
seriesB.DataFormat.ShowMeanMarkers = true;
seriesB.DataFormat.ShowMeanLine = false;
seriesB.DataFormat.QuartileCalculationType = ExcelQuartileCalculation.InclusiveMedian;

//Box and Whisker settings on third series   
var seriesC = officeChart.Series[2];
seriesC.DataFormat.ShowInnerPoints = false;
seriesC.DataFormat.ShowOutlierPoints = true;
seriesC.DataFormat.ShowMeanMarkers = true;
seriesC.DataFormat.ShowMeanLine = false;
seriesC.DataFormat.QuartileCalculationType = ExcelQuartileCalculation.ExclusiveMedian;

workbook.SaveToFile("Boxandwhisker_chart.xlsx");
Workbook workbook = new Workbook();

workbook.LoadFromFile("treemap_sample.xlsx");
var sheet = workbook.Worksheets[0];
var officeChart = sheet.Charts.Add();
//Set chart type as TreeMap
officeChart.ChartType = ExcelChartType.TreeMap;

//Set data range in the worksheet
officeChart.DataRange = sheet["A2:C11"];

//Set the chart title
officeChart.ChartTitle = "Area by countries";

//Set the Treemap label option
officeChart.Series[0].DataFormat.TreeMapLabelOption = ExcelTreeMapLabelOption.Banner;

//Formatting data labels      
officeChart.Series[0].DataPoints.DefaultDataPoint.DataLabels.Size = 8;

workbook.SaveToFile("treemap_chart.xlsx");
Workbook workbook = new Workbook();

workbook.LoadFromFile("Sunburst_sample.xlsx");
var sheet = workbook.Worksheets[0];
var officeChart = sheet.Charts.Add();
//Set chart type as Sunburst
officeChart.ChartType = ExcelChartType.SunBurst;

//Set data range in the worksheet
officeChart.DataRange = sheet["A1:D16"];

//Set the chart title
officeChart.ChartTitle = "Sales by annual";

//Formatting data labels      
officeChart.Series[0].DataPoints.DefaultDataPoint.DataLabels.Size = 8;

//Hiding the legend
officeChart.HasLegend = false;

workbook.SaveToFile("Sunburst_chart.xlsx");
Workbook workbook = new Workbook();

workbook.LoadFromFile("Funnel_sample.xlsx");
var sheet = workbook.Worksheets[0];
var officeChart = sheet.Charts.Add();
//Set chart type as Funnel
officeChart.ChartType = ExcelChartType.Funnel;

//Set data range in the worksheet
officeChart.DataRange = sheet.Range["A1:B6"];

//Set the chart title
officeChart.ChartTitle = "Funnel";

//Formatting the legend and data label option
officeChart.HasLegend = false;
officeChart.Series[0].DataPoints.DefaultDataPoint.DataLabels.HasValue = true;
officeChart.Series[0].DataPoints.DefaultDataPoint.DataLabels.Size = 8;

workbook.SaveToFile("Funnel_chart.xlsx");
Bug SPIREXLS-3386
SPIREXLS-3470
Fixes the issue that the content was incorrect when converting Excel to PDF.
Bug SPIREXLS-3396 Fixes the issue that the application threw an error "Invalid LegendPositionType string val" when loading an .xlsx file.
Bug SPIREXLS-3422 Fixes the issue that the combination chart type was not got incorrectly.
Bug SPIREXLS-3425 Fixes the issue that the application threw the System.ArgumentOutOfRangeException when copying worksheets.
Bug SPIREXLS-3426 Fixes the issue that the lines lost when converting Excel to PDF.
Bug SPIREXLS-3438 Fixes the issue that the application hanged when loading an .xls file.
Bug SPIREXLS-3449 Fixes the issue that setting the end of the chart's error line did not work.
Bug SPIREXLS-3455
SPIREXLS-3460
Fixes the issue that the application threw an error "Cannot read that as a ZipFile" when loading an HTML file.
Bug SPIREXLS-3458
SPIREXLS-3472
Fixes the issue that the application threw an error "You cannot Write() data for an entry that is a directory" when saving to an .xlsm file.
Bug SPIREXLS-3459 Fxies the issue that the application threw an error 'Invalid MsoLineDashStyle string val' when loading an .xlsx file.
Bug SPIREXLS-3464 Fixes the issue that some characters lost when converting an .xlsx to PDF.
Bug SPIREXLS-3471 Fixes the issue that that the application threw an error "Object reference is not set to an instance of an object." when converting an .xlsx to PDF.
Bug SPIREXLS-3480 Fixes the issue that the max rows and columns obtained were wrong after adding some new data.
Bug SPIREXLS-3481 Fixes the issue that the application hanged when loading an .ods file.
Bug SPIREXLS-3482 Fixes the issue that setting the transparent background color of the cell did not take effect

Spire.Doc

Category ID Description
Bug SPIREDOC-5938 Fixes the issue that it didn't find all matches when using regular expression to find text.
Bug SPIREDOC-6435 Fixes the issue that the application threw the error "ArgumentOutOfRangeException" when loading an HTML file.
Bug SPIREDOC-6545
SPIREDOC-6785
Fixes the issue that there were extra blank pages after converting Word to PDF.
Bug SPIREDOC-6597 Fixes the issue that line breaks were incorrect after converting Word to PDF.
Bug SPIREDOC-6635 Fixes the issue that the image position was changed after converting Word to PDF.
Bug SPIREDOC-6710 Fixes the issue that the text overlapped after converting Word to PDF.
Bug SPIREDOC-6718 Fixes the issue that the application threw the error "Collection was modified; enumeration operation may not execute" when comparing two Word documents.
Bug SPIREDOC-6746
SPIREDOC-6772
SPIREDOC-6820
Fixes the issue that the application threw the error "Object reference not set to an instance of an object" when converting Word to PDF.
Bug SPIREDOC-6771
SPIREDOC-6793
Fixes the issue that the application threw the error "Object reference not set to an instance of an object" when getting MergeGroupNames.
Bug SPIREDOC-6773 Fixes the issue that the Thai characters were garbled after converting Word to PDF.
Bug SPIREDOC-6774 Fixes the issue that the application threw the error "Zip exception" when loading a Word document.

Spire.Presentation

Category ID Description
New feature SPIREPPT-1698 Supports getting the target slide of a hyperlink.
Presentation ppt = new Presentation();
ppt.LoadFromFile(inputFile);
IAutoShape shape = ppt.Slides[1].Shapes[0] as IAutoShape;
if (shape.Click.ActionType == HyperlinkActionType.GotoSlide)
{
    ISlide targetSlide = shape.Click.TargetSlide;
    Console.WriteLine("index = " + targetSlide.SlideNumber);
}
Bug SPIREPPT-1684 Fixes the issue that the OLE object couldn't be opened after loading and saving the file.
Bug SPIREPPT-1700 Fixes the issue that the content was cut off after converting shape to images.
Bug SPIREPPT-1702 Fixes the issue that it didn't get the correct text color.
Bug SPIREPPT-1703 Fixes the issue that it didn't get the correct font size of the table text.
Bug SPIREPPT-1704 Fixes the issue that it didn't get the correct fill color for the chart series.
Bug SPIREPPT-1705 Fixes the issue that it didn't get the correct duration for the slide show transition.
Bug SPIREPPT-1706 Fixes the issue that part of the content was missing after converting equations to images.

Spire.Spreadsheet

Category ID Description
Bug SPREADSHEET-188 Fixes the issue that the content in the file was cut when viewing Excel file