จัดการคอลลอทในแผนภูมิการนำเสนอบน Android
ภาพรวม
บทความนี้อธิบายวิธีการทำงานกับ callout สำหรับป้ายชื่อข้อมูลของแผนภูมิใน Aspose.Slides โดยแสดงวิธีการใช้เมธอด setShowLabelAsDataCallout เพื่อแสดงป้ายชื่อเป็น callout วิธีการกำหนดค่าการตั้งค่าเลเบลที่เกี่ยวข้องกับ callout สำหรับแผนภูมิ Doughnut และบอกว่า callout พร้อมลักษณะการแสดงผลจะได้รับการรักษาไว้เมื่อส่งออกงานนำเสนอเป็น PDF, HTML5, SVG และรูปแบบรูปภาพแบบราสเตอร์
การใช้ Callouts
เมธอดใหม่ getShowLabelAsDataCallout() และ setShowLabelAsDataCallout() ได้ถูกเพิ่มไปยังคลาส DataLabelFormat และอินเทอร์เฟส IDataLabelFormat เมธอดเหล่านี้กำหนดว่าป้ายชื่อข้อมูลของแผนภูมิกำหนดจะถูกแสดงเป็น callout หรือเป็นป้ายชื่อข้อมูลปกติ
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(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", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
ตั้ง Callout สำหรับแผนภูมิ Doughnut
Aspose.Slides for Android via Java มีการสนับสนุนการตั้งรูปแบบ callout ของป้ายชื่อข้อมูลชุดสำหรับแผนภูมิ Doughnut ตัวอย่างโค้ดด้านล่างแสดงวิธีการใช้งาน
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.Doughnut, 10, 10, 500, 500, false);
IChartDataWorkbook workBook = chart.getChartData().getChartDataWorkbook();
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
chart.setLegend(false);
int seriesIndex = 0;
while (seriesIndex < 15)
{
IChartSeries series = chart.getChartData().getSeries().add(workBook.getCell(0, 0, seriesIndex + 1, "SERIES " + seriesIndex), chart.getType());
series.setExplosion(0);
series.getParentSeriesGroup().setDoughnutHoleSize((byte)20);
series.getParentSeriesGroup().setFirstSliceAngle(351);
seriesIndex++;
}
int categoryIndex = 0;
while (categoryIndex < 15)
{
chart.getChartData().getCategories().add(workBook.getCell(0, categoryIndex + 1, 0, "CATEGORY " + categoryIndex));
int i = 0;
while (i < chart.getChartData().getSeries().size())
{
IChartSeries iCS = chart.getChartData().getSeries().get_Item(i);
IChartDataPoint dataPoint = iCS.getDataPoints().addDataPointForDoughnutSeries(workBook.getCell(0, categoryIndex + 1, i + 1, 1));
dataPoint.getFormat().getFill().setFillType(FillType.Solid);
dataPoint.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
dataPoint.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.awt.Color.WHITE);
dataPoint.getFormat().getLine().setWidth(1);
dataPoint.getFormat().getLine().setStyle(LineStyle.Single);
dataPoint.getFormat().getLine().setDashStyle(LineDashStyle.Solid);
if (i == chart.getChartData().getSeries().size() - 1)
{
IDataLabel lbl = dataPoint.getLabel();
lbl.getTextFormat().getTextBlockFormat().setAutofitType(TextAutofitType.Shape);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontBold(NullableBool.True);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setLatinFont(new FontData("DINPro-Bold"));
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(12);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(FillType.Solid);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.awt.Color.LIGHT_GRAY);
lbl.getDataLabelFormat().getFormat().getLine().getFillFormat().getSolidFillColor().setColor(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((float) lbl.getX()+ (float)0.5);
lbl.setY((float)lbl.getY()+ (float)0.5);
}
i++;
}
categoryIndex++;
}
pres.save("chart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
คำถามที่พบบ่อย
Callout จะถูกเก็บไว้เมื่อแปลงงานนำเสนอเป็น PDF, HTML5, SVG หรือภาพหรือไม่?
ใช่. Callout เป็นส่วนหนึ่งของการเรนเดอร์แผนภูมิ ดังนั้นเมื่อคุณส่งออกเป็น PDF, HTML5, SVG, หรือ raster images, พวกมันจะถูกเก็บไว้พร้อมกับการจัดรูปแบบของสไลด์
ฟอนต์ที่กำหนดเองทำงานใน Callout หรือไม่ และลักษณะของมันจะถูกเก็บไว้เมื่อส่งออกหรือไม่?
ใช่. Aspose.Slides รองรับการ embedding fonts ลงในงานนำเสนอและควบคุมการฝังฟอนต์ระหว่างการส่งออก เช่น PDF, ทำให้ Callout มีลักษณะเดียวกันในระบบต่าง ๆ