JavaScript Kullanarak Sunumlarda SmartArt Şekil Düğümlerini Yönetme
Genel Bakış
PowerPoint sunumlarındaki SmartArt grafikler, metin içeren ve diyagramın yapısını tanımlayan düğümler aracılığıyla düzenlenir. Aspose.Slides, bu SmartArt düğümleriyle programatik olarak çalışmanıza olanak tanır: yeni düğümler ve alt düğümler ekleyebilir, alt düğümleri belirli bir konuma ekleyebilir, mevcut düğümlere erişebilir ve bunların metin, seviye ve konumunu okuyabilirsiniz.
Bu makale, SmartArt şekil düğümlerinin nasıl yönetileceğini açıklar. Düğümlerin nasıl kaldırılacağını, alt düğümlerle indeks veya konuma göre nasıl çalışılacağını, asistan düğümünün normal düğüme nasıl dönüştürüleceğini, SmartArt düğüm şekillerinin konum, boyut ve döndürülmesini nasıl ayarlayacağınızı, düğüm dolgu biçimlerini nasıl belirleyeceğinizi ve bir SmartArt alt düğümü için küçük resim oluşturmayı gösterir.
PowerPoint Sunumunda JavaScript kullanarak SmartArt Düğümü Ekleme
Aspose.Slides for Node.js via Java, SmartArt şekillerini yönetmek için en basit API’yi sunar. Aşağıdaki örnek kod, SmartArt şekli içinde düğüm ve alt düğüm eklemeye yardımcı olacaktır.
- SmartArt Şekli ile sunumu yükleyerek Presentation sınıfının bir örneğini oluşturun.
- İndeksini kullanarak ilk slaytın referansını alın.
- İlk slayttaki tüm şekillerde dolaşın.
- Şeklin SmartArt türünde olup olmadığını kontrol edin ve eğer SmartArt ise seçilen şekli SmartArt tipine dönüştürün.
- Add a new Node NodeCollection içinde yeni bir düğüm ekleyin ve metni TextFrame içinde ayarlayın.
- Şimdi, yeni eklenen SmartArt düğümüne bir Add Child Node(SmartArtNode) ekleyin ve metni TextFrame içinde ayarlayın.
- Sunumu kaydedin.
// İstenen sunumu yükle
var pres = new aspose.slides.Presentation("SimpleSmartArt.pptx");
try {
// İlk slayttaki her şekli dolaş
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// Şeklin SmartArt türünde olup olmadığını kontrol et
if (java.instanceOf(shape, "com.aspose.slides.SmartArt")) {
// Şekli SmartArt tipine dönüştür
var smart = shape;
// Yeni bir SmartArt düğümü ekleme
var TemNode = smart.getAllNodes().addNode();
// Metin ekleme
TemNode.getTextFrame().setText("Test");
// Üst düğüme yeni bir alt düğüm ekleme. Koleksiyonun sonuna eklenecek
var newNode = TemNode.getChildNodes().addNode();
// Metin ekleme
newNode.getTextFrame().setText("New Node Added");
}
}
// Sunumu kaydet
pres.save("AddSmartArtNode.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Belirli Konumda SmartArt Düğümü Ekleme
Aşağıdaki örnek kodda, SmartArt şeklinin ilgili düğümlerine ait alt düğümlerin belirli bir konuma nasıl ekleneceği açıklanmıştır.
- Presentation sınıfının bir örneğini oluşturun.
- İndeksini kullanarak ilk slaytın referansını alın.
- Erişilen slayta bir StackedList türünde SmartArt şekli ekleyin.
- Eklenen SmartArt şeklinin ilk düğümüne erişin.
- Seçilen Node(SmartArtNode) için konum 2’de bir Child Node([SmartArtNode#getChildNodes–]) ekleyin ve metnini ayarlayın.
- Sunumu kaydedin.
// Bir sunum örneği oluşturma
var pres = new aspose.slides.Presentation();
try {
// Sunum slaytına erişim
var slide = pres.getSlides().get_Item(0);
// Smart Art IShape ekle
var smart = slide.getShapes().addSmartArt(0, 0, 400, 400, aspose.slides.SmartArtLayoutType.StackedList);
// 0. indeksteki SmartArt düğümüne erişim
var node = smart.getAllNodes().get_Item(0);
// Üst düğümde konum 2'de yeni alt düğüm ekleme
var chNode = node.getChildNodes().addNodeByPosition(2);
// Metin ekle
chNode.getTextFrame().setText("Sample Text Added");
// Sunumu kaydet
pres.save("AddSmartArtNodeByPosition.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
JavaScript kullanarak PowerPoint Sunumunda SmartArt Düğümüne Erişme
Aşağıdaki örnek kod, SmartArt şekli içindeki düğümlere nasıl erişileceğini gösterir. SmartArt’ın LayoutType’ının yalnızca okunabilir olduğunu ve yalnızca SmartArt şekli eklenirken ayarlandığını unutmayın.
- SmartArt Şekli ile sunumu yükleyerek Presentation sınıfının bir örneğini oluşturun.
- İndeksini kullanarak ilk slaytın referansını alın.
- İlk slayttaki tüm şekillerde dolaşın.
- Şeklin SmartArt türünde olup olmadığını kontrol edin ve eğer SmartArt ise seçilen şekli SmartArt tipine dönüştürün.
- SmartArt Şekli içindeki tüm Nodes arasında dolaşın.
- SmartArt Düğümünün konum, seviye ve metin gibi bilgilerini alın ve görüntüleyin.
// Presentation sınıfını örnekle
var pres = new aspose.slides.Presentation("SmartArtShape.pptx");
try {
// İlk slaytı al
var slide = pres.getSlides().get_Item(0);
// İlk slayttaki her şekli dolaş
for (let i = 0; i < slide.getShapes().size(); i++) {
let shape = slide.getShapes().get_Item(i);
// Şeklin SmartArt türünde olup olmadığını kontrol et
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Şekli SmartArt tipine dönüştür
var smart = shape;
// SmartArt içindeki tüm düğümleri dolaş
for (var j = 0; j < smart.getAllNodes().size(); j++) {
// i indeksindeki SmartArt düğümüne erişim
var node = smart.getAllNodes().get_Item(j);
// SmartArt düğüm parametrelerini yazdırma
console.log(node.getTextFrame().getText() + " " + node.getLevel() + " " + node.getPosition());
}
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
SmartArt Alt Düğümüne Erişme
Aşağıdaki örnek kod, SmartArt şeklinin ilgili düğümlerine ait alt düğümlere nasıl erişileceğini gösterir.
- SmartArt Şekli ile sunumu yükleyerek Presentation sınıfının bir örneğini oluşturun.
- İndeksini kullanarak ilk slaytın referansını alın.
- İlk slayttaki tüm şekillerde dolaşın.
- Şeklin SmartArt türünde olup olmadığını kontrol edin ve eğer SmartArt ise seçilen şekli SmartArt tipine dönüştürün.
- SmartArt Şekli içindeki tüm Nodes arasında dolaşın.
- Her seçilen SmartArt şekli Node(SmartArtNode) için belirli bir düğümdeki tüm Child Nodes arasında dolaşın.
- Child Node([SmartArtNode#getChildNodes–]) konumu, seviyesi ve metni gibi bilgileri alın ve görüntüleyin.
// Presentation sınıfının bir örneğini oluştur
var pres = new aspose.slides.Presentation("AccessChildNodes.pptx");
try {
// İlk slaytı al
var slide = pres.getSlides().get_Item(0);
// İlk slayttaki her şekli dolaş
for (let s = 0; s < slide.getShapes().size(); s++) {
let shape = slide.getShapes().get_Item(s);
// Şeklin SmartArt türünde olup olmadığını kontrol et
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Şekli SmartArt tipine dönüştür
var smart = shape;
// SmartArt içindeki tüm düğümleri dolaş
for (var i = 0; i < smart.getAllNodes().size(); i++) {
// i indeksindeki SmartArt düğümüne erişim
var node0 = smart.getAllNodes().get_Item(i);
// i indeksindeki SmartArt düğümündeki alt düğümler arasında dolaş
for (var j = 0; j < node0.getChildNodes().size(); j++) {
// SmartArt düğümündeki alt düğüme erişim
var node = node0.getChildNodes().get_Item(j);
// SmartArt alt düğüm parametrelerini yazdırma
console.log("j = " + j + ", Text = " + node.getTextFrame().getText() + ", Level = " + node.getLevel() + ", Position = " + node.getPosition());
}
}
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
Belirli Konumda SmartArt Alt Düğümüne Erişme
Bu örnekte, SmartArt şeklinin ilgili düğümlerine ait alt düğümlere belirli bir konumda nasıl erişileceği öğrenilecektir.
- Presentation sınıfının bir örneğini oluşturun.
- İndeksini kullanarak ilk slaytın referansını alın.
- Bir StackedList türü SmartArt şekli ekleyin.
- Eklenen SmartArt şekline erişin.
- Erişilen SmartArt şeklinin indeks 0’ındaki düğüme erişin.
- get_Item() yöntemiyle erişilen SmartArt düğümünde konum 1’deki Child Node alın.
- Child Node([SmartArtNode#getChildNodes–]) konumu, seviyesi ve metni gibi bilgileri alın ve görüntüleyin.
// Sunumu örnekle
var pres = new aspose.slides.Presentation();
try {
// İlk slayta erişim
var slide = pres.getSlides().get_Item(0);
// İlk slayta SmartArt şekli ekleme
var smart = slide.getShapes().addSmartArt(0, 0, 400, 400, aspose.slides.SmartArtLayoutType.StackedList);
// 0. indeksteki SmartArt düğümüne erişim
var node = smart.getAllNodes().get_Item(0);
// Üst düğümde konum 1'deki alt düğüme erişim
var position = 1;
var chNode = node.getChildNodes().get_Item(position);
// SmartArt alt düğüm parametrelerini yazdırma
console.log("Text = " + chNode.getTextFrame().getText() + ", Level = " + chNode.getLevel() + ", Position = " + chNode.getPosition());
} finally {
if (pres != null) {
pres.dispose();
}
}
JavaScript kullanarak PowerPoint Sunumunda SmartArt Düğümünü Kaldırma
Bu örnekte, SmartArt şekli içindeki düğümlerin nasıl kaldırılacağı öğrenilecektir.
- SmartArt Şekli ile sunumu yükleyerek Presentation sınıfının bir örneğini oluşturun.
- İndeksini kullanarak ilk slaytın referansını alın.
- İlk slayttaki tüm şekillerde dolaşın.
- Şeklin SmartArt türünde olup olmadığını kontrol edin ve eğer SmartArt ise seçilen şekli SmartArt tipine dönüştürün.
- SmartArt içinde 0’dan fazla düğüm olup olmadığını kontrol edin.
- Silinecek SmartArt düğümünü seçin.
- Seçilen düğümü RemoveNode yöntemiyle kaldırın.
- Sunumu kaydedin.
// İstenen sunumu yükle
var pres = new aspose.slides.Presentation("AddSmartArtNode.pptx");
try {
// İlk slayttaki her şekli dolaş
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// Şeklin SmartArt türünde olup olmadığını kontrol et
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Şekli SmartArt tipine dönüştür
var smart = shape;
if (smart.getAllNodes().size() > 0) {
// 0. indeksteki SmartArt düğümüne erişim
var node = smart.getAllNodes().get_Item(0);
// Seçilen düğümü kaldırma
smart.getAllNodes().removeNode(node);
}
}
}
// Sunumu kaydet
pres.save("RemoveSmartArtNode.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Belirli Konumda SmartArt Düğümünü Kaldırma
Bu örnekte, SmartArt şekli içindeki düğümlerin belirli bir konumda nasıl kaldırılacağı öğrenilecektir.
- SmartArt Şekli ile sunumu yükleyerek Presentation sınıfının bir örneğini oluşturun.
- İndeksini kullanarak ilk slaytın referansını alın.
- İlk slayttaki tüm şekillerde dolaşın.
- Şeklin SmartArt türünde olup olmadığını kontrol edin ve eğer SmartArt ise seçilen şekli SmartArt tipine dönüştürün.
- İndeks 0’da bulunan SmartArt şekil düğümünü seçin.
- Seçilen SmartArt düğümünün 2’den fazla alt düğümü olup olmadığını kontrol edin.
- Position 1‘deki düğümü RemoveNode yöntemiyle kaldırın.
- Sunumu kaydedin.
// İstenen sunumu yükle
var pres = new aspose.slides.Presentation("AddSmartArtNode.pptx");
try {
// İlk slayttaki her şekli dolaş
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// Şeklin SmartArt türünde olup olmadığını kontrol et
if (java.instanceOf(shape, "com.aspose.slides.SmartArt")) {
// Şekli SmartArt tipine dönüştür
var smart = shape;
if (smart.getAllNodes().size() > 0) {
// 0. indeksteki SmartArt düğümüne erişim
var node = smart.getAllNodes().get_Item(0);
if (node.getChildNodes().size() >= 2) {
// 1. konumdaki alt düğümü kaldırma
node.getChildNodes().removeNode(1);
}
}
}
}
// Sunumu kaydet
pres.save("RemoveSmartArtNodeByPosition.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
SmartArt içinde Alt Düğüm İçin Özel Konum Ayarlama
Şimdi Aspose.Slides for Node.js via Java, SmartArtShape için X ve Y özelliklerini ayarlamayı destekliyor. Aşağıdaki kod parçacığı, özel SmartArtShape konumu, boyutu ve döndürülmesini nasıl ayarlayacağınızı gösterir; ayrıca yeni düğüm eklemenin tüm düğümlerin konum ve boyutlarının yeniden hesaplanmasına neden olduğunu unutmayın. Özel konum ayarlarıyla kullanıcı gereksinimlerine göre düğümler ayarlanabilir.
// Presentation sınıfını örnekle
var pres = new aspose.slides.Presentation("SimpleSmartArt.pptx");
try {
var smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(20, 20, 600, 500, aspose.slides.SmartArtLayoutType.OrganizationChart);
// SmartArt şekli yeni konuma taşı
var node = smart.getAllNodes().get_Item(1);
var shape = node.getShapes().get_Item(1);
shape.setX(shape.getX() + (shape.getWidth() * 2));
shape.setY(shape.getY() - (shape.getHeight() * 2));
// SmartArt şeklinin genişliğini değiştir
node = smart.getAllNodes().get_Item(2);
shape = node.getShapes().get_Item(1);
shape.setWidth(shape.getWidth() + (shape.getWidth() * 2));
// SmartArt şeklinin yüksekliğini değiştir
node = smart.getAllNodes().get_Item(3);
shape = node.getShapes().get_Item(1);
shape.setHeight(shape.getHeight() + (shape.getHeight() * 2));
// SmartArt şeklinin döndürülmesini değiştir
node = smart.getAllNodes().get_Item(4);
shape = node.getShapes().get_Item(1);
shape.setRotation(90);
pres.save("SmartArt.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
pres.dispose();
}
Asistan Düğümünü Kontrol Etme
Araştırmamız için aşağıdaki kaynak SmartArt şekli kullanılacaktır.
![]() |
|---|
| Şekil: Slaytta Kaynak SmartArt şekli |
Aşağıdaki örnek kodda, SmartArt düğüm koleksiyonundaki Assistant Nodes (Asistan Düğümler) nasıl tanımlanır ve değiştirilir incelenecektir.
- SmartArt Şekli ile sunumu yükleyerek Presentation sınıfının bir örneğini oluşturun.
- İndeksini kullanarak ikinci slaytın referansını alın.
- İlk slayttaki tüm şekillerde dolaşın.
- Şeklin SmartArt türünde olup olmadığını kontrol edin ve eğer SmartArt ise seçilen şekli SmartArt tipine dönüştürün.
- SmartArt şekli içindeki tüm düğümlerde dolaşın ve Assistant Nodes olup olmadıklarını kontrol edin.
- Asistan Düğümünün durumunu normal düğüm olarak değiştirin.
- Sunumu kaydedin.
// Bir sunum örneği oluşturma
var pres = new aspose.slides.Presentation("AddNodes.pptx");
try {
// İlk slayttaki her şekli dolaş
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// Şeklin SmartArt türünde olup olmadığını kontrol et
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Şekli SmartArt tipine dönüştür
var smart = shape;
// SmartArt şeklinin tüm düğümleri arasında dolaş
for (var j = 0; j < smart.getAllNodes().size(); j++) {
var node = smart.getAllNodes().get_Item(j);
// Düğümün Asistan düğümü olup olmadığını kontrol et
if (node.isAssistant()) {
// Asistan düğümünü false olarak ayarla ve normal düğüm yap
node.isAssistant();
}
}
}
}
// Sunumu kaydet
pres.save("ChangeAssitantNode.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
![]() |
|---|
| Şekil: Slayt içindeki SmartArt şekline eklenen Asistan Düğümleri |
Düğümün Dolgu Biçimini Ayarlama
Aspose.Slides for Node.js via Java, özel SmartArt şekilleri eklemeyi ve dolgu biçimlerini ayarlamayı mümkün kılar. Bu makale, SmartArt şekillerinin nasıl oluşturulup erişileceğini ve dolgu biçimlerinin nasıl ayarlanacağını açıklamaktadır.
Lütfen aşağıdaki adımları izleyin:
- Presentation sınıfının bir örneğini oluşturun.
- İndeksini kullanarak bir slaytın referansını alın.
- LayoutType ayarlayarak bir SmartArt şekli ekleyin.
- SmartArt şekli düğümleri için FillFormat ayarlayın.
- Değiştirilmiş sunumu PPTX dosyası olarak yazın.
// Sunumu örnekle
var pres = new aspose.slides.Presentation();
try {
// Slayta erişim
var slide = pres.getSlides().get_Item(0);
// SmartArt şekli ve düğümler ekleme
var chevron = slide.getShapes().addSmartArt(10, 10, 800, 60, aspose.slides.SmartArtLayoutType.ClosedChevronProcess);
var node = chevron.getAllNodes().addNode();
node.getTextFrame().setText("Some text");
// Düğüm dolgu rengini ayarlama
for (let i = 0; i < node.getShapes().size(); i++) {
let item = node.getShapes().get_Item(i);
item.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
item.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
}
// Sunumu kaydet
pres.save("TestSmart.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
SmartArt Alt Düğümünün Küçük Resmini Oluşturma
Geliştiriciler aşağıdaki adımları izleyerek bir SmartArt alt düğümünün küçük resmini oluşturabilir:
- Presentation sınıfının bir örneğini oluşturun.
- SmartArt ekleyin.
- İndeksini kullanarak bir düğümün referansını alın.
- Küçük resim görüntüsünü alın.
- Küçük resim görüntüsünü istenilen herhangi bir görüntü formatında kaydedin.
// PPTX dosyasını temsil eden Presentation sınıfını örnekle
var pres = new aspose.slides.Presentation();
try {
// SmartArt ekle
var smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, aspose.slides.SmartArtLayoutType.BasicCycle);
// Bir düğümün referansını indeksini kullanarak al
var node = smart.getNodes().get_Item(1);
// Küçük resmi al
var slideImage = node.getShapes().get_Item(0).getImage();
// Küçük resmi kaydet
try {
slideImage.save("SmartArt_ChildNote_Thumbnail.png", aspose.slides.ImageFormat.Png);
} finally {
if (slideImage != null) {
slideImage.dispose();
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
SSS
SmartArt animasyonu destekleniyor mu?
Evet. SmartArt normal bir şekil gibi ele alındığı için standart animasyonlar (giriş, çıkış, vurgu, hareket yolları) uygulanabilir ve zamanlamalar ayarlanabilir. Gerektiğinde SmartArt düğümleri içindeki şekiller de animasyonlandırılabilir.
Bir slaytta, iç kimliği bilinmeyen belirli bir SmartArt’ı güvenilir şekilde nasıl bulabilirim?
Alternatif metin (AltText) atayarak ve buna göre arama yaparak. SmartArt üzerinde ayırt edici bir AltText belirlemek, iç kimliklere dayanmak zorunda kalmadan bulmayı sağlar.
Sunumu PDF’ye dönüştürürken SmartArt görünümü korunur mu?
Evet. Aspose.Slides, PDF dışa aktarımı sırasında SmartArt’ı yüksek görsel doğrulukla işler ve düzen, renk ve efektleri korur.
Tüm SmartArt’ın (ön izlemeler veya raporlar için) bir görüntüsünü çıkarabilir miyim?
Evet. SmartArt şekli, raster formatlarda veya SVG olarak işlenebilir; bu sayede küçük resimler, raporlar veya web kullanımı için uygun vektörel veya raster çıktılar elde edilebilir.

