Prezentáció tulajdonságainak kezelése PHP-ben

Bevezetés

Az Aspose.Slides kétféle dokumentumtulajdonságot támogat: Beépített és Egyéni. Mindkét típusú tulajdonsághoz könnyedén hozzáférhet és kezelheti az Aspose.Slides API segítségével.

Az Aspose.Slides lehetővé teszi a prezentáció dokumentumtulajdonságokkal való munkát a DocumentProperties osztályon keresztül. Ennek az osztálynak egy példányát a Presentation::getDocumentProperties metódus adja vissza. A következő példák bemutatják, hogyan olvashatja, módosíthatja és kezelheti ezeket a tulajdonságokat.

Prezentáció Tulajdonságainak Kezelése

A Microsoft PowerPoint lehetőséget biztosít néhány tulajdonság hozzáadására a prezentációs fájlokhoz. Ezek a dokumentumtulajdonságok hasznos információk tárolását teszik lehetővé a dokumentumokkal (prezentációs fájlokkal) együtt. Kétféle dokumentumtulajdonság létezik:

  • Rendszer által definiált (Beépített) tulajdonságok
  • Felhasználó által definiált (Egyéni) tulajdonságok

Beépített tulajdonságok általános információkat tartalmaznak a dokumentumról, mint például a dokumentum címe, a szerző neve, a dokumentum statisztikái stb. Egyéni tulajdonságok azok, amelyeket a felhasználók Név/Érték párok formájában definiálnak, ahol a név és az érték is a felhasználó által van megadva. Az Aspose.Slides for PHP via Java használatával a fejlesztők hozzáférhetnek és módosíthatják a beépített és az egyéni tulajdonságok értékeit.

PowerPointban lévő Dokumentumtulajdonságok

A Microsoft PowerPoint 2007 lehetővé teszi a prezentációs fájlok dokumentumtulajdonságainak kezelését. Ehhez csak kattintson az Office ikonra, majd a Prepare | Properties | Advanced Properties menüpontot a Microsoft PowerPoint 2007-ben, ahogy az alább látható:

Az Advanced Properties menüpont kiválasztása **
todo:image_alt_text

Miután kiválasztotta az Advanced Properties menüpontot, megjelenik egy párbeszédablak, amely lehetővé teszi a PowerPoint fájl dokumentumtulajdonságainak kezelését, ahogyan az alábbi ábrán is látható:

Tulajdonságok párbeszédablak **
todo:image_alt_text

A fenti Properties Dialog ablakban látható, hogy több lap is létezik, például General, Summary, Statistics, Contents és Custom. Ezek a lapok különféle, a PowerPoint fájlokhoz kapcsolódó információk beállítását teszik lehetővé. Az Custom lapot a PowerPoint fájlok egyéni tulajdonságainak kezelésére használják.

Dokumentumtulajdonságok kezelése az Aspose.Slides for PHP via Java használatával

Ahogy korábban leírtuk, az Aspose.Slides for PHP via Java támogatja a Beépített és Egyéni dokumentumtulajdonságokat. Így a fejlesztők mindkét típusú tulajdonsághoz hozzáférhetnek az Aspose.Slides for PHP via Java API használatával. Az Aspose.Slides for PHP via Java egy DocumentProperties osztályt biztosít, amely a Presentation.DocumentProperties tulajdonság révén képviseli egy prezentációs fájlhoz kapcsolódó dokumentumtulajdonságokat.

A fejlesztők a Presentation objektum által kitetts DocumentProperties tulajdonságot használhatják a prezentációs fájlok dokumentumtulajdonságainak eléréséhez, ahogy az alább látható:

Beépített tulajdonságok elérése

Ezek a DocumentProperties objektum által elérhető tulajdonságok: Creator (Szerző), Description, Keywords, Created (Létrehozás dátuma), Modified (Módosítás dátuma), Printed (Legutóbbi nyomtatás dátuma), LastModifiedBy, SharedDoc (Megosztott több producer között?), PresentationFormat, Subject és Title

  # Példányosítsa a Presentation osztályt, amely a prezentációt képviseli
  $pres = new Presentation("Presentation.pptx");
  try {
    # Hozzon létre egy hivatkozást a prezentációhoz kapcsolódó IDocumentProperties objektumra
    $dp = $pres->getDocumentProperties();
    # Jelenítse meg a beépített tulajdonságokat
    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();
    }
  }

Beépített tulajdonságok módosítása

A prezentációs fájlok beépített tulajdonságainak módosítása ugyanolyan egyszerű, mint azok elérése. Egyszerűen egy karakterlánc értéket adhat bármely kívánt tulajdonsághoz, és a tulajdonság értéke módosul. Az alábbi példában bemutatjuk, hogyan módosíthatjuk a prezentációs fájl beépített dokumentumtulajdonságait az Aspose.Slides for PHP via Java segítségével.

  $pres = new Presentation("Presentation.pptx");
  try {
    # Hozzon létre egy hivatkozást a prezentációhoz kapcsolódó IDocumentProperties objektumra
    $dp = $pres->getDocumentProperties();
    # Állítsa be a beépített tulajdonságokat
    $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");
    # Mentse a prezentációt egy fájlba
    $pres->save("DocProps.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Ez a példa a prezentáció beépített tulajdonságait módosítja, a módosítás után az alábbiakban látható:

Beépített dokumentumtulajdonságok módosítás után **
todo:image_alt_text

Egyéni dokumentumtulajdonságok hozzáadása

Az Aspose.Slides for PHP via Java lehetővé teszi a fejlesztők számára, hogy egyéni értékeket adjanak hozzá a prezentáció dokumentumtulajdonságaihoz. Az alábbi példa bemutatja, hogyan állíthatók be egyéni tulajdonságok egy prezentációhoz.

  $pres = new Presentation();
  try {
    # Dokumentumtulajdonságok lekérése
    $dProps = $pres->getDocumentProperties();
    # Egyéni tulajdonságok hozzáadása
    $dProps->set_Item("New Custom", 12);
    $dProps->set_Item("My Name", "Mudassir");
    $dProps->set_Item("Custom", 124);
    # Tulajdonság nevének lekérése adott indexnél
    $getPropertyName = $dProps->getCustomPropertyName(2);
    # Kiválasztott tulajdonság eltávolítása
    $dProps->removeCustomProperty($getPropertyName);
    # Prezentáció mentése
    $pres->save("CustomDemo.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }
Egyéni dokumentumtulajdonságok hozzáadva **
todo:image_alt_text

Egyéni tulajdonságok elérése és módosítása

Az Aspose.Slides for PHP via Java lehetővé teszi a fejlesztők számára, hogy hozzáférjenek az egyéni tulajdonságok értékeihez. Az alábbi példa bemutatja, hogyan érheti el és módosíthatja ezeket az egyéni tulajdonságokat egy prezentációban.

  $pres = new Presentation("Presentation.pptx");
  try {
    # Hozzon létre egy hivatkozást a prezentációhoz társított DocumentProperties objektumra
    $dp = $pres->getDocumentProperties();
    # Hozzáférés és egyéni tulajdonságok módosítása
    for($i = 0; $i < java_values($dp->getCountOfCustomProperties()) ; $i++) {
      # Egyéni tulajdonságok nevének és értékeinek megjelenítése
      echo("Custom Property Name : " . $dp->getCustomPropertyName($i));
      echo("Custom Property Value : " . $dp->get_Item($dp->getCustomPropertyName($i)));
      # Egyéni tulajdonságok értékeinek módosítása
      $dp->set_Item($dp->getCustomPropertyName($i), "New Value " . $i + 1);
    }
    # Mentse a prezentációt egy fájlba
    $pres->save("CustomDemoModified.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Ez a példa módosítja a PPTX prezentáció egyéni tulajdonságait. Az alábbi ábrák a prezentáció egyéni tulajdonságait mutatják módosítás előtt és után:

Egyéni tulajdonságok módosítás előtt **
todo:image_alt_text
Egyéni tulajdonságok módosítás után **
todo:image_alt_text

Haladó dokumentumtulajdonságok

A két új metódus, a readDocumentProperties és az updateDocumentProperties, a PresentationInfo osztályhoz lettek hozzáadva. Gyors hozzáférést biztosítanak a dokumentumtulajdonságokhoz, és lehetővé teszik azok módosítását és frissítését anélkül, hogy az egész prezentációt betöltenék.

A tipikus forgatókönyv a tulajdonságok betöltése, egy érték módosítása és a dokumentum frissítése a következő módon valósítható meg:

  # olvassa be a prezentáció információit
  $info = PresentationFactory->getInstance()->getPresentationInfo("presentation.pptx");
  # szerezze be a jelenlegi tulajdonságokat
  $props = $info->readDocumentProperties();
  # állítsa be az Szerző és Cím mezők új értékeit
  $props->setAuthor("New Author");
  $props->setTitle("New Title");
  # frissítse a prezentációt új értékekkel
  $info->updateDocumentProperties($props);
  $info->writeBindedPresentation("presentation.pptx");

Létezik egy másik módja is annak, hogy egy adott prezentáció tulajdonságait sablonként használjuk más prezentációk tulajdonságainak frissítéséhez:

  $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);

Új sablon hozható létre a semmiből, majd több prezentáció frissítésére használható:

  $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);

Ellenőrző nyelv beállítása

Az Aspose.Slides biztosítja a LanguageId tulajdonságot (a PortionFormat osztály által kitetts), amely lehetővé teszi a proofing nyelv beállítását egy PowerPoint dokumentumhoz. A proofing nyelv az a nyelv, amelyen a PowerPoint helyesírása és nyelvtana ellenőrzésre kerül.

Ez a PHP kód megmutatja, hogyan állíthatja be a proofing nyelvet egy PowerPointhoz: xxx Miért hiányzik a LanguageId a Java PortionFormat osztályból?

  $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");// állítsa be a helyesírási nyelv azonosítóját

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

Alapértelmezett nyelv beállítása

Ez a PHP kód megmutatja, hogyan állíthatja be az alapértelmezett nyelvet egy teljes PowerPoint prezentációhoz:

  $loadOptions = new LoadOptions();
  $loadOptions->setDefaultTextLanguage("en-US");
  $pres = new Presentation($loadOptions);
  try {
    # Új téglalap alakzat hozzáadása szöveggel
    $shp = $pres->getSlides()->get_Item(0)->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 150, 50);
    $shp->getTextFrame()->setText("New Text");
    # Ellenőrzi az első rész nyelvét
    echo($shp->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->get_Item(0)->getPortionFormat()->getLanguageId());
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Élő példa

Próbálja ki az Aspose.Slides Metadata online alkalmazást, hogy lássa, hogyan dolgozhat a dokumentumtulajdonságokkal az Aspose.Slides API-n keresztül:

PowerPoint metaadatok megtekintése és szerkesztése

GYIK

Hogyan távolíthatok el egy beépített tulajdonságot egy prezentációból?

A beépített tulajdonságok a prezentáció szerves részét képezik, és nem távolíthatók el teljesen. Azonban módosíthatja értéküket, vagy – ha a konkrét tulajdonság megengedi – üresre állíthatja őket.

Mi történik, ha egy már létező egyéni tulajdonságot adok hozzá?

Ha egy már létező egyéni tulajdonságot ad hozzá, a meglévő értéke felül lesz írva az újjal. Nem szükséges előzetesen eltávolítani vagy ellenőrizni a tulajdonságot, mivel az Aspose.Slides automatikusan frissíti annak értékét.

Hozzáférhetek a prezentáció tulajdonságaihoz anélkül, hogy teljesen betölteném a prezentációt?

Igen, a prezentáció tulajdonságaihoz anélkül is hozzáférhet, hogy a teljes prezentációt betöltené, a getPresentationInfo metódus használatával a PresentationFactory osztályból. Ezután a PresentationInfo osztály readDocumentProperties metódusával olvashatja a tulajdonságokat hatékonyan, memóriát takarítva meg és javítva a teljesítményt.