Browse our Products
Aspose.Words for C++ 23.5 Release Notes
Major Features
There are 174 improvements and fixes in this regular monthly release. The most notable are:
- Provided the feature to get and modify chart series data.
- Implemented support for text wrapping in headers/footers.
- Fixed rendering of MathML formula with embedded images.
- Added an ability to remove digital signatures from ODT documents.
- Added public properties to obtain base and ruby text of phonetic guide Run.
Full list of changes
Expand to view the full list of issues, covering all changes in this release.
- Add support for GlossaryDocuments and BuildingBlocks in Node.ToString() function
- The layout issue due to a paragraph with FrameFormat in the footer
- The text is pushed up to previous page in output PDF
- Paragraphs are rendered on previous page in output PDF
- Header content is overlapped by the main document content
- Text layout issue in rendered PDF
- Add feature to get the categories of chart
- Position of header content is changed after DOCX to PDF conversion
- Add feature to modify/remove chart’s series data
- Incorrect text wrapping in the header
- Table with text wrapping does not render correct in output PDF
- Content are rendered on previous page in output PDF
- When convert word to PDF/A, paragraph compressed to same page
- DOCX to PDF: Content stays on first page instead being moved to next
- Oval Shape TextBox Overlaps with Content in Header Area in PDF
- Text and Shape position is changed in the footer of output PDF
- Text and Page field is lost in the footer of output PDF
- DOCX to PDF conversion issue with image/content position
- Shapes’ position is changed after conversion from DOCX to PDF
- Content pushed upwards in all pages of PDF
- Image position is changed in the header of output PDF
- DOCX->PDF conversion: Text and image have their positions changed
- Content overlaps with header in rendered document
- Text and Shapes are overlapped and their position is incorrect in output PDF
- DOCX to PDF: Space in header is lost
- Images are overlapped after DOCX to PDF Conversion
- Header text is overlapped over each other in output PDF
- Table shifted to the top and overlapped the header in the PDF
- Converting docx w/header image with top/bottom text wrapping to pdf
- Text position in the Header of document is incorrect in output PDF
- Chart Series’ colors were changed after removing and adding new series
- When transforming Word to pdf the headline is closer to the header than in Word source file
- DOCX to PDF, issue with table text wrapping option
- Image is overlapping text in the header
- Content pushed towards top page edge in PDF
- Content is shifted upon rendering document
- Footer text position is changed after DOCX to PDF Conversion
- Header alignment issue on conversion to PDF
- DOCX to PDF conversion causes layout issues in output file
- Text is pushed up to previous page after DOCX to PDF conversion
- DOCX to PDF conversion issue with position of footer content and table
- Header content is overlapped
- Document.UpdateFields does not update the page number of TOC correctly
- A Cell’s content pushed to previous Page in HtmlFixed
- Part of content is moved to the previous page upon rendering
- Support Azure Rights Management RMS Encryption. Office365 Digital Rights Management
- Image in header overlaps text
- OLE object in OfficeMath are lost in output DOCX
- Header is moved up when converting DOCX to PDF
- Layout APIs return incorrect position of Bookmark
- Add feature to format Data Series (line formatting for Scatter chart)
- Content of first page is rendered a little upper then in the original document
- Content in header is overlapped
- Footer content is moved outside the page upon rendering
- Header content is overlapped after rendering
- Content is rendered upper than in the original document
- Content is moved to previous page upon rendering
- Text position is changed after DOCX to PDF conversion
- The radical sign according to the argument height
- DOCX to PDF: Image is overlapping the content
- Programmatically get both base text and annotation of Run nodes that contain ruby text
- DOCX to PDF: Images and shape overflows the header part
- DOCX to PDF: Image misaligned and overflows the text
- Footer is rendered improperly
- Content in header is overlapped
- Content is pushed to the next page upon rendering
- Floating image overlaps content in the document’s header
- Rendering of the radical argument if the argument height is large
- NodeRendererBase.SizeInPoints returns incorrect size
- Import the simplest HTML document with MSO properties support
- Aspose.Words should not render all the content of first footer in PDF
- All tables shifted upwards causing overlapping with logo in header in PDF
- Image position is changed after conversion from DOCX to DOC/PDF
- DOCX to PDF - header table overlaps page content
- Provide API for ‘Fill & Line’ options to ‘Format Data Point’ of Chart
- Add feature to show/hide grid lines of chart
- Add feature to update chart’s data
- Floating image overlaps content in the document’s header
- Part of content is moved to the previouse page after rendering
- Update chart series
- Space (empty paragraphs) in Header are losing after converting to PDF
- Incorrect position of images and characters when converting DOCX to PDF/PNG
- Text position is changed after conversion from DOCX to PDF
- Footer is not appearing correctly when converting DOCX document to PDF
- One extra line is added to first page when saving to PDF
- Header contents overlap with the body content in output PDF
- Ability to determine chart series type
- DOCX to PDF: Footer pushed down
- Part of content is moved to next page and is wrapped improperly
- Image in the header is overlapped by content
- Content overlaps header
- Conversion Dotx to Pdf make body overlap header
- Footer is rendered improperly
- Header contents are truncated after saving DOCX to DOC/PDF
- Text position is changed after conversion from DOCX to PDF
- Rendering issue of Paragraph breaks in header
- Footer is rendered improperly
- Document content overlaps header
- Header/footer height does not match MS Word 2013
- Content is moved on the previous page
- Add feature to modify Word Charts
- Header layout changes when converting to PDF
- Border and background of SVG image is lost after rendering
- Corrupted document is loaded when is converted to Stream
- Shape in header is missed upon rendering document
- Page numbers are wrong after convert to PDF
- Add feature to access multilevel series X values
- German Umlaut characters are improperly read from RTF document
- NullReferenceException is thrown upon rendering document to Tiff with ColorMode.Grayscale
- SDT value is changed after rendering document
- Document compare incorrect result
- The radical sign is not rendering correctly
- Incorrect rendering of math formula, if math elements contains embedded image
- ArgumentException is thrown upon rendering document
- Numbering is broken after importing section
- Document compare “Index was out of range.” exception
- Issue with Document.ExtractPages(..)
- DocumentBuilder.InsertParagraph works incorrectly when cursor is inside inline-level SDT
- The method ApsCanvas.DeepCopy(bool) doesn’t work properly
- ApsGlyphs.RenderTransform is not correctly applied in SVG rendering
- NullReferenceException in PdfOperatorGS
- InvalidCastException in PdfTilingPatternFactory.BuildShadingPattern()
- Document compare: “Cannot insert node of this type at this location” exception
- Footer floater not wrapped after header truncation
- FileCorruptedException is thrown upon loading DOCX document
- Text position after text frame is incorrect after rendering
- Put comment content into a separate line when export to TXT
- SDT content in footer is changed after rendering document
- Periods in image name written into MD are escaped
- DML ArcTo rendering ~/~/ Error rendering shape when convert to HTML
- SVG image is rendered improperly
- Include Microsoft YaHei in the CJK linking list
- InvalidCastException in PdfPageTree.WalkTree()
- Accents are lost when VBA source code is written to document
- Document is truncated after accept revisions individually
- Paragraphs from second page are moved to the first page in PDF
- NullReferenceException while saving specific DOCX to Markdown
- Shapes in groupshape are overlapped and partially hidden
- DOCX to PDF: Superscript is converted from alphabetical to numerical value
- Incorrect font size
- ListState.UpdateListState() is not invoked for lists located at the end of the document
- DOCX to PDF: “Path” tag is added to PDF/UA document
- IF field is updated improperly after copying to another document
- Method RequestDictionary is receiving empty string
- Field value is not read when field is defined as fldSimple
- Comparison failed
- Wrong value of ChartDataPoint.InvertIfNegative property
- Setting color of a gradient stop of data point changes color of entire series
- Shape position in the header is incorrect after rendering
- Digitally signed .ODT document raises exception during digital signatures deletion
- Incorrect floating table position
- File size increase after mapping
- Text is covered by black rectangle after rendering SVG
- Embedded font is not exported when converting to HTML
- Add an option to ignore shapes in FindReplaceOptions
- CrossReference hyperlinks stripped but available on surrounding text
- InvalidCastException is thrown upon calling UpdatePageLayout
- Open/save breaks hyperlink with nested hyperlink field
- List item numbering is changed after using ExtractPages
- StackOverflowException is thrown upon updating fields in the document.
- Make is possible to use ProgressCallback while saving to DOC format
- Aspose.Words ignores STYLE elements in HTML documents if their “type” attribute values are empty
- ArgumentException is thrown when accessing properties of SystemDrawing.Image
- Allow accessing OLE Control Name and GroupName
- PDF document does not pass PdfUa validation
- System.IndexOutOfRangeException raised in UpdateFields method
- NullReferenceException is thrown upon rendering document
- Different style in corrections when converting a document to HTML
- ParagraphFormat objects builder.getParagraphFormat() are references to the same object
- Image size is differs by one pixel from the original in HTML
- Analyze what it takes to work Aspose.Words at Azure Paas App Service Web App
- Table don’t autofit to document size saving to PDF
- Header on the second page is rendered improperly
- TxtSaveOptions.PreserveTableLayout does not generate the correct output
Public API and Backward Incompatible Changes
This section lists public API changes that were introduced in Aspose.Words 23.5. It includes not only new and obsoleted public methods, but also a description of any changes in the behavior behind the scenes in Aspose.Words which may affect existing code. Any behavior introduced that could be seen as regression and modifies the existing behavior is especially important and is documented here.
Added ability to remove digital signatures from ODT
Implemented removing digital signatures from ODT using Aspose.Words.DigitalSignatures.DigitalSignatureUtil.RemoveAllSignatures method.
Use Case
This use case explains how to remove digital signatures from ODT. Please see the following code example to learn how to use such a method:
DigitalSignatureUtil::RemoveAllSignatures(u"in.odt", u"out.odt");
Added new public property FindReplaceOptions.IgnoreShapes
The following public property was added to Aspose.Words.Replacing.FindReplaceOptions class:
/// Gets a boolean value indicating either to ignore shapes within a text.
/// The default value is <c>%false</c>.
ASPOSE_WORDS_SHARED_API bool get_IgnoreShapes() const;
/// Sets a boolean value indicating either to ignore shapes within a text.
/// The default value is <c>%false</c>.
ASPOSE_WORDS_SHARED_API void set_IgnoreShapes(bool value);
Use Case
This use case explains how to ignore shapes within a text in FindReplace. Please see the following code example to learn how to use such a property:
System::SharedPtr<Aspose::Words::DocumentBuilder> builder = System::MakeObject<Aspose::Words::DocumentBuilder>();
builder->Write(u"123");
builder->InsertShape(Aspose::Words::Drawing::ShapeType::Balloon, 200, 200);
builder->Write(u"456");
builder->get_Document()->get_Range()->Replace(u"123456", u"789", [&]{ auto tmp_0 = System::MakeObject<Aspose::Words::Replacing::FindReplaceOptions>(); tmp_0->set_IgnoreShapes(true); return tmp_0; }());
System::Console::Write(builder->get_Document()->GetText());
// This code produces the following output:
// 789
// \u000c
Added new public property Forms2OleControl.GroupName
The following public property was added to Aspose.Words.Drawing.Ole.Forms2OleControl class:
/// Gets a string that specifies a group of mutually exclusive controls.
/// The default value is an empty string.
ASPOSE_WORDS_SHARED_API System::String get_GroupName();
/// Sets a string that specifies a group of mutually exclusive controls.
/// The default value is an empty string.
ASPOSE_WORDS_SHARED_API void set_GroupName(const System::String& value);
Use Case
This use case explains how to get and change group name of Forms2Ole control. Please see the following code example to learn how to use such a property:
// Assume there is a shape with Forms2OleControl in document.
System::SharedPtr<Aspose::Words::Document> doc = System::MakeObject<Aspose::Words::Document>(u"input.docx");
System::SharedPtr<Aspose::Words::Drawing::Shape> shape = System::ExplicitCast<Aspose::Words::Drawing::Shape>(doc->GetChild(Aspose::Words::NodeType::Shape, 0, true));
System::SharedPtr<Aspose::Words::Drawing::Ole::Forms2OleControl> control = System::ExplicitCast<Aspose::Words::Drawing::Ole::Forms2OleControl>(shape->get_OleFormat()->get_OleControl());
if (control != nullptr)
{
System::Console::WriteLine(u"Control group name is: {0}", control->get_GroupName());
control->set_GroupName(u"newGroup");
}
Added new public property PdfSaveOptions.ExportParagraphGraphicsToArtifact
The following public property was added to Aspose.Words.Saving.PdfSaveOptions class:
/// Gets or sets a value determining whether a paragraph graphic should be marked as an artifact.
///
/// Default value is <c>%false</c> and paragraph graphics (underlines, text emphasis, etc.)
/// will be marked as "Span" in the logical structure of the document.
///
/// When the value is <c>%true</c> the paragraph graphics will be marked as "Artifact".
///
/// This value is ignored when <see cref="Aspose::Words::Saving::PdfSaveOptions::get_ExportDocumentStructure">ExportDocumentStructure</see> is <c>%false</c>.
ASPOSE_WORDS_SHARED_API bool get_ExportParagraphGraphicsToArtifact() const;
/// Setter for Aspose::Words::Saving::PdfSaveOptions::get_ExportParagraphGraphicsToArtifact
ASPOSE_WORDS_SHARED_API void set_ExportParagraphGraphicsToArtifact(bool value);
Use Case
The following property allows to export paragraph graphics as artifact (underlines, text emphasis, etc.). Please see the following code example to learn how to use such a property:
System::SharedPtr<Aspose::Words::Document> doc = System::MakeObject<Aspose::Words::Document>(fileName);
System::SharedPtr<Aspose::Words::Saving::PdfSaveOptions> saveOptions = System::MakeObject<Aspose::Words::Saving::PdfSaveOptions>();
saveOptions->set_ExportParagraphGraphicsToArtifact(true);
doc->Save(outputFileName, saveOptions);
Added public properties to obtain base and ruby text of phonetic guide Run
The following public property was added to Aspose.Words.Run class:
/// Gets a <see cref="Aspose::Words::Run::get_PhoneticGuide">PhoneticGuide</see> object.
ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::PhoneticGuide> get_PhoneticGuide();
Added the following public class into Aspose.Words namespace:
/// Represents Phonetic Guide.
class ASPOSE_WORDS_SHARED_CLASS PhoneticGuide : public System::Object
{
/// Gets base text of the phonetic guide.
ASPOSE_WORDS_SHARED_API System::String get_BaseText();
/// Gets ruby text of the phonetic guide.
ASPOSE_WORDS_SHARED_API System::String get_RubyText();
};
Use Case
This use case explains how to obtain base and ruby text from phonetic guide Run. Please see the following code example to learn how to use such a property:
System::SharedPtr<Aspose::Words::Document> doc = System::MakeObject<Aspose::Words::Document>(u"DocWithRuby.docx");
System::SharedPtr<Aspose::Words::Run> run = doc->get_FirstSection()->get_Body()->get_FirstParagraph()->get_Runs()->idx_get(0);
if (run != nullptr)
{
System::Console::WriteLine(run->get_PhoneticGuide()->get_BaseText());
System::Console::WriteLine(run->get_PhoneticGuide()->get_RubyText());
}
Added public property ChartSeries.SeriesType of new ChartSeriesType enum type
The SeriesType property has been added to the ChartSeries class:
/// Gets the type of this chart series.
ASPOSE_WORDS_SHARED_API Aspose::Words::Drawing::Charts::ChartSeriesType get_SeriesType();
The definition of the added ChartSeriesType enum type:
/// Specifies a type of a chart series.
enum class ASPOSE_WORDS_SHARED_CLASS ChartSeriesType
{
/// Represents an Area chart series.
Area,
/// Represents a Stacked Area chart series.
AreaStacked,
/// Represents a 100\% Stacked Area chart series.
AreaPercentStacked,
/// Represents a 3D Area chart series.
Area3D,
/// Represents a 3D Stacked Area chart series.
Area3DStacked,
/// Represents a 3D 100\% Stacked Area chart series.
Area3DPercentStacked,
/// Represents a Bar chart series.
Bar,
/// Represents a Stacked Bar chart series.
BarStacked,
/// Represents a 100\% Stacked Bar chart series.
BarPercentStacked,
/// Represents a 3D Bar chart series.
Bar3D,
/// Represents a 3D Stacked Bar chart series.
Bar3DStacked,
/// Represents a 3D 100\% Stacked Bar chart series.
Bar3DPercentStacked,
/// Represents a Bubble chart series.
Bubble,
/// Represents a 3D Bubble chart series.
Bubble3D,
/// Represents a Column chart series.
Column,
/// Represents a Stacked Column chart series.
ColumnStacked,
/// Represents a 100\% Stacked Column chart series.
ColumnPercentStacked,
/// Represents a 3D Column chart series.
Column3D,
/// Represents a 3D Stacked Column chart series.
Column3DStacked,
/// Represents a 3D 100\% Stacked Column chart series.
Column3DPercentStacked,
/// Represents a 3D Clustered Column chart series.
Column3DClustered,
/// Represents a Doughnut chart series.
Doughnut,
/// Represents a Line chart series.
Line,
/// Represents a Stacked Line chart series.
LineStacked,
/// Represents a 100\% Stacked Line chart series.
LinePercentStacked,
/// Represents a 3D Line chart series.
Line3D,
/// Represents a Pie chart series.
Pie,
/// Represents a 3D Pie chart series.
Pie3D,
/// Represents a Pie of Bar chart series.
PieOfBar,
/// Represents a Pie of Pie chart series.
PieOfPie,
/// Represents a Radar chart series.
Radar,
/// Represents a Scatter chart series.
Scatter,
/// Represents a Stock chart series.
Stock,
/// Represents a Surface chart series.
Surface,
/// Represents a 3D Surface chart series.
Surface3D,
/// Represents a Treemap chart series.
Treemap,
/// Represents a Sunburst chart series.
Sunburst,
/// Represents a Histogram chart series.
Histogram,
/// Represents a Pareto chart series.
Pareto,
/// Represents a Pareto Line chart series.
ParetoLine,
/// Represents a Box and Whisker chart series.
BoxAndWhisker,
/// Represents a Waterfall chart series.
Waterfall,
/// Represents a Funnel chart series.
Funnel,
/// Represents a Region Map chart series.
RegionMap
};
Use Case
This use case explains how to remove/add series of a specific type of a Combo chart. Please see the following code example:
System::SharedPtr<Aspose::Words::Document> doc = System::MakeObject<Aspose::Words::Document>(u"ComboChart.docx");
System::SharedPtr<Aspose::Words::Drawing::Shape> shape = System::ExplicitCast<Aspose::Words::Drawing::Shape>(doc->GetChild(Aspose::Words::NodeType::Shape, 0, true));
System::SharedPtr<Aspose::Words::Drawing::Charts::Chart> chart = shape->get_Chart();
// Remove all series of the Column type.
for (int32_t i = chart->get_Series()->get_Count() - 1; i >= 0; i--)
{
if (chart->get_Series()->idx_get(i)->get_SeriesType() == Aspose::Words::Drawing::Charts::ChartSeriesType::Column)
{
chart->get_Series()->RemoveAt(i);
}
}
// Add a new series.
chart->get_Series()->Add(u"New Series", System::MakeArray<System::String>({u"Category 1", u"Category 2", u"Category 3", u"Category 4"}), System::MakeArray<double>({5.6, 7.1, 2.9, 8.9}));
doc->Save(u"out.docx");
Implemented ability to get and modify chart series data
The following changes have been implemented:
Added new classes: ChartXValue, ChartYValue, ChartXValueCollection, ChartYValueCollection, BubbleSizeCollection, ChartMultilevelValue, and new enum types: ChartXValueType, ChartYValueType.
Added new properties and methods to the ChartSeries class.
Use Case
This use case explains how to populate existing chart series with data. Please see the following code example:
System::SharedPtr<Aspose::Words::Document> doc = System::MakeObject<Aspose::Words::Document>(u"ScatterChart.docx");
System::SharedPtr<Aspose::Words::Drawing::Shape> shape = System::ExplicitCast<Aspose::Words::Drawing::Shape>(doc->GetChild(Aspose::Words::NodeType::Shape, 0, true));
System::SharedPtr<Aspose::Words::Drawing::Charts::Chart> chart = shape->get_Chart();
System::SharedPtr<Aspose::Words::Drawing::Charts::ChartSeries> series1 = chart->get_Series()->idx_get(0);
// Clear X and Y values of the first series.
series1->ClearValues();
// Populate the series with data.
series1->Add(Aspose::Words::Drawing::Charts::ChartXValue::FromDouble(3), Aspose::Words::Drawing::Charts::ChartYValue::FromDouble(10));
series1->Add(Aspose::Words::Drawing::Charts::ChartXValue::FromDouble(5), Aspose::Words::Drawing::Charts::ChartYValue::FromDouble(5));
series1->Add(Aspose::Words::Drawing::Charts::ChartXValue::FromDouble(7), Aspose::Words::Drawing::Charts::ChartYValue::FromDouble(11));
series1->Add(Aspose::Words::Drawing::Charts::ChartXValue::FromDouble(9), Aspose::Words::Drawing::Charts::ChartYValue::FromDouble(17));
System::SharedPtr<Aspose::Words::Drawing::Charts::ChartSeries> series2 = chart->get_Series()->idx_get(1);
// Clear X and Y values of the second series.
series2->ClearValues();
// Populate the series with data.
series2->Add(Aspose::Words::Drawing::Charts::ChartXValue::FromDouble(2), Aspose::Words::Drawing::Charts::ChartYValue::FromDouble(4));
series2->Add(Aspose::Words::Drawing::Charts::ChartXValue::FromDouble(4), Aspose::Words::Drawing::Charts::ChartYValue::FromDouble(7));
series2->Add(Aspose::Words::Drawing::Charts::ChartXValue::FromDouble(6), Aspose::Words::Drawing::Charts::ChartYValue::FromDouble(14));
series2->Add(Aspose::Words::Drawing::Charts::ChartXValue::FromDouble(8), Aspose::Words::Drawing::Charts::ChartYValue::FromDouble(7));
doc->Save(u"out.docx");
Use Case
This use case explains how to get data of chart series. Please see the following code example:
System::SharedPtr<Aspose::Words::Document> doc = System::MakeObject<Aspose::Words::Document>(u"Chart.docx");
System::SharedPtr<Aspose::Words::Drawing::Shape> shape = System::ExplicitCast<Aspose::Words::Drawing::Shape>(doc->GetChild(Aspose::Words::NodeType::Shape, 0, true));
System::SharedPtr<Aspose::Words::Drawing::Charts::Chart> chart = shape->get_Chart();
System::SharedPtr<Aspose::Words::Drawing::Charts::ChartSeries> series = chart->get_Series()->idx_get(0);
double minValue = std::numeric_limits<double>::max();
int32_t minValueIndex = 0;
double maxValue = std::numeric_limits<double>::lowest();
int32_t maxValueIndex = 0;
for (int32_t i = 0; i < series->get_YValues()->get_Count(); i++)
{
// Clear individual format of all data points. Data points and data values are one-to-one in column charts.
series->get_DataPoints()->idx_get(i)->ClearFormat();
// Get Y value.
double yValue = series->get_YValues()->idx_get(i)->get_DoubleValue();
if (yValue < minValue)
{
minValue = yValue;
minValueIndex = i;
}
if (yValue > maxValue)
{
maxValue = yValue;
maxValueIndex = i;
}
}
// Change colors of the max and min values.
series->get_DataPoints()->idx_get(minValueIndex)->get_Format()->get_Fill()->set_ForeColor(System::Drawing::Color::get_Red());
series->get_DataPoints()->idx_get(maxValueIndex)->get_Format()->get_Fill()->set_ForeColor(System::Drawing::Color::get_Green());
doc->Save(u"out.docx");
Use Case
This use case explains how to add and remove chart data values. Please see the following code example:
System::SharedPtr<Aspose::Words::Document> doc = System::MakeObject<Aspose::Words::Document>(u"SalesChart.docx");
System::SharedPtr<Aspose::Words::Drawing::Shape> shape = System::ExplicitCast<Aspose::Words::Drawing::Shape>(doc->GetChild(Aspose::Words::NodeType::Shape, 0, true));
System::SharedPtr<Aspose::Words::Drawing::Charts::Chart> chart = shape->get_Chart();
System::SharedPtr<Aspose::Words::Drawing::Charts::ChartSeries> department1Series = chart->get_Series()->idx_get(0);
System::SharedPtr<Aspose::Words::Drawing::Charts::ChartSeries> department2Series = chart->get_Series()->idx_get(1);
// Remove the first value in the both series.
department1Series->Remove(0);
department2Series->Remove(0);
// Add new values to the both series.
System::SharedPtr<Aspose::Words::Drawing::Charts::ChartXValue> newXCategory = Aspose::Words::Drawing::Charts::ChartXValue::FromString(u"Q1, 2023");
department1Series->Add(newXCategory, Aspose::Words::Drawing::Charts::ChartYValue::FromDouble(10.3));
department2Series->Add(newXCategory, Aspose::Words::Drawing::Charts::ChartYValue::FromDouble(5.7));
doc->Save(u"out.docx");
Limitations and API Differences
Aspose.Words for C++ has some differences as compared to its equivalent .NET version of the API. This section contains information about all such functionality that is not available in the current release. The missing features will be added in future releases.
- The current release does not support Metered license.
- The current release does not support LINQ and Reporting features.
- The current release does not support OpenGL 3D Shapes rendering.
- The current release does not support loading PDF documents.
- The current release has limited support for database features - C++ doesn’t have common API for DB like .NET System.Data.
- The current release supports Microsoft Visual C++ version 2017 or higher.
- The current release supports GCC 6.3 or higher and Clang 3.9.1 or higher on Linux and only for the x86_x64 platform.
- The current release supports macOS Big Sur or later (11.5+) for 64-bit Intel Mac platform.