Zarządzanie tagami i danymi niestandardowymi w prezentacjach na Androidzie
Przegląd
Ten artykuł wyjaśnia, jak Aspose.Slides działa z tagami i danymi niestandardowymi w prezentacjach PowerPoint. Krótko opisuje, jak dane są przechowywane w plikach PPTX, zauważa, że dane specyficzne dla prezentacji mogą istnieć jako tagi i niestandardowe części XML, oraz opisuje tagi jako pary klucz‑wartość w postaci ciągów znaków.
Pokazuje również, jak odczytywać wartości tagów oraz jak dodawać tagi do prezentacji, pojedynczego slajdu lub kształtu. Dodatkowo artykuł omawia typowe zadania związane z zarządzaniem tagami, takie jak usuwanie wszystkich tagów, usuwanie tagu po nazwie i pobieranie listy nazw tagów.
Przechowywanie danych w plikach prezentacji
Pliki PPTX — elementy z rozszerzeniem .pptx — są przechowywane w formacie PresentationML, który jest częścią specyfikacji Office Open XML. Format Office Open XML definiuje strukturę danych zawartych w prezentacjach.
Przy slajdzie będącym jednym z elementów prezentacji, część slajdu zawiera zawartość jednego slajdu. Część slajdu może mieć wyraźne powiązania z wieloma częściami — takimi jak User Defined Tags — zdefiniowanymi w ISO/IEC 29500.
Dane niestandardowe (specyficzne dla prezentacji) lub użytkownika mogą istnieć jako tagi (ITagCollection) i CustomXmlParts (ICustomXmlPartCollection).
Pobieranie wartości tagów
W slajdach tag odpowiada metodom IDocumentProperties.getKeywords() i IDocumentProperties.setKeywords(). Ten przykładowy kod pokazuje, jak uzyskać wartość tagu przy użyciu Aspose.Slides dla Android w Javie dla Presentation:
Presentation pres = new Presentation("pres.pptx");
try{
String keywords = pres.getDocumentProperties().getKeywords();
} finally {
if (pres != null) pres.dispose();
}
Dodawanie tagów do prezentacji
Aspose.Slides umożliwia dodawanie tagów do prezentacji. Tag zazwyczaj składa się z dwóch elementów:
- nazwa własnej właściwości -
MyTag - wartość własnej właściwości -
My Tag Value
Jeśli potrzebujesz klasyfikować niektóre prezentacje według określonej reguły lub własności, możesz skorzystać z dodawania tagów do tych prezentacji. Na przykład, aby pogrupować wszystkie prezentacje z krajów Ameryki Północnej, możesz utworzyć tag „North American” i przypisać odpowiednie kraje (USA, Meksyk, Kanada) jako wartości.
Ten przykładowy kod pokazuje, jak dodać tag do Presentation przy użyciu Aspose.Slides dla Android w Javie:
Presentation pres = new Presentation("pres.pptx");
try {
ITagCollection tags = pres.getCustomData().getTags();
pres.getCustomData().getTags().set_Item("MyTag", "My Tag Value");
} finally {
if (pres != null) pres.dispose();
}
Tagi można także ustawić dla Slide:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
slide.getCustomData().getTags().set_Item("tag", "value");
} finally {
if (pres != null) pres.dispose();
}
Lub dowolnego pojedynczego Shape:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 10, 10, 100, 50);
shape.getTextFrame().setText("My text");
shape.getCustomData().getTags().set_Item("tag", "value");
} finally {
if (pres != null) pres.dispose();
}
Ograniczenia
Tagi dodane poprzez kolekcję tagów danych niestandardowych przy użyciu getCustomData().getTags() są przechowywane wyłącznie w pliku PowerPoint. Nie są przenoszone do struktury tagów PDF, gdy prezentacja jest eksportowana do PDF. W konsekwencji niestandardowy identyfikator przypisany jako tag nie może zostać odczytany z otagowanego pliku PDF.
Workaround: Możesz przechowywać niestandardowy identyfikator w Alt Text obiektu (np. shape.setAlternativeText("MyId")). Po eksporcie do PDF tekst alternatywny może pojawić się w strukturze tagów PDF.
FAQ
Czy mogę usunąć wszystkie tagi z prezentacji, slajdu lub kształtu w jednej operacji?
Tak. tag collection obsługuje operację clear usuwającą wszystkie pary klucz‑wartość jednocześnie.
Jak usunąć pojedynczy tag po nazwie bez iterowania po całej kolekcji?
Użyj operacji remove(name) na tag collection aby usunąć tag po jego kluczu.
Jak mogę pobrać kompletną listę nazw tagów do analizy lub filtrowania?
Użyj getNamesOfTags na tag collection; zwraca ona tablicę wszystkich nazw tagów.