Beheer presentatie-eigenschappen in PHP

Introductie

Aspose.Slides ondersteunt twee soorten documenteigenschappen: Built-in en Custom. Beide soorten eigenschappen kunnen eenvoudig worden benaderd en beheerd met de Aspose.Slides API.

Aspose.Slides stelt u in staat om met presentatiedocumenteigenschappen te werken via de DocumentProperties klasse. Een instantie van deze klasse wordt geretourneerd door de Presentation::getDocumentProperties methode. De volgende voorbeelden laten zien hoe u deze eigenschappen kunt lezen, wijzigen en beheren.

Presentatie‑eigenschappen beheren

Microsoft PowerPoint biedt een functie om enkele eigenschappen toe te voegen aan presentatiebestanden. Deze documenteigenschappen maken het mogelijk om nuttige informatie op te slaan samen met de documenten (presentatiebestanden). Er zijn twee soorten documenteigenschappen als volgt

  • Systeemdefinieerde (Built-in) eigenschappen
  • Gebruikersgedefinieerde (Custom) eigenschappen

Built-in‑eigenschappen bevatten algemene informatie over het document, zoals de documenttitel, de naam van de auteur, documentstatistieken enzovoort. Custom‑eigenschappen zijn die welke door de gebruikers zijn gedefinieerd als Naam/Waarde‑paren, waarbij zowel de naam als de waarde door de gebruiker worden opgegeven. Met Aspose.Slides for PHP via Java kunnen ontwikkelaars de waarden van zowel built-in‑ als custom‑eigenschappen benaderen en wijzigen.

Documenteigenschappen in PowerPoint

Microsoft PowerPoint 2007 maakt het mogelijk de documenteigenschappen van presentaties te beheren. Het enige wat u moet doen is op het Office‑pictogram klikken en vervolgens het menu‑item Prepare | Properties | Advanced Properties van Microsoft PowerPoint 2007 selecteren, zoals hieronder weergegeven:

Selecteer Advanced Properties‑menu‑item **
todo:image_alt_text

Nadat u het menu‑item Advanced Properties hebt geselecteerd, verschijnt er een dialoogvenster waarmee u de documenteigenschappen van het PowerPoint‑bestand kunt beheren, zoals hieronder in de afbeelding:

Eigenschappen‑dialoog **
todo:image_alt_text

In de bovenstaande Eigenschappen‑dialoog ziet u dat er vele tabbladen zijn, zoals General, Summary, Statistics, Contents en Custom. Al deze tabbladen maken het mogelijk verschillende soorten informatie over de PowerPoint‑bestanden te configureren. Het tabblad Custom wordt gebruikt om de custom‑eigenschappen van de PowerPoint‑bestanden te beheren.

Werken met documenteigenschappen met Aspose.Slides for PHP via Java

Zoals eerder beschreven ondersteunt Aspose.Slides for PHP via Java twee soorten documenteigenschappen, namelijk Built-in‑ en Custom‑eigenschappen. Ontwikkelaars kunnen dus beide soorten eigenschappen benaderen via de Aspose.Slides for PHP via Java‑API. Aspose.Slides for PHP via Java biedt een klasse DocumentProperties die de documenteigenschappen van een presentatiebestand vertegenwoordigt via de eigenschap Presentation.DocumentProperties.

Ontwikkelaars kunnen de DocumentProperties‑eigenschap die wordt blootgesteld door het Presentation‑object gebruiken om de documenteigenschappen van presentaties te benaderen, zoals hieronder beschreven:

Built-in‑eigenschappen benaderen

Deze eigenschappen, zoals blootgesteld door het DocumentProperties-object, omvatten: Creator (Auteur), Description, Keywords, Created (Aanmaakdatum), Modified (Wijzigingsdatum), Printed (Laatste afdrukdatum), LastModifiedBy, Keywords, SharedDoc (Is gedeeld tussen verschillende producenten?), PresentationFormat, Subject en Title

  # Maak een instantie van de Presentation-klasse die de presentatie vertegenwoordigt
  $pres = new Presentation("Presentation.pptx");
  try {
    # Maak een verwijzing naar het IDocumentProperties-object dat aan de presentatie is gekoppeld
    $dp = $pres->getDocumentProperties();
    # Toon de ingebouwde eigenschappen
    echo("Category : " . $dp->getCategory());
    echo("Current Status : " . $dp->getContentStatus());
    echo("Creation Date : " . $dp->getCreatedTime());
    echo("Author : " . $dp->getAuthor());
    echo("Description : " . $dp->getComments());
    echo("KeyWords : " . $dp->getKeywords());
    echo("Last Modified By : " . $dp->getLastSavedBy());
    echo("Supervisor : " . $dp->getManager());
    echo("Modified Date : " . $dp->getLastSavedTime());
    echo("Presentation Format : " . $dp->getPresentationFormat());
    echo("Last Print Date : " . $dp->getLastPrinted());
    echo("Is Shared between producers : " . $dp->getSharedDoc());
    echo("Subject : " . $dp->getSubject());
    echo("Title : " . $dp->getTitle());
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Built-in‑eigenschappen wijzigen

Het wijzigen van de built-in‑eigenschappen van presentaties is even eenvoudig als ze te benaderen. U kunt simpelweg een tekenreeks aan een gewenste eigenschap toewijzen en de waarde van de eigenschap wordt aangepast. In het onderstaande voorbeeld tonen we hoe u de built-in‑documenteigenschappen van een presentatiedocument kunt wijzigen met Aspose.Slides for PHP via Java.

  $pres = new Presentation("Presentation.pptx");
  try {
    # Maak een verwijzing naar het IDocumentProperties-object dat aan de presentatie is gekoppeld
    $dp = $pres->getDocumentProperties();
    # Stel de ingebouwde eigenschappen in
    $dp->setAuthor("Aspose.Slides for PHP via Java");
    $dp->setTitle("Modifying Presentation Properties");
    $dp->setSubject("Aspose Subject");
    $dp->setComments("Aspose Description");
    $dp->setManager("Aspose Manager");
    # Sla uw presentatie op in een bestand
    $pres->save("DocProps.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Dit voorbeeld wijzigt de built-in‑eigenschappen van de presentatie, zoals hieronder te zien is:

Built-in‑documenteigenschappen na wijziging **
todo:image_alt_text

Aangepaste documenteigenschappen toevoegen

Aspose.Slides for PHP via Java stelt ontwikkelaars ook in staat om aangepaste waarden toe te voegen aan de documenteigenschappen van een presentatie. Hieronder staat een voorbeeld dat laat zien hoe u custom‑eigenschappen voor een presentatie kunt instellen.

  $pres = new Presentation();
  try {
    # Documenteigenschappen ophalen
    $dProps = $pres->getDocumentProperties();
    # Aangepaste eigenschappen toevoegen
    $dProps->set_Item("New Custom", 12);
    $dProps->set_Item("My Name", "Mudassir");
    $dProps->set_Item("Custom", 124);
    # Eigenschapsnaam ophalen op specifieke index
    $getPropertyName = $dProps->getCustomPropertyName(2);
    # Geselecteerde eigenschap verwijderen
    $dProps->removeCustomProperty($getPropertyName);
    # Presentatie opslaan
    $pres->save("CustomDemo.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }
Aangepaste documenteigenschappen toegevoegd **
todo:image_alt_text

Custom‑eigenschappen benaderen en wijzigen

Aspose.Slides for PHP via Java stelt ontwikkelaars ook in staat de waarden van custom‑eigenschappen te benaderen. Hieronder staat een voorbeeld dat laat zien hoe u alle custom‑eigenschappen van een presentatie kunt benaderen en wijzigen.

  $pres = new Presentation("Presentation.pptx");
  try {
    # Maak een verwijzing naar het DocumentProperties-object dat aan de presentatie is gekoppeld
    $dp = $pres->getDocumentProperties();
    # Toegang tot en wijzigen van custom-eigenschappen
    for($i = 0; $i < java_values($dp->getCountOfCustomProperties()) ; $i++) {
      # Toon namen en waarden van custom-eigenschappen
      echo("Custom Property Name : " . $dp->getCustomPropertyName($i));
      echo("Custom Property Value : " . $dp->get_Item($dp->getCustomPropertyName($i)));
      # Wijzig waarden van custom-eigenschappen
      $dp->set_Item($dp->getCustomPropertyName($i), "New Value " . $i + 1);
    }
    # Sla uw presentatie op in een bestand
    $pres->save("CustomDemoModified.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Dit voorbeeld wijzigt de custom‑eigenschappen van de PPTX-presentatie. De volgende afbeeldingen tonen de custom‑eigenschappen van de presentatie vóór en na de wijziging:

Custom‑eigenschappen vóór wijziging **
todo:image_alt_text
Custom‑eigenschappen na wijziging **
todo:image_alt_text

Geavanceerde documenteigenschappen

De twee nieuwe methoden readDocumentProperties en updateDocumentProperties zijn toegevoegd aan de klasse PresentationInfo. Ze bieden snelle toegang tot documenteigenschappen en maken het mogelijk eigenschappen te wijzigen en bij te werken zonder een volledige presentatie te laden.

Het typische scenario waarbij de eigenschappen worden geladen, een waarde wordt gewijzigd en het document wordt bijgewerkt, kan op de volgende manier worden geïmplementeerd:

  # lees de informatie van de presentatie
  $info = PresentationFactory->getInstance()->getPresentationInfo("presentation.pptx");
  # verkrijg de huidige eigenschappen
  $props = $info->readDocumentProperties();
  # stel de nieuwe waarden van de velden Auteur en Titel in
  $props->setAuthor("New Author");
  $props->setTitle("New Title");
  # werk de presentatie bij met nieuwe waarden
  $info->updateDocumentProperties($props);
  $info->writeBindedPresentation("presentation.pptx");

Er is een andere manier om de eigenschappen van een bepaalde presentatie als sjabloon te gebruiken om eigenschappen in andere presentaties bij te werken:

  $info = PresentationFactory->getInstance()->getPresentationInfo("template.pptx");
  $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);

Er kan een nieuw sjabloon vanaf nul worden gemaakt en vervolgens worden gebruikt om meerdere presentaties bij te werken:

  $template = new 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);

Proefleestaal instellen

Aspose.Slides biedt de eigenschap LanguageId (beschikbaar via de klasse PortionFormat) om de proefleestaal voor een PowerPoint‑document in te stellen. De proefleestaal is de taal waarvoor spelling en grammatica in PowerPoint worden gecontroleerd.

Deze PHP‑code toont hoe u de proefleestaal voor een PowerPoint instelt: xxx Waarom ontbreekt LanguageId in de Java‑PortionFormat‑klasse?

  $pres = new Presentation($pptxFileName);
  try {
    $autoShape = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
    $paragraph = $autoShape->getTextFrame()->getParagraphs()->get_Item(0);
    $paragraph->getPortions()->clear();
    $newPortion = new Portion();
    $font = new FontData("SimSun");
    $portionFormat = $newPortion->getPortionFormat();
    $portionFormat::setComplexScriptFont($font);
    $portionFormat::setEastAsianFont($font);
    $portionFormat::setLatinFont($font);
    $portionFormat::setLanguageId("zh-CN");// stel de Id van een proefleestaal in

    $newPortion->setText("1。");
    $paragraph->getPortions()->add($newPortion);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Standaardtaal instellen

Deze PHP‑code toont hoe u de standaardtaal voor een volledige PowerPoint‑presentatie instelt:

  $loadOptions = new LoadOptions();
  $loadOptions->setDefaultTextLanguage("en-US");
  $pres = new Presentation($loadOptions);
  try {
    # Voeg een nieuw rechthoekig vorm toe met tekst
    $shp = $pres->getSlides()->get_Item(0)->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 150, 50);
    $shp->getTextFrame()->setText("New Text");
    # Controleert de taal van de eerste portion
    echo($shp->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->get_Item(0)->getPortionFormat()->getLanguageId());
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Live‑voorbeeld

Probeer de online app Aspose.Slides Metadata om te zien hoe u met documenteigenschappen kunt werken via de Aspose.Slides‑API:

View & Edit PowerPoint Metadata

FAQ

Hoe kan ik een built-in‑eigenschap uit een presentatie verwijderen?

Built-in‑eigenschappen maken een integraal onderdeel van de presentatie uit en kunnen niet volledig worden verwijderd. U kunt echter de waarden wijzigen of, als de specifieke eigenschap dat toestaat, ze leeg maken.

Wat gebeurt er als ik een custom‑eigenschap toevoeg die al bestaat?

Als u een custom‑eigenschap toevoegt die al bestaat, wordt de bestaande waarde overschreven door de nieuwe. U hoeft de eigenschap niet vooraf te verwijderen of te controleren, aangezien Aspose.Slides de waarde automatisch bijwerkt.

Kan ik presentatie‑eigenschappen benaderen zonder de presentatie volledig te laden?

Ja, u kunt presentatie‑eigenschappen benaderen zonder de volledige presentatie te laden door de getPresentationInfo‑methode van de klasse PresentationFactory te gebruiken. Vervolgens kunt u de readDocumentProperties‑methode van de klasse PresentationInfo aanroepen om de eigenschappen efficiënt te lezen, waardoor geheugen wordt bespaard en de prestaties verbeteren.