Spire.Doc for C++ 14.1.4 aligns a series of features with the .NET version

Spire.Doc for C++ 14.1.4 aligns a series of features with the .NET version

2026-01-29 06:22:52

We’re pleased to announce the release of Spire.Doc for C++ 14.1.4. This version synchronizes several features from the .NET version of Spire.Doc, focusing mainly on table and list-related functionalities. More details are as follows.

Here is a list of changes made in this release

Category ID Description
New feature - Added the add(ListTemplate template) method to ListCollection to create multi-level lists from built-in templates.
int firstColumn = doc->GetBookmarks()->FindByName(L"t_insert")->GetFirstColumn();
int lastColumn = doc->GetBookmarks()->FindByName(L"t_insert")->GetLastColumn();
New feature - Added SetStyle, SetStyleOptions, and SetStyleName properties to the TableFormat class for table style operations.
intrusive_ptr<TableStyle> tableStyle = Object::Dynamic_cast<TableStyle>(
    doc->GetStyles()->Add(StyleType::TableStyle, L"TestTableStyle1")
);
tableStyle->GetBorders()->SetColor(Color::GetBlue());
tableStyle->GetBorders()->SetBorderType(BorderStyle::Single);
tableStyle->SetHorizontalAlignment(RowAlignment::Center);

intrusive_ptr<Table> table = sec->AddTable();
table->ResetCells(1, 1);
table->GetRows()->GetItemInRowCollection(0)
    ->GetCells()->GetItemInCellCollection(0)
    ->AddParagraph()->AppendText(L"Aligned to the center of the page");
table->SetPreferredWidth(PreferredWidth::FromPoints(300));
table->ApplyStyle(tableStyle);

sec->AddParagraph()->AppendText(L"");
tableStyle = Object::Dynamic_cast<TableStyle>(
    doc->GetStyles()->Add(StyleType::TableStyle, L"TestTableStyle2")
);
tableStyle->SetLeftIndent(55);
tableStyle->GetBorders()->SetColor(Color::GetGreen());
tableStyle->GetBorders()->SetBorderType(BorderStyle::Single);

table = sec->AddTable();
table->ResetCells(1, 1);
table->GetRows()->GetItemInRowCollection(0)
    ->GetCells()->GetItemInCellCollection(0)
    ->AddParagraph()->AppendText(L"Aligned according to left indent");
table->SetPreferredWidth(PreferredWidth::FromPoints(300));
table->GetFormat()->SetStyle(tableStyle);


intrusive_ptr<TableStyle> tableStyle = Object::Dynamic_cast<TableStyle>(
    doc->GetStyles()->Add(StyleType::TableStyle, L"TestTableStyle1")
);

tableStyle->GetBorders()->SetColor(Color::GetBlack());
tableStyle->GetBorders()->SetBorderType(BorderStyle::Double);
tableStyle->SetRowStripe(3);
tableStyle->GetConditionalStyles()->GetItem(TableConditionalStyleType::OddRowStripe)
    ->GetShading()->SetBackgroundPatternColor(Color::GetLightBlue());
tableStyle->GetConditionalStyles()->GetItem(TableConditionalStyleType::EvenRowStripe)
    ->GetShading()->SetBackgroundPatternColor(Color::GetLightCyan());
tableStyle->SetColumnStripe(1);
tableStyle->GetConditionalStyles()->GetItem(TableConditionalStyleType::EvenColumnStripe)
    ->GetShading()->SetBackgroundPatternColor(Color::GetLightPink());

table->ApplyStyle(tableStyle);
table->GetFormat()->SetStyleOptions(TableStyleOptions::ColumnStripe);


tableStyle = Object::Dynamic_cast<TableStyle>(
    doc->GetStyles()->Add(StyleType::TableStyle, L"TestTableStyle3")
);
tableStyle->SetLeftIndent(55);
tableStyle->GetBorders()->SetColor(Color::GetGreen());
tableStyle->GetBorders()->SetBorderType(BorderStyle::Single);
tableStyle->SetHorizontalAlignment(RowAlignment::Right);

table = sec->AddTable();
table->ResetCells(1, 1);
table->GetRows()->GetItemInRowCollection(0)
    ->GetCells()->GetItemInCellCollection(0)
    ->AddParagraph()->AppendText(L"Aligned according to left indent");
table->SetPreferredWidth(PreferredWidth::FromPoints(300));
table->GetFormat()->SetStyleName(L"TestTableStyle3");
New feature - Added the RemoveSelf method to the Style class to remove a style.
document->GetStyles()->GetItem(L"Normal")->RemoveSelf();
New feature - Enhanced the Document class with page extraction (ExtractPages), first section access (FirstSection), and hyphenation dictionary registration/unregistration support (RegisterHyphenationDictionary, UnregisterHyphenationDictionary, IsHyphenationDictionaryRegistered).
New feature - Added the DocumentNavigator class, which provides a “virtual cursor”-based API for easily inserting text, paragraphs, lists, tables, images, checkboxes, OLE objects, and more into Word documents with style control.
intrusive_ptr<Document> doc = ConvertUtil::GetNewEngineDocument();
intrusive_ptr<DocumentNavigator> navigator = new DocumentNavigator(doc);
doc->LoadFromFile(inputFile.c_str());
navigator->MoveToDocumentStart();
navigator->Writeln(L"Test insert at DocumentStart");
navigator->Writeln(L"Test insert without move");
navigator->MoveToDocumentEnd();
navigator->Writeln(L"Test insert at DocumentEnd");

doc->SaveToFile(outputFile.c_str(), FileFormat::Docx);
doc->Close();
New feature - Added fine-grained formatting capabilities to core document elements including paragraphs, tables, cells, borders, and styles.
Class New Members Description
Paragraph GetText Gets the text content of a paragraph.
Table SetBorders,
ClearBorders
Sets table border style.
Clears all table border formatting.
CellFormat ClearFormatting Clears all cell formatting.
Borders ClearFormatting IsShadow Clears border formatting. Controls whether the border displays a shadow effect.
RowFormat ClearBackground Height Clears row background color. Sets row height.
StyleCollection Add (overload) Added an overloaded method for adding styles.
PreferredWidth FromPercent FromPoints Width data types.
CharacterFormat LocaleIdBi Supports bidirectional text locale settings.
Frame IsFrame Determines whether the object is a Frame.
OfficeMath ToLaTeXMathCode FromOMMLCode Converts a math object to LaTeX math code. Creates a math object from an OMML string.
New feature - Enhanced revision tracking, content controls, and document comparison features.
Class New Members Description
CompareOptions IgnoreTable, IgnoreHeadersAndFooters Allows ignoring table content or headers/footers during comparison.
DifferRevisions MoveToRevisions, MoveFromRevisions Gets “move-to” and “move-from” type revisions.
StructureDocumentTag* (including Cell/Inline/Row) RemoveSelfOnly Removes only the content control itself while preserving its contents.
New feature - Improved accessibility and export functionality.
Class New Members Description
ToPdfParameterList PdfImageCompression, DigitalSignatureInfo Configures image compression and digital signature info when saving to PDF.
Document MarkdownExportOptions, ListReferences Supports Markdown export options and list references.
New feature - Refactored the list system.
Class Members Description
ListFormat ApplyStyle, ApplyListRef Supports direct style application and list reference usage.
ListLevel Equals, CreatePictureBullet, DeletePictureBullet, PictureBullet Supports picture bullets and equality comparison.
ListStyle ListRef, BaseStyle Supports list references and base styles.
Document ListReferences Gets the collection of list references in the document.
New feature - Optimized and cleaned up APIs by removing redundant or poorly designed properties and methods to improve overall consistency, such as removing outdated export methods like OfficeMath.SaveToImage and SaveImageToStream.
Click the link below to download Spire.Doc for C++ 14.1.4: