विशेषताएँ और कार्यक्षमताएँ
विशेषताएँ और कार्यात्मकताएँ
यह पृष्ठ चार्ट-लेखन क्षमताओं को कवर करता है Aspose.Words FOSS for .NET काम करने वाले C# उदाहरणों के साथ, के इर्द-गिर्द निर्मित DocumentBuilder.InsertChart() और Chart ऑब्जेक्ट मॉडल। लाइब्रेरी का पूर्ण दस्तावेज़ ऑब्जेक्ट मॉडल (पैराग्राफ, टेबल, स्टाइल, बुकमार्क, सेक्शन) उत्पाद अवलोकन में और Quickstart गाइड।
चार्ट के साथ दस्तावेज़ बनाना
DocumentBuilder.InsertChart() के साथ एक चार्ट आकार डालें, फिर लौटाए गए Shape के माध्यम से उसके Chart ऑब्जेक्ट तक पहुँचें। वास्तविक डेटा जोड़ने से पहले डिफ़ॉल्ट उत्पन्न सीरीज़ को साफ़ करें:
using Aspose.Words;
using Aspose.Words.Drawing.Charts;
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
// Delete default generated series.
chart.Series.Clear();
string[] categories = new string[] { "AW Category 1", "AW Category 2", "AW Category 3" };
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });
doc.Save("chart.docx");चार्ट सीरीज़, डेटा पॉइंट्स, और मार्कर
Chart.Series एक ChartSeriesCollection है। प्रत्येक ChartSeries अपने व्यक्तिगत डेटा पॉइंट्स को DataPoints के माध्यम से उजागर करता है, जिससे आप एकल बिंदु के मार्कर या फ़ॉर्मेटिंग को कस्टमाइज़ कर सकते हैं बिना शेष सीरीज़ को प्रभावित किए:
Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
chart.Series.Clear();
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });
ChartSeries series = chart.Series[0];
ChartDataPointCollection points = series.DataPoints;
ChartDataPoint point1 = points[0];
ChartDataPoint point2 = points[1];
point1.InvertIfNegative = true;
point1.Marker.Symbol = MarkerSymbol.Square;
point2.InvertIfNegative = true;
point2.Marker.Symbol = MarkerSymbol.Diamond;
// Reset a single data point back to the series' inherited default formatting.
point1.ClearFormat();चार्ट डेटा लेबल्स
ChartSeries.DataLabels एक ChartDataLabelCollection है जो श्रृंखला के प्रत्येक बिंदु के लेबल को एक साथ नियंत्रित करता है। DataLabels[i] के साथ इसका इंडेक्स करके एक व्यक्तिगत ChartDataLabel को ओवरराइड किया जा सकता है:
Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
chart.Series.Clear();
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });
ChartSeries series = chart.Series[0];
series.HasDataLabels = true;
series.DataLabels.ShowValue = true;
ChartDataLabel label = series.DataLabels[1];
label.ShowCategoryName = true;
label.Position = ChartDataLabelPosition.Below;चार्ट अक्ष शीर्षक
Chart.AxisX और Chart.AxisY प्रत्येक अपने Title प्रॉपर्टी के माध्यम से एक ChartAxisTitle उजागर करते हैं:
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertChart(ChartType.Column, 432, 252);
Chart chart = shape.Chart;
ChartAxisTitle xTitle = chart.AxisX.Title;
ChartAxisTitle yTitle = chart.AxisY.Title;
xTitle.Show = true;
xTitle.Text = "Categories";
yTitle.Show = true;
yTitle.Text = "Values";चार्ट लेजेंड और फ़ॉन्ट्स
Chart.Legend LegendEntries को उजागर करता है, प्रत्येक श्रृंखला के लिए एक ChartLegendEntry, और प्रत्येक का अपना Font होता है। Font भराव फ़ॉर्मेटिंग को लागू करता है, इसलिए Font.Fill.Solid() किसी भी अन्य फ़ॉर्मेटेड रन की तरह एक ठोस टेक्स्ट रंग सेट करता है:
using System.Drawing;
Shape shape = builder.InsertChart(ChartType.Column, 432, 252);
ChartLegend legend = shape.Chart.Legend;
Font font1 = legend.LegendEntries[0].Font;
Font font2 = legend.LegendEntries[1].Font;
font1.Fill.Solid(Color.Blue);
font2.Color = Color.Green;चार्ट डेटा टेबल
Chart.DataTable एक ChartDataTable है जो चार्ट के नीचे अंतर्निहित श्रृंखला मानों को प्रदर्शित करता है। इसकी Has*Border और HasLegendKeys प्रॉपर्टी यह नियंत्रित करती हैं कि कौन से भाग दिखाई देंगे:
Shape shape = builder.InsertChart(ChartType.Column, 432, 252);
ChartDataTable dataTable = shape.Chart.DataTable;
dataTable.HasLegendKeys = false;
dataTable.HasHorizontalBorder = true;
dataTable.HasVerticalBorder = true;
dataTable.HasOutlineBorder = false;
doc.Save("chart-report.docx");टिप्स और सर्वोत्तम प्रथाएँ
DocumentBuilder.InsertChart()नई चार्ट को एक डिफ़ॉल्ट जेनरेटेड सीरीज़ से भरता है — अपना डेटा जोड़ने से पहलेchart.Series.Clear()को कॉल करें, नहीं तो डिफ़ॉल्ट्स उसके साथ ही रहेंगे।- जब केवल कुछ पॉइंट्स को कस्टम फ़ॉर्मेटिंग की आवश्यकता हो तो एक डेटा लेबल को लक्षित करने के लिए
ChartSeries.DataLabels[i]का उपयोग करें; कलेक्शन-लेवल प्रॉपर्टीज़ (DataLabels.ShowValueऔर समान) का उपयोग करके सीरीज़ के सभी लेबल्स के लिए एक साथ डिफ़ॉल्ट सेट करें। ClearFormat()दोनोंChartDataPointऔरChartDataLabelCollectionपर उपलब्ध है — यह सीधे फ़ॉर्मेटिंग को उस डिफ़ॉल्ट पर रीसेट करता है जो सीरीज़ डिफ़ॉल्ट रूप से विरासत में लेती है।- फ़ील्ड इवैल्यूएशन इंजन प्रोग्रामेटिकली
DATEऔरDOCPROPERTYजैसे कंटेंट फ़ील्ड्स को अपडेट करता है, लेकिन जो फ़ील्ड्स पेज लेआउट पर निर्भर करती हैं (TOC में पेज नंबर,NUMPAGES) प्लेसहोल्डर0मानों में मूल्यांकित होती हैं क्योंकि इस संस्करण में लेआउट इंजन शामिल नहीं है। - देखें इंस्टॉलेशन गाइड इन API को संदर्भित करने से पहले NuGet के द्वारा पैकेज जोड़ें, या स्रोत से बनाएँ।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
पृष्ठ संख्याएँ या TOC प्रविष्टियाँ 0 दिखाती हैं | इस संस्करण में पेज-लेआउट/रेंडरिंग इंजन शामिल नहीं है | अपेक्षित व्यवहार — लेआउट-निर्भर फ़ील्ड मान नहीं गणना किए जाते; व्यावसायिक संस्करण का उपयोग करें Aspose.Words .NET के लिए यदि आपको उनकी आवश्यकता हो |
Document.Save() से .pdf, .xps, या एक इमेज एक्सटेंशन विफल हो जाता है | रेंडरिंग फॉर्मैट इस संस्करण में शामिल नहीं हैं | इसके बजाय DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown, या सादा पाठ में सहेजें |
एक .doc, .rtf, .odt, .html, या .epub फ़ाइल लोड करना विफल हो जाता है | लोड/सेव के लिए केवल DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown, और plain text समर्थित हैं। | स्रोत फ़ाइल को पहले DOCX में बदलें, या वाणिज्यिक संस्करण का उपयोग करें। |
| कस्टम डेटा जोड़ने के बाद भी डिफ़ॉल्ट चार्ट सीरीज़ दिखाई देती है। | chart.Series.Clear() को InsertChart() के बाद कॉल नहीं किया गया। | chart.Series.Add() को कॉल करने से पहले डिफ़ॉल्ट जेनरेटेड सीरीज़ को साफ़ करें। |
FAQ
मेरी तालिका-सूची में पेज नंबर 0 क्यों दिख रहे हैं?
यह FOSS संस्करण पेज-लेआउट और रेंडरिंग सबसिस्टम को शामिल नहीं करता है, इसलिए कोई भी फ़ील्ड वैल्यू जो पेज लेआउट पर निर्भर करती है — पेज नंबर सहित — एक प्लेसहोल्डर 0 के रूप में मूल्यांकन करती है, न कि गणना किए गए मान के रूप में।
क्या मैं दस्तावेज़ को PDF या इमेज फ़ॉर्मेट में निर्यात कर सकता हूँ?
इस संस्करण में नहीं। PDF, XPS, और इमेज निर्यात उसी रेंडरिंग सबसिस्टम पर निर्भर करता है जिसे इस संस्करण को मुफ्त रखने के लिए हटाया गया था। उन आउटपुट के लिए वाणिज्यिक Aspose.Words का उपयोग करें .NET के लिए।
क्या मैं दस्तावेज़ पर नई डिजिटल सिग्नेचर बना सकता हूँ?
नहीं — इस संस्करण में मौजूदा डिजिटल सिग्नेचर को सत्यापित किया जा सकता है लेकिन नई सिग्नेचर नहीं बनाई जा सकती।
कौन से चार्ट प्रकार InsertChart() समर्थन करता है?
InsertChart() एक ChartType मान लेता है — एनीम मानक चार्ट परिवारों को कवर करता है जैसे लाइन, कॉलम, बार, पाई, एरिया, डोनट, रडार, स्कैटर, स्टॉक, और सरफ़ेस चार्ट, जिसमें उनके स्टैक्ड और 3D वेरिएंट शामिल हैं।
API Reference सारांश
| क्लास / प्रॉपर्टी | विवरण |
|---|---|
Document | रूट डॉक्यूमेंट ऑब्जेक्ट; Save() DOCX, Markdown, या plain text में लिखता है। |
DocumentBuilder | उच्च-स्तरीय कर्सर API; InsertChart() एक चार्ट आकार जोड़ता है |
Shape | ड्रॉइंग ऑब्जेक्ट जो InsertChart() द्वारा लौटाया जाता है; Chart प्रॉपर्टी को उजागर करता है |
Chart | चार्ट ऑब्जेक्ट; Series, Legend, DataTable, AxisX, AxisY, Title |
ChartSeries / ChartSeriesCollection | सीरीज़ डेटा (Add, Clear) और प्रति-सीरीज़ सेटिंग्स |
ChartDataPoint / ChartDataPointCollection | प्रति-बिंदु स्वरूपण; ClearFormat() |
ChartMarker / MarkerSymbol | डेटा बिंदु मार्कर का रूप और आकार |
ChartDataLabel / ChartDataLabelCollection | प्रति-लेबल और संग्रह-व्यापी लेबल प्रदर्शन सेटिंग्स |
ChartAxisTitle | शीर्षक पाठ Chart.AxisX / Chart.AxisY पर दिखाया गया |
ChartLegend / ChartLegendEntry | चार्ट लेजेंड और उसकी प्रति-श्रृंखला प्रविष्टियाँ |
ChartDataTable | डेटा तालिका चार्ट के नीचे दिखाई देती है |
Font / Fill | चार्ट टेक्स्ट तत्वों पर टेक्स्ट फ़ॉर्मेटिंग और फ़िल (सॉलिड रंग, ग्रेडिएंट) |