SmartArt kezelése PowerPoint prezentációkban PHP használatával

Áttekintés

A SmartArt egy PowerPoint-diagram, amely csomópontokból, csomópont alakzatokból és egy elrendezésből áll. Az Aspose.Slides for PHP via Java segítségével létrehozhat SmartArt-ot, kiolvashatja a szöveget a csomópontjaiból, módosíthatja az elrendezést, ellenőrizheti a rejtett csomópontokat, konfigurálhatja a szervezeti diagram elrendezéseket, és képes szervezeti diagramokat hozhat létre.

Szöveg lekérése egy SmartArt objektumból

Egy SmartArt csomópont egy vagy több alakzatot is tartalmazhat. A látható szöveg olvasásához iteráljon a SmartArt::getAllNodes felett, majd olvassa el a SmartArtShape::getTextFrame által visszaadott TextFrame objektumot.

$presentation = new Presentation("sample.pptx");
try {
    $slide = $presentation->getSlides()->get_Item(0);
    $shape = $slide->getShapes()->get_Item(0);

    if (java_instanceof($shape, new JavaClass("com.aspose.slides.ISmartArt"))) {
        $smartArt = $shape;

        foreach ($smartArt->getAllNodes() as $smartArtNode) {
            foreach ($smartArtNode->getShapes() as $smartArtShape) {
                if (!java_is_null($smartArtShape->getTextFrame())) {
                    echo($smartArtShape->getTextFrame()->getText());
                }
            }
        }
    }
} finally {
    $presentation->dispose();
}

A SmartArt objektum elrendezéstípusának módosítása

Az SmartArt elrendezés szabályozza, hogyan helyezkednek el és kapcsolódnak a csomópontok. Az alábbi példában egy SmartArt objektumot hozunk létre a SmartArtLayoutType BasicBlockList értékével, átállítjuk BasicProcess értékre, és elmentjük a prezentációt.

$presentation = new Presentation();
try {
    $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();
}

Ellenőrizze, hogy egy SmartArt csomópont rejtett-e

A SmartArtNode::isHidden jelzi, hogy a csomópont rejtett-e a SmartArt adatmodellben. Rejtett csomópontok létezhetnek a struktúrában akkor is, ha a kiválasztott elrendezés nem jeleníti meg őket látható diagramelemként.

Az alábbi példában egy csomópontot adunk egy SmartArt objektumhoz, amely a SmartArtLayoutType RadialCycle értéket használja, majd ellenőrizzük a csomópont rejtett állapotát.

$presentation = new Presentation();
try {
    $smartArt = $presentation->getSlides()->get_Item(0)->getShapes()->addSmartArt(
        10, 10, 400, 300, SmartArtLayoutType::RadialCycle);

    $smartArtNode = $smartArt->getAllNodes()->addNode();
    $isHidden = $smartArtNode->isHidden();

    if ($isHidden) {
        echo("The node is hidden in the SmartArt data model.");
    }

    $presentation->save("CheckSmartArtHiddenProperty_out.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

Szervezeti diagram elrendezésének lekérése vagy beállítása

Az olyan SmartArt diagramok esetén, amelyek szervezeti diagram elrendezést használnak, a SmartArtNode::getOrganizationChartLayout és a SmartArtNode::setOrganizationChartLayout határozzák meg, hogyan rendeződnek el a gyermekcsomópontok egy szülőcsomópont alatt. Például beállíthatja, hogy a gyermekcsomópontok balról, jobbról vagy mindkét oldalról függjenek, a kiválasztott OrganizationChartLayoutType függvényében.

Az alábbi példában egy szervezeti diagramot hozunk létre, és az első csomópont elrendezését a OrganizationChartLayoutType LeftHanging értékre állítjuk.

$presentation = new Presentation();
try {
    $smartArt = $presentation->getSlides()->get_Item(0)->getShapes()->addSmartArt(
        10, 10, 400, 300, SmartArtLayoutType::OrganizationChart);

    $rootNode = $smartArt->getNodes()->get_Item(0);
    $rootNode->setOrganizationChartLayout(OrganizationChartLayoutType::LeftHanging);

    $presentation->save("OrganizationChartLayout_out.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

Képes szervezeti diagram létrehozása

A képes szervezeti diagram egy olyan SmartArt elrendezés, amely hierarchikus diagramokhoz lett tervezve, és képhelyettesítőket tartalmaz. Használja a SmartArtLayoutType PictureOrganizationChart értékét a SmartArt objektum diára történő hozzáadásakor.

$presentation = new Presentation();
try {
    $smartArt = $presentation->getSlides()->get_Item(0)->getShapes()->addSmartArt(
        0, 0, 400, 400, SmartArtLayoutType::PictureOrganizationChart);

    $presentation->save("PictureOrganizationChart_out.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

GYIK

Támogatja a SmartArt a tükörképezést vagy fordítást jobb‑bal (RTL) nyelvek esetén?

Igen. A SmartArt::setReversed metódus bal‑jobb irányú diagramot fordít jobbra‑balra vagy vissza, ha a kiválasztott SmartArt elrendezés támogatja a fordítást.

Hogyan másolhatom a SmartArt-ot ugyanarra a diára vagy egy másik prezentációba a formázás megőrzésével?

A SmartArt alakzatot klónozhatja a ShapeCollection::addClone vagy a teljes diát klónozhatja amely a SmartArt-ot tartalmazza. Mindkét módszer megőrzi a méretet, a pozíciót és a formázást.

Hogyan jeleníthetem meg a SmartArt-ot raszterképként előnézet vagy webes export céljából?

Renderelje a diát vagy a teljes prezentációt PNG vagy JPEG formátumba. A SmartArt a dia részeként kerül renderelésre.

Hogyan találhatok meg egy adott SmartArt objektumot a dián, ha több is van?

Állítson be egy egyedi Shape::getAlternativeText vagy Shape::getName értéket a SmartArt alakzaton, keresse meg ezt az értéket a BaseSlide::getShapes között, majd ellenőrizze, hogy a megtalált alakzat egy SmartArt.