Zarządzanie dymkami w wykresach prezentacji przy użyciu JavaScript
Przegląd
Ten artykuł wyjaśnia, jak pracować z dymkami dla etykiet danych wykresu w Aspose.Slides. Pokazuje, jak używać metody setShowLabelAsDataCallout, aby wyświetlać etykiety jako dymki, jak konfigurować ustawienia etykiet związane z dymkami dla wykresu pierścieniowego oraz informuje, że dymki i ich wygląd są zachowywane podczas eksportu prezentacji do formatu PDF, HTML5, SVG oraz formatów obrazów rastrowych.
Używanie dymków
Do klasy DataLabelFormat i DataLabelFormat dodano nowe metody getShowLabelAsDataCallout() oraz setShowLabelAsDataCallout(). Metody te określają, czy etykieta danych wykresu będzie wyświetlana jako dymek danych, czy jako etykieta danych.
var pres = new aspose.slides.Presentation();
try {
var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 500, 400);
chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true);
chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowLabelAsDataCallout(true);
chart.getChartData().getSeries().get_Item(0).getLabels().get_Item(2).getDataLabelFormat().setShowLabelAsDataCallout(false);
pres.save("DisplayCharts.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Ustawienie dymka dla wykresu pierścieniowego
Aspose.Slides for Node.js via Java zapewnia obsługę ustawiania kształtu dymka etykiety danych serii dla wykresu pierścieniowego. Poniżej podano przykładowy kod.
var pres = new aspose.slides.Presentation();
try {
var slide = pres.getSlides().get_Item(0);
var chart = slide.getShapes().addChart(aspose.slides.ChartType.Doughnut, 10, 10, 500, 500, false);
var workBook = chart.getChartData().getChartDataWorkbook();
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
chart.setLegend(false);
var seriesIndex = 0;
while (seriesIndex < 15) {
var series = chart.getChartData().getSeries().add(workBook.getCell(0, 0, seriesIndex + 1, "SERIES " + seriesIndex), chart.getType());
series.setExplosion(0);
series.getParentSeriesGroup().setDoughnutHoleSize(20);
series.getParentSeriesGroup().setFirstSliceAngle(351);
seriesIndex++;
}
var categoryIndex = 0;
while (categoryIndex < 15) {
chart.getChartData().getCategories().add(workBook.getCell(0, categoryIndex + 1, 0, "CATEGORY " + categoryIndex));
var i = 0;
while (i < chart.getChartData().getSeries().size()) {
var iCS = chart.getChartData().getSeries().get_Item(i);
var dataPoint = iCS.getDataPoints().addDataPointForDoughnutSeries(workBook.getCell(0, categoryIndex + 1, i + 1, 1));
dataPoint.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid));
dataPoint.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
dataPoint.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE"));
dataPoint.getFormat().getLine().setWidth(1);
dataPoint.getFormat().getLine().setStyle(aspose.slides.LineStyle.Single);
dataPoint.getFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.Solid);
if (i == (chart.getChartData().getSeries().size() - 1)) {
var lbl = dataPoint.getLabel();
lbl.getTextFormat().getTextBlockFormat().setAutofitType(aspose.slides.TextAutofitType.Shape);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontBold(aspose.slides.NullableBool.True);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setLatinFont(new aspose.slides.FontData("DINPro-Bold"));
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(12);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "LIGHT_GRAY"));
lbl.getDataLabelFormat().getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE"));
lbl.getDataLabelFormat().setShowValue(false);
lbl.getDataLabelFormat().setShowCategoryName(true);
lbl.getDataLabelFormat().setShowSeriesName(false);
lbl.getDataLabelFormat().setShowLeaderLines(true);
lbl.getDataLabelFormat().setShowLabelAsDataCallout(false);
chart.validateChartLayout();
lbl.setX(lbl.getX() + 0.5);
lbl.setY(lbl.getY() + 0.5);
}
i++;
}
categoryIndex++;
}
pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
FAQ
Czy dymki są zachowywane podczas konwertowania prezentacji do PDF, HTML5, SVG lub obrazów?
Tak. Dymki są częścią renderowania wykresu, więc przy eksporcie do PDF, HTML5, SVG lub obrazy rastrowe, są zachowywane razem z formatowaniem slajdu.
Czy niestandardowe czcionki działają w dymkach i czy ich wygląd może być zachowany podczas eksportu?
Tak. Aspose.Slides obsługuje osadzanie czcionek w prezentacji i kontroluje osadzanie czcionek podczas eksportu, takiego jak PDF, zapewniając, że dymki wyglądają tak samo na różnych systemach.