PHP Kullanarak PowerPoint Sunumlarında SmartArt Yönetimi

Genel Bakış

SmartArt, düğümler, düğüm şekilleri ve bir yerleşimden oluşan bir PowerPoint diyagramıdır. Aspose.Slides for PHP via Java ile SmartArt oluşturabilir, düğümlerindeki metni okuyabilir, yerleşimini değiştirebilir, gizli düğümleri inceleyebilir, organizasyon şeması yerleşimlerini yapılandırabilir ve resimli organizasyon şemaları oluşturabilirsiniz.

SmartArt Nesnesinden Metin Almak

Bir SmartArt düğümü bir veya daha fazla şekil içerebilir. Görünür metni okumak için SmartArt::getAllNodes üzerinden yineleme yapın, ardından SmartArtShape::getTextFrame tarafından döndürülen TextFrame’i okuyun.

$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();
}

SmartArt Nesnesinin Yerleşim Türünü Değiştirmek

SmartArt yerleşimi, düğümlerin nasıl düzenlendiğini ve bağlandığını kontrol eder. Aşağıdaki örnek, SmartArtLayoutType BasicBlockList değerine sahip bir SmartArt nesnesi oluşturur, bunu BasicProcess değerine değiştirir ve sunumu kaydeder.

$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();
}

Bir SmartArt Düğümünün Gizli Olup Olmadığını Kontrol Etmek

SmartArtNode::isHidden düğümün SmartArt veri modelinde gizli olup olmadığını gösterir. Seçilen yerleşim bu düğümleri görünür diyagram öğeleri olarak göstermese bile gizli düğümler yapıda bulunabilir.

Aşağıdaki örnek, SmartArtLayoutType RadialCycle değerini kullanan bir SmartArt nesnesine bir düğüm ekler ve düğümün gizli durumunu kontrol eder.

$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();
}

Organizasyon Şeması Yerleşimini Almak veya Ayarlamak

Bir organizasyon şeması yerleşimi kullanan SmartArt diyagramları için, SmartArtNode::getOrganizationChartLayout ve SmartArtNode::setOrganizationChartLayout çocuk düğümlerin bir üst düğüm altında nasıl düzenleneceğini tanımlar. Örneğin, seçilen OrganizationChartLayoutType’a bağlı olarak çocuk düğümleri soldan, sağdan veya her iki taraftan sarkıtacak şekilde ayarlayabilirsiniz.

Aşağıdaki örnek bir organizasyon şeması oluşturur ve ilk düğümün yerleşimini OrganizationChartLayoutType LeftHanging değerine ayarlar.

$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();
}

Resimli Organizasyon Şeması Oluşturmak

Resimli organizasyon şeması, resim yer tutucuları içeren hiyerarşi diyagramları için tasarlanmış bir SmartArt yerleşimidir. SmartArt nesnesini bir slayta eklerken SmartArtLayoutType PictureOrganizationChart değerini kullanın.

$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();
}

SSS

SmartArt, RTL dilleri için yansıtma veya tersine çevirme destekliyor mu?

Evet. SmartArt::setReversed yöntemi, seçilen SmartArt yerleşimi tersine çevirmeyi desteklediğinde diyagram yönünü soldan-sağa’dan sağdan-sola (veya geri) değiştirir.

SmartArt’ı aynı slayta ya da başka bir sunuma biçimlendirmeyi koruyarak nasıl kopyalayabilirim?

SmartArt şekilini klonlayın ShapeCollection::addClone ile ya da SmartArt içeren slaytı tamamını klonlayın clone the whole slide. Her iki yaklaşım da boyut, konum ve biçimlendirmeyi korur.

SmartArt’ı önizleme veya web dışa aktarımı için raster görüntüye nasıl render edebilirim?

Slaytı renderlayın ya da tüm sunumu PNG veya JPEG formatına dönüştürün. SmartArt slaytın bir parçası olarak renderlanır.

Bir slaytta birden fazla SmartArt nesnesi varsa, belirli bir SmartArt nesnesini nasıl bulabilirim?

SmartArt şekli üzerinde ayırt edici bir Shape::getAlternativeText ya da Shape::getName değeri belirleyin, bu değeri BaseSlide::getShapes içinde arayın ve ardından eşleşen şeklin bir SmartArt olduğunu kontrol edin.