JavaScript Kullanarak PowerPoint Sunumlarında SmartArt Yönetimi

Genel Bakış

SmartArt, düğümler, düğüm şekilleri ve bir yerleşimden oluşturulan bir PowerPoint diyagramıdır. Aspose.Slides for Node.js 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 Al

Bir SmartArt düğümü bir veya daha fazla şekil içerebilir. Düğüm şekillerinden metni okumak için SmartArt.getAllNodes üzerinden yineleyin, ardından SmartArtShape.getTextFrame tarafından döndürülen TextFrame okuyun.

Örnek, en az bir slaytı ve o slaytta ilk şekil olarak bir SmartArt nesnesi içeren bir sunum gerektirir. Her mevcut metin çerçevesini konsola yazdırır.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

let presentation = new aspose.slides.Presentation("sample.pptx");
try {
    let slide = presentation.getSlides().get_Item(0);
    let shape = slide.getShapes().get_Item(0);

    if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
        let smartArt = shape;
        let nodes = smartArt.getAllNodes();

        for (let nodeIndex = 0; nodeIndex < nodes.size(); nodeIndex++) {
            let node = nodes.get_Item(nodeIndex);
            let nodeShapes = node.getShapes();

            for (let shapeIndex = 0; shapeIndex < nodeShapes.size(); shapeIndex++) {
                let nodeShape = nodeShapes.get_Item(shapeIndex);

                if (nodeShape.getTextFrame() != null) {
                    console.log(nodeShape.getTextFrame().getText());
                }
            }
        }
    } else {
        console.log("The first shape is not a SmartArt object.");
    }
} finally {
    presentation.dispose();
}

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

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. ShapeCollection.addSmartArt’a geçirilen konum ve boyut noktalar cinsindendir. Yerleşimi değiştirmek için SmartArt.setLayout kullanın.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

let presentation = new aspose.slides.Presentation();
try {
    let slide = presentation.getSlides().get_Item(0);

    let smartArt = slide.getShapes().addSmartArt(10, 10, 400, 300, aspose.slides.SmartArtLayoutType.BasicBlockList);
    smartArt.setLayout(aspose.slides.SmartArtLayoutType.BasicProcess);

    presentation.save("ChangeSmartArtLayout.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

SmartArt Düğümünün Gizli Olup Olmadığını Kontrol Et

SmartArtNode.isHidden düğümün SmartArt veri modelinde gizli olup olmadığını gösterir. Seçilen yerleşim, düğümü görünür diyagram öğesi 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 eklenen düğümün gizli durumunu kontrol eder. Düğüm gizli ise bir mesaj yazdırır ve diyagramı kaydeder.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

let presentation = new aspose.slides.Presentation();
try {
    let slide = presentation.getSlides().get_Item(0);

    let smartArt = slide.getShapes().addSmartArt(10, 10, 400, 300, aspose.slides.SmartArtLayoutType.RadialCycle);
    let node = smartArt.getAllNodes().addNode();
    let isHidden = node.isHidden();

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

    presentation.save("CheckSmartArtHiddenProperty.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Organizasyon Şeması Yerleşimini Al veya Ayarla

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

Aşağıdaki örnek bir organizasyon şeması oluşturur ve ilk düğümün yerleşimini OrganizationChartLayoutType LeftHanging değerine ayarlar. Sıfır tabanlı 0 indeksi ilk üst düzey düğümü seçer; alt düğümleri seçilen düzeni kullanır. Değiştirilmiş sunum daha sonra kaydedilir.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

let presentation = new aspose.slides.Presentation();
try {
    let slide = presentation.getSlides().get_Item(0);

    let smartArt = slide.getShapes().addSmartArt(10, 10, 400, 300, aspose.slides.SmartArtLayoutType.OrganizationChart);
    let rootNode = smartArt.getNodes().get_Item(0);
    rootNode.setOrganizationChartLayout(aspose.slides.OrganizationChartLayoutType.LeftHanging);

    presentation.save("OrganizationChartLayout.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Resimli Organizasyon Şeması Oluştur

Resimli organizasyon şeması, görüntü yer tutucuları içeren hiyerarşi diyagramları için tasarlanmış bir SmartArt yerleşimidir. Bir slayta SmartArt nesnesi eklerken SmartArtLayoutType PictureOrganizationChart değerini kullanın. Bu örnek, görüntü yer tutucuları içeren bir diyagramı kaydeder; yer tutuculara görüntü eklemez.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

let presentation = new aspose.slides.Presentation();
try {
    let slide = presentation.getSlides().get_Item(0);

    let smartArt = slide.getShapes().addSmartArt(0, 0, 400, 400, aspose.slides.SmartArtLayoutType.PictureOrganizationChart);

    presentation.save("PictureOrganizationChart.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Eski Diyagramları Şekil Gruplarına Dönüştür

Mevcut bir sunumu modernleştirirken, PowerPoint 97–2003’te oluşturulmuş bir organizasyon şemasını güncellemeniz gerekebilir. Aspose.Slides bu eski diyagramları LegacyDiagram nesneleri olarak temsil eder. Bir diyagramı, bireysel görsel öğeleri düzenleyebilmek için şekil grubu haline dönüştürmek üzere LegacyDiagram.convertToGroupShape kullanın. Ayrıntılar için LegacyDiagram API Reference adresine bakın.

Dönüştürme, orijinal diyagramı kaldırmadan şekil koleksiyonuna yeni bir grup ekler. Dönüşüm başarılı olduktan sonra, kopya içeriği önlemek için orijinali ShapeCollection.remove ile kaldırın. Şekil ekleme ve kaldırma işlemleri yinelemeyi bozmasın diye, dönüştürmeden önce eski diyagramları bir listeye toplayın.

Aşağıdaki örnek bir sunumu açar, her slaytı arar, diyagramları şekil gruplarına dönüştürür ve güncellenmiş sunumu PPTX olarak kaydeder.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

let presentation = new aspose.slides.Presentation("legacy-diagrams.ppt");
try {
    let slides = presentation.getSlides();
    for (let slideIndex = 0; slideIndex < slides.size(); slideIndex++) {
        let slide = slides.get_Item(slideIndex);
        let shapes = slide.getShapes();
        let legacyDiagrams = [];
        for (let shapeIndex = 0; shapeIndex < shapes.size(); shapeIndex++) {
            let shape = shapes.get_Item(shapeIndex);
            if (java.instanceOf(shape, "com.aspose.slides.ILegacyDiagram")) {
                legacyDiagrams.push(shape);
            }
        }

        for (let legacyDiagram of legacyDiagrams) {
            let groupShape = legacyDiagram.convertToGroupShape();

            if (groupShape != null) {
                shapes.remove(legacyDiagram);
            }
        }
    }

    presentation.save("modernized.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Kaydedilen sunum, dönüştürülmüş eski diyagramların yerine düzenlenebilir şekil grupları içerir; yanlarında orijinal diyagram kalmaz. PPTX’i PowerPoint’te açarak her grup içindeki metin, doldurma veya konum gibi bireysel öğeleri düzenleyebilirsiniz.

FAQ

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

Evet. Seçili SmartArt yerleşimi ters çevirme destekliyorsa, SmartArt.setReversed yöntemi diyagram yönünü soldan sağa’dan sağdan sola’ya veya geri çevirir.

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

SmartArt şekli, ShapeCollection.addClone ile clone the SmartArt shape veya SmartArt içeren tüm slaytı clone the whole slide ile kopyalayabilirsiniz. Her iki yaklaşım da boyut, konum ve biçimlendirmeyi korur.

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

Slaytı Render Et veya tüm sunumu PNG veya JPEG’e dönüştürün. SmartArt, slaytın bir parçası olarak render edilir.

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

SmartArt şekline ayırt edici bir alternatif metin veya ad atamak için Shape.setAlternativeText veya Shape.setName kullanın, bu değeri BaseSlide.getShapes içinde arayın ve eşleşen şeklin bir SmartArt olduğundan emin olun.