Zarządzanie właściwościami prezentacji w JavaScript

Wprowadzenie

Aspose.Slides obsługuje dwa typy właściwości dokumentu: Wbudowane i Niestandardowe. Oba te typy właściwości można łatwo odczytywać i zarządzać nimi przy użyciu API Aspose.Slides.

Aspose.Slides umożliwia pracę z właściwościami dokumentu prezentacji za pośrednictwem klasy DocumentProperties . Instancja tej klasy jest zwracana przez metodę Presentation.getDocumentProperties. Poniższe przykłady pokazują, jak odczytywać, modyfikować i zarządzać tymi właściwościami.

Zarządzanie właściwościami prezentacji

Microsoft PowerPoint udostępnia funkcję umożliwiającą dodawanie niektórych właściwości do plików prezentacji. Właściwości dokumentu pozwalają przechowywać przydatne informacje razem z dokumentami (plikami prezentacji). Istnieją dwa rodzaje właściwości dokumentu:

  • Systemowe (Wbudowane) właściwości
  • Definiowane przez użytkownika (Niestandardowe) właściwości

Wbudowane właściwości zawierają ogólne informacje o dokumencie, takie jak tytuł, nazwisko autora, statystyki dokumentu itp. Niestandardowe właściwości są definiowane przez użytkowników jako pary Nazwa/Wartość, gdzie zarówno nazwa, jak i wartość są określone przez użytkownika. Korzystając z Aspose.Slides for Node.js via Java, programiści mogą odczytywać i modyfikować zarówno wbudowane, jak i niestandardowe właściwości.

Właściwości dokumentu w programie PowerPoint

Microsoft PowerPoint 2007 pozwala zarządzać właściwościami dokumentu plików prezentacji. Wystarczy kliknąć ikonę Office, a następnie wybrać Prepare | Properties | Advanced Properties w programie Microsoft PowerPoint 2007, jak pokazano poniżej:

Wybór pozycji menu Zaawansowane właściwości **
todo:image_alt_text

Po wybraniu pozycji Advanced Properties pojawi się okno dialogowe umożliwiające zarządzanie właściwościami dokumentu pliku PowerPoint, jak pokazano na rysunku:

Okno właściwości **
todo:image_alt_text

W powyższym Oknie właściwości można zobaczyć wiele zakładek, takich jak General, Summary, Statistics, Contents oraz Custom. Wszystkie te zakładki umożliwiają konfigurowanie różnych rodzajów informacji związanych z plikami PowerPoint. Zakładka Custom służy do zarządzania niestandardowymi właściwościami plików PowerPoint.

Praca z właściwościami dokumentu przy użyciu Aspose.Slides for Node.js via Java

Jak opisano wcześniej, Aspose.Slides for Node.js via Java obsługuje dwa rodzaje właściwości dokumentu: Wbudowane i Niestandardowe. Dzięki temu programiści mogą uzyskiwać dostęp do obu rodzajów właściwości przy użyciu API Aspose.Slides for Node.js via Java. Aspose.Slides for Node.js via Java udostępnia klasę DocumentProperties, która reprezentuje właściwości dokumentu powiązane z plikiem prezentacji za pośrednictwem właściwości Presentation.DocumentProperties.

Programiści mogą używać właściwości DocumentProperties wystawionej przez obiekt Presentation, aby uzyskać dostęp do właściwości dokumentu plików prezentacji, jak opisano poniżej:

Dostęp do wbudowanych właściwości

Te właściwości udostępniane przez obiekt [DocumentProperties] obejmują: Creator (Autor), Description, Keywords, Created (Data utworzenia), Modified (Data modyfikacji), Printed (Data ostatniego wydruku), LastModifiedBy, Keywords, SharedDoc (Czy współdzielony między różnymi producentami?), PresentationFormat, Subject i Title.

// Utwórz instancję klasy Presentation, która reprezentuje prezentację
var pres = new aspose.slides.Presentation("Presentation.pptx");
try {
    // Utwórz referencję do obiektu IDocumentProperties powiązanego z prezentacją
    var dp = pres.getDocumentProperties();
    // Wyświetl wbudowane właściwości
    console.log("Category : " + dp.getCategory());
    console.log("Current Status : " + dp.getContentStatus());
    console.log("Creation Date : " + dp.getCreatedTime());
    console.log("Author : " + dp.getAuthor());
    console.log("Description : " + dp.getComments());
    console.log("KeyWords : " + dp.getKeywords());
    console.log("Last Modified By : " + dp.getLastSavedBy());
    console.log("Supervisor : " + dp.getManager());
    console.log("Modified Date : " + dp.getLastSavedTime());
    console.log("Presentation Format : " + dp.getPresentationFormat());
    console.log("Last Print Date : " + dp.getLastPrinted());
    console.log("Is Shared between producers : " + dp.getSharedDoc());
    console.log("Subject : " + dp.getSubject());
    console.log("Title : " + dp.getTitle());
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Modyfikacja wbudowanych właściwości

Modyfikowanie wbudowanych właściwości plików prezentacji jest tak samo proste, jak ich odczytywanie. Wystarczy przypisać wartość tekstową do dowolnej żądanej właściwości i wartość zostanie zmieniona. W poniższym przykładzie pokazano, jak zmodyfikować wbudowane właściwości dokumentu prezentacji przy użyciu Aspose.Slides for Node.js via Java.

var pres = new aspose.slides.Presentation("Presentation.pptx");
try {
    // Utwórz referencję do obiektu IDocumentProperties powiązanego z prezentacją
    var dp = pres.getDocumentProperties();
    // Ustaw wbudowane właściwości
    dp.setAuthor("Aspose.Slides for Node.js via Java");
    dp.setTitle("Modifying Presentation Properties");
    dp.setSubject("Aspose Subject");
    dp.setComments("Aspose Description");
    dp.setManager("Aspose Manager");
    // Zapisz swoją prezentację do pliku
    pres.save("DocProps.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Przykład ten modyfikuje wbudowane właściwości prezentacji, co można zobaczyć na poniższym rysunku:

Wbudowane właściwości dokumentu po modyfikacji **
todo:image_alt_text

Dodawanie niestandardowych właściwości dokumentu

Aspose.Slides for Node.js via Java umożliwia także programistom dodawanie niestandardowych wartości do właściwości dokumentu prezentacji. Poniżej znajduje się przykład, który pokazuje, jak ustawić niestandardowe właściwości dla prezentacji.

var pres = new aspose.slides.Presentation();
try {
    // Pobieranie właściwości dokumentu
    var dProps = pres.getDocumentProperties();
    // Dodawanie niestandardowych właściwości
    dProps.set_Item("New Custom", 12);
    dProps.set_Item("My Name", "Mudassir");
    dProps.set_Item("Custom", 124);
    // Pobieranie nazwy właściwości pod określonym indeksem
    var getPropertyName = dProps.getCustomPropertyName(2);
    // Usuwanie wybranej właściwości
    dProps.removeCustomProperty(getPropertyName);
    // Zapisywanie prezentacji
    pres.save("CustomDemo.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}
Dodane niestandardowe właściwości dokumentu **
todo:image_alt_text

Dostęp i modyfikacja niestandardowych właściwości

Aspose.Slides for Node.js via Java umożliwia również programistom dostęp do wartości niestandardowych właściwości. Poniżej znajduje się przykład, który pokazuje, jak uzyskać dostęp i zmodyfikować wszystkie te niestandardowe właściwości prezentacji.

var pres = new aspose.slides.Presentation("Presentation.pptx");
try {
    // Utwórz referencję do obiektu DocumentProperties powiązanego z prezentacją
    var dp = pres.getDocumentProperties();
    // Uzyskaj dostęp i modyfikuj niestandardowe właściwości
    for (var i = 0; i < dp.getCountOfCustomProperties(); i++) {
        // Wyświetl nazwy i wartości niestandardowych właściwości
        console.log("Custom Property Name : " + dp.getCustomPropertyName(i));
        console.log("Custom Property Value : " + dp.get_Item(dp.getCustomPropertyName(i)));
        // Modyfikuj wartości niestandardowych właściwości
        dp.set_Item(dp.getCustomPropertyName(i), "New Value " + (i + 1));
    }
    // Zapisz swoją prezentację do pliku
    pres.save("CustomDemoModified.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Ten przykład modyfikuje niestandardowe właściwości PPTX prezentacji. Poniższe rysunki przedstawiają niestandardowe właściwości prezentacji przed i po modyfikacji:

Niestandardowe właściwości przed modyfikacją **
todo:image_alt_text
Niestandardowe właściwości po modyfikacji **
todo:image_alt_text

Zaawansowane właściwości dokumentu

Dwie nowe metody ReadDocumentProperties i UpdateDocumentProperties zostały dodane do klasy PresentationInfo. Umożliwiają one szybki dostęp do właściwości dokumentu oraz ich zmianę i aktualizację bez ładowania całej prezentacji.

Typowy scenariusz polega na załadowaniu właściwości, zmianie niektórych wartości i aktualizacji dokumentu w następujący sposób:

// odczytaj informacje prezentacji
var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("presentation.pptx");
// obtain the current properties
var props = info.readDocumentProperties();
// set the new values of Author and Title fields
props.setAuthor("New Author");
props.setTitle("New Title");
// update the presentation with a new values
info.updateDocumentProperties(props);
info.writeBindedPresentation("presentation.pptx");

Istnieje inny sposób wykorzystania właściwości konkretnej prezentacji jako szablonu do aktualizacji właściwości w innych prezentacjach:

var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("template.pptx");
var template = info.readDocumentProperties();
template.setAuthor("Template Author");
template.setTitle("Template Title");
template.setCategory("Template Category");
template.setKeywords("Keyword1, Keyword2, Keyword3");
template.setCompany("Our Company");
template.setComments("Created from template");
template.setContentType("Template Content");
template.setSubject("Template Subject");
updateByTemplate("doc1.pptx", template);
updateByTemplate("doc2.odp", template);
updateByTemplate("doc3.ppt", template);
function updateByTemplate(path, template) 
{
    var toUpdate = aspose.slides.PresentationFactory.getInstance().getPresentationInfo(path);
    toUpdate.updateDocumentProperties(template);
    toUpdate.writeBindedPresentation(path);
}

Nowy szablon można utworzyć od podstaw, a następnie używać go do aktualizacji wielu prezentacji:

var template = new aspose.slides.DocumentProperties();
template.setAuthor("Template Author");
template.setTitle("Template Title");
template.setCategory("Template Category");
template.setKeywords("Keyword1, Keyword2, Keyword3");
template.setCompany("Our Company");
template.setComments("Created from template");
template.setContentType("Template Content");
template.setSubject("Template Subject");
updateByTemplate("doc1.pptx", template);
updateByTemplate("doc2.odp", template);
updateByTemplate("doc3.ppt", template);
function updateByTemplate(path, template) 
{
    var toUpdate = aspose.slides.PresentationFactory.getInstance().getPresentationInfo(path);
    toUpdate.updateDocumentProperties(template);
    toUpdate.writeBindedPresentation(path);
}

Ustaw język korekty

Aspose.Slides udostępnia właściwość LanguageId (udostępnioną przez klasę PortionFormat), aby umożliwić ustawienie języka korekty dla dokumentu PowerPoint. Język korekty to język, dla którego sprawdzane są pisownia i gramatyka w PowerPoint.

Ten kod JavaScript pokazuje, jak ustawić język korekty dla PowerPoint: xxx Why is LanguageId missing from JavaScript PortionFormat class?

var pres = new aspose.slides.Presentation(pptxFileName);
try {
    var autoShape = pres.getSlides().get_Item(0).getShapes().get_Item(0);
    var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
    paragraph.getPortions().clear();
    var newPortion = new aspose.slides.Portion();
    var font = new aspose.slides.FontData("SimSun");
    var portionFormat = newPortion.getPortionFormat();
    portionFormat.setComplexScriptFont(font);
    portionFormat.setEastAsianFont(font);
    portionFormat.setLatinFont(font);
    portionFormat.setLanguageId("zh-CN");// ustaw Id języka korekty
    newPortion.setText("1。");
    paragraph.getPortions().add(newPortion);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Ustaw domyślny język

Ten kod JavaScript pokazuje, jak ustawić domyślny język dla całej prezentacji PowerPoint:

var loadOptions = new aspose.slides.LoadOptions();
loadOptions.setDefaultTextLanguage("en-US");
var pres = new aspose.slides.Presentation(loadOptions);
try {
    // Dodaje nowy prostokątny kształt z tekstem
    var shp = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 150, 50);
    shp.getTextFrame().setText("New Text");
    // Sprawdza język pierwszej porcji
    console.log(shp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getLanguageId());
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Przykład na żywo

Wypróbuj aplikację online Aspose.Slides Metadata, aby zobaczyć, jak pracować z właściwościami dokumentu za pośrednictwem API Aspose.Slides:

View & Edit PowerPoint Metadata

*FAQ

Jak mogę usunąć wbudowaną właściwość z prezentacji?

Wbudowane właściwości są integralną częścią prezentacji i nie mogą być całkowicie usunięte. Można jednak zmienić ich wartości lub, jeśli dana właściwość na to pozwala, ustawić je jako puste.

Co się stanie, jeśli dodam niestandardową właściwość, która już istnieje?

Jeśli dodasz niestandardową właściwość, która już istnieje, jej bieżąca wartość zostanie nadpisana nową. Nie musisz usuwać ani sprawdzać właściwości wcześniej, ponieważ Aspose.Slides automatycznie aktualizuje wartość właściwości.

Czy mogę uzyskać dostęp do właściwości prezentacji bez pełnego ładowania prezentacji?

Tak, możesz uzyskać dostęp do właściwości prezentacji bez pełnego jej ładowania, używając metody getPresentationInfo z klasy PresentationFactory. Następnie skorzystaj z metody readDocumentProperties udostępnionej przez klasę PresentationInfo, aby efektywnie odczytać właściwości, oszczędzając pamięć i zwiększając wydajność.