จัดการ SmartArt ในงานนำเสนอ PowerPoint ด้วย Java
ภาพรวม
SmartArt คือแผนภาพ PowerPoint ที่สร้างจากโหนด, รูปร่างโหนด, และเค้าโครง ด้วย Aspose.Slides for Java คุณสามารถสร้าง SmartArt, อ่านข้อความจากโหนดของมัน, เปลี่ยนเค้าโครง, ตรวจสอบโหนดที่ซ่อนอยู่, กำหนดค่าเค้าโครงแผนภูมิองค์กร, และสร้างแผนภูมิองค์กรแบบภาพได้.
รับข้อความจากอ็อบเจ็กต์ SmartArt
โหนด SmartArt สามารถมีรูปทรงหนึ่งหรือหลายรูป เพื่ออ่านข้อความที่มองเห็นได้ ให้วนลูปผ่าน ISmartArt.getAllNodes แล้วอ่าน ITextFrame ที่ส่งกลับโดย ISmartArtShape.getTextFrame.
Presentation presentation = new Presentation("sample.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IShape shape = slide.getShapes().get_Item(0);
if (shape instanceof ISmartArt) {
ISmartArt smartArt = (ISmartArt) shape;
for (ISmartArtNode node : smartArt.getAllNodes()) {
for (ISmartArtShape nodeShape : node.getShapes()) {
if (nodeShape.getTextFrame() != null) {
System.out.println(nodeShape.getTextFrame().getText());
}
}
}
}
} finally {
presentation.dispose();
}
เปลี่ยนประเภทเค้าโครงของอ็อบเจ็กต์ SmartArt
เค้าโครง SmartArt ควบคุมวิธีการจัดเรียงและเชื่อมต่อโหนด ตัวอย่างต่อไปนี้สร้างอ็อบเจ็กต์ SmartArt ด้วยค่า SmartArtLayoutType BasicBlockList แล้วเปลี่ยนเป็นค่า BasicProcess และบันทึกงานนำเสนอ.
Presentation presentation = new Presentation();
try {
ISmartArt smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
10, 10, 400, 300, SmartArtLayoutType.BasicBlockList);
smartArt.setLayout(SmartArtLayoutType.BasicProcess);
presentation.save("ChangeSmartArtLayout_out.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
ตรวจสอบว่าโหนด SmartArt ถูกซ่อนหรือไม่
ISmartArtNode.isHidden บ่งชี้ว่าโหนดถูกซ่อนอยู่ในโมเดลข้อมูล SmartArt หรือไม่ โหนดที่ซ่อนอยู่สามารถอยู่ในโครงสร้างได้แม้เค้าโครงที่เลือกจะไม่แสดงเป็นองค์ประกอบแผนภาพที่มองเห็นได้.
ตัวอย่างต่อไปนี้เพิ่มโหนดเข้าไปในอ็อบเจ็กต์ SmartArt ที่ใช้ค่า SmartArtLayoutType RadialCycle และตรวจสอบสถานะการซ่อนของโหนด.
Presentation presentation = new Presentation();
try {
ISmartArt smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
10, 10, 400, 300, SmartArtLayoutType.RadialCycle);
ISmartArtNode node = smartArt.getAllNodes().addNode();
boolean isHidden = node.isHidden();
if (isHidden) {
System.out.println("The node is hidden in the SmartArt data model.");
}
presentation.save("CheckSmartArtHiddenProperty_out.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
รับหรือกำหนดเค้าโครงแผนภูมิองค์กร
สำหรับแผนภาพ SmartArt ที่ใช้เค้าโครงแผนภูมิองค์กร, ISmartArtNode.getOrganizationChartLayout และ ISmartArtNode.setOrganizationChartLayout กำหนดวิธีการจัดเรียงโหนดย่อยใต้โหนดพาเรนต์ ตัวอย่างเช่น คุณสามารถตั้งค่าให้โหนดย่อยแขวนจากด้านซ้าย, ด้านขวา หรือทั้งสองด้าน ขึ้นอยู่กับ OrganizationChartLayoutType ที่เลือก.
ตัวอย่างต่อไปนี้สร้างแผนภูมิองค์กรและตั้งค่าเค้าโครงสำหรับโหนดแรกเป็นค่า OrganizationChartLayoutType LeftHanging.
Presentation presentation = new Presentation();
try {
ISmartArt smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
10, 10, 400, 300, SmartArtLayoutType.OrganizationChart);
ISmartArtNode rootNode = smartArt.getNodes().get_Item(0);
rootNode.setOrganizationChartLayout(OrganizationChartLayoutType.LeftHanging);
presentation.save("OrganizationChartLayout_out.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
สร้างแผนภูมิองค์กรแบบภาพ
แผนภูมิองค์กรแบบภาพคือเค้าโครง SmartArt ที่ออกแบบมาสำหรับแผนภาพลำดับชั้นที่มีตำแหน่งภาพใช้ SmartArtLayoutType ค่า PictureOrganizationChart เมื่อเพิ่มอ็อบเจ็กต์ SmartArt ลงในสไลด์.
Presentation presentation = new Presentation();
try {
ISmartArt smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
0, 0, 400, 400, SmartArtLayoutType.PictureOrganizationChart);
presentation.save("PictureOrganizationChart_out.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
คำถามที่พบบ่อย
SmartArt รองรับการสะท้อนหรือการกลับด้านสำหรับภาษา RTL หรือไม่?
ใช่ วิธีการ ISmartArt.setReversed จะสลับทิศทางของแผนภาพจากซ้ายไปขวาเป็นขวาไปซ้าย หรือกลับกัน เมื่อเค้าโครง SmartArt ที่เลือกรองรับการกลับด้าน.
ฉันจะคัดลอก SmartArt ไปยังสไลด์เดียวกันหรือไปยังงานนำเสนออื่นพร้อมรักษาการจัดรูปแบบได้อย่างไร?
คุณสามารถ คัดลอกรูปแบบ SmartArt ด้วย ShapeCollection.addClone หรือ คัดลอกสไลด์ทั้งหมด ที่มี SmartArt ทั้งหมด ทั้งสองวิธีจะคงขนาด, ตำแหน่ง, และการจัดรูปแบบไว้.
ฉันจะเรนเดอร์ SmartArt เป็นภาพเรสเตอร์เพื่อการแสดงตัวอย่างหรือการส่งออกเว็บได้อย่างไร?
เรนเดอร์สไลด์ หรือทั้งงานนำเสนอเป็น PNG หรือ JPEG SmartArt จะถูกเรนเดอร์เป็นส่วนหนึ่งของสไลด์.
ฉันจะค้นหาอ็อบเจ็กต์ SmartArt เฉพาะบนสไลด์ได้อย่างไรหากมีหลายอ็อบเจ็กต์?
ตั้งค่า Shape.getAlternativeText หรือ Shape.getName ที่เป็นเอกลักษณ์บนรูปทรง SmartArt แล้วค้นหาค่านั้นใน BaseSlide.getShapes จากนั้นตรวจสอบว่ารูปทรงที่ตรงกันเป็น ISmartArt.