C++ Kullanarak Sunumlarda Etiketleri ve Özel Verileri Yönetme
Genel Bakış
Bu makale, Aspose.Slides’in PowerPoint sunumlarında etiketler ve özel veri ile nasıl çalıştığını açıklar. Verilerin PPTX dosyalarında nasıl depolandığını kısaca özetler, sunuma özgü verilerin etiketler ve özel XML bölümleri olarak bulunabileceğini belirtir ve etiketleri anahtar‑değer dize çiftleri olarak tanımlar.
Ayrıca etiket değerlerini nasıl okuyacağınızı ve bir sunuma, tek bir slayta veya bir şekle nasıl etiket ekleyeceğinizi gösterir. Ek olarak, makale tüm etiketleri temizleme, bir etiketi adını kullanarak kaldırma ve etiket adlarının listesini alma gibi yaygın etiket yönetimi görevlerini kapsar.
Sunum Dosyalarında Veri Depolama
PPTX dosyaları—.pptx uzantılı öğeler—Office Open XML (OOXML) spesifikasyonunun bir parçası olan PresentationML formatında depolanır. Office Open XML formatı, sunumlardaki verilerin yapısını tanımlar.
Slayt, sunumların öğelerinden biri olduğunda, bir slayt parçası tek bir slaytın içeriğini içerir. Bir slayt parçasının, ISO/IEC 29500 tarafından tanımlanan Kullanıcı Tanımlı Etiketler gibi birçok parçaya açık ilişkileri olabilir.
Özel veri (sunuma özgü) veya kullanıcı, etiketler (ITagCollection) ve CustomXmlParts (ICustomXmlPartCollection) olarak bulunabilir.
Etiket Değerlerini Alma
Slaytlarda, bir etiket IDocumentProperties.Keywords özelliğine karşılık gelir. Bu örnek kod, Aspose.Slides for C++ ile bir Presentation için etiket değerini nasıl alacağınızı gösterir:
auto pres = System::MakeObject<Presentation>(u"pres.pptx");
System::String keywords = pres->get_DocumentProperties()->get_Keywords();
Sunumlara Etiket Ekleme
Aspose.Slides, sunumlara etiket eklemenize izin verir. Bir etiket genellikle iki öğeden oluşur:
- özel özelliğin adı -
MyTag - özel özelliğin değeri -
My Tag Value
Belirli bir kural veya özelliğe göre bazı sunumları sınıflandırmanız gerekiyorsa, bu sunumlara etiket eklemek faydalı olabilir. Örneğin, Kuzey Amerika ülkelerinden tüm sunumları bir araya getirmek isterseniz, bir Kuzey Amerika etiketi oluşturabilir ve ilgili ülkeleri (ABD, Meksika ve Kanada) değerler olarak atayabilirsiniz.
Bu örnek kod, Aspose.Slides for C++ kullanarak bir Presentation üzerine etiket eklemenin nasıl yapılacağını gösterir:
auto pres = System::MakeObject<Presentation>(u"pres.pptx");
System::SharedPtr<ITagCollection> tags = pres->get_CustomData()->get_Tags();
pres->get_CustomData()->get_Tags()->idx_set(u"MyTag", u"My Tag Value");
Etiketler ayrıca Slide için de ayarlanabilir:
auto pres = System::MakeObject<Presentation>();
auto slide = pres->get_Slides()->idx_get(0);
slide->get_CustomData()->get_Tags()->idx_set(u"tag", u"value");
Veya herhangi bir bireysel Shape:
auto pres = System::MakeObject<Presentation>();
auto slide = pres->get_Slides()->idx_get(0);
auto shape = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 10.0f, 10.0f, 100.0f, 50.0f);
shape->get_TextFrame()->set_Text(u"My text");
shape->get_CustomData()->get_Tags()->idx_set(u"tag", u"value");
Sınırlamalar
get_CustomData()->get_Tags() kullanılarak özel veri etiket koleksiyonu aracılığıyla eklenen etiketler yalnızca PowerPoint dosyasında depolanır. Sunum PDF olarak dışa aktarıldığında bu etiketler PDF etiket yapısına aktarılmaz. Sonuç olarak, etiket olarak atanan özel bir tanımlayıcı etiketli PDF’den alınamaz.
Geçici Çözüm: Özel bir tanımlayıcıyı nesnenin Alt Text özelliğinde saklayabilirsiniz (örn., shape->set_AlternativeText(u"MyId")). PDF’ye dışa aktardıktan sonra Alt Text PDF etiket yapısında görünebilir.
SSS
Bir sunum, slayt veya şekilden tüm etiketleri tek bir işlemle kaldırabilir miyim?
Evet. tag collection bir seferde tüm anahtar‑değer çiftlerini silen bir clear işlemini destekler.
Tüm koleksiyonu dolaşmadan, adını bilerek tek bir etiketi nasıl silebilirim?
Etiketi anahtarıyla silmek için TagCollection üzerindeki Remove(name) işlemini kullanın.
Analiz veya filtreleme amacıyla etiket adlarının tam listesini nasıl alabilirim?
tag collection üzerinde GetNamesOfTags kullanın; bu, tüm etiket adlarını içeren bir dizi döndürür.