Prezentáció tulajdonságainak kezelése JavaScriptben
Bevezetés
Az Aspose.Slides for Node.js via Java támogatja a beépített és egyéni dokumentumtulajdonságokat. Ezeket a tulajdonságokat használhatja a prezentáció metaadatainak olvasására és frissítésére, például a szerző, a cím és a felhasználó által meghatározott értékek esetén.
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ánya a Presentation.getDocumentProperties által kerül visszaadásra. Az alábbi példák bemutatják, hogyan olvashatók, módosíthatók és kezelhetők ezek a tulajdonságok.
Note
Az Aspose.Slides kezeli az alkalmazás- és producer-metaadatokat a prezentációk mentésekor; ezek a mezők azonosítják a kimenetet létrehozó szoftvert.Prezentációtulajdonságok kezelése
A dokumentumtulajdonságok leíró információkat tárolnak a prezentáció tartalmával együtt. Két kategóriába sorolhatók:
- Beépített tulajdonságok szabványos metaadatokat tartalmaznak, például a címet, a szerzőt és a dokumentum statisztikákat.
- Egyéni tulajdonságok felhasználó által meghatározott név/érték párokat tárolnak.
Az Aspose.Slides for Node.js via Java hozzáférést biztosít mindkét kategóriához. A PowerPointban válassza a File → Info → Properties → Advanced Properties menüpontot a dokumentum metaadatainak megtekintéséhez. A párbeszédablak információkat csoportosít fülekre, mint például Summary, Statistics, Contents, és Custom. Használja a Custom fület a felhasználó által definiált tulajdonságok kezeléséhez.
Nyilvános tulajdonságok olvasása titkosított prezentációból
A megnyitási jelszó általában védi a prezentáció tartalmát és a dokumentumtulajdonságokat is. Ha egy prezentáció titkosítva van a ProtectionManager.setEncryptDocumentProperties false paraméterrel történő meghívása után, a dokumentumtulajdonságok nyilvánosak maradnak. Egy alkalmazás ezután a LoadOptions.setOnlyLoadDocumentProperties true paraméterrel hívásával a nyilvános metaadatokat olvashatja anélkül, hogy megadná a megnyitási jelszót.
A LoadOptions.setOnlyLoadDocumentProperties határozza meg, hogy az Aspose.Slides mit tölt be; semmit sem titkosít vissza. Ha a tulajdonságok a titkosítás részei voltak, a jelszó nélkül történő betöltés sikertelen. Ha a prezentáció nincs titkosítva, az opció figyelmen kívül marad, és a teljes prezentáció betöltődik.
A példa egy titkosított prezentációt igényel, amelynek dokumentumtulajdonságai nyilvánosak maradtak. A betöltési módot a ProtectionManager.isOnlyDocumentPropertiesLoaded segítségével ellenőrzi, majd a beépített tulajdonságokat a Presentation.getDocumentProperties segítségével olvassa:
const slides = require("aspose.slides.via.java");
const loadOptions = new slides.LoadOptions();
loadOptions.setOnlyLoadDocumentProperties(true);
const presentation = new slides.Presentation("public-properties-encrypted.pptx", loadOptions);
try {
if (presentation.getProtectionManager().isOnlyDocumentPropertiesLoaded()) {
const documentProperties = presentation.getDocumentProperties();
console.log("Author: " + documentProperties.getAuthor());
console.log("Title: " + documentProperties.getTitle());
console.log("Keywords: " + documentProperties.getKeywords());
} else {
console.log("The presentation was not loaded in document-properties-only mode.");
}
} finally {
presentation.dispose();
}
Ebben a módban a diák tartalma nem töltődik be. A diák, mesterdiák, elrendezések, alakzatok, média és egyéb prezentációobjektumok nem érhetők el. Az alkalmazásoknak mindig ellenőrizniük kell a ProtectionManager.isOnlyDocumentPropertiesLoaded értékét, mielőtt olyan műveletet végeznének, amely a teljes prezentáció objektummodelljét igényli.
Warning
A nyilvános metaadatok felfedhetik a szerzők neveit, címeket, témákat, kulcsszavakat, vállalati információkat, megjegyzéseket és egyéni értékeket. Titkosítsa a érzékeny tulajdonságokat a prezentációval együtt. Csak akkor hagyja nyilvánosan, ha indexelési, osztályozási, keresési vagy dokumentumkezelő rendszereknek van konkrét igénye a jelszó nélküli hozzáférésre.Titkosított prezentáció tulajdonságainak frissítése
Titkosított PPTX fájl esetén a LoadOptions.setOnlyLoadDocumentProperties true paraméterrel betöltött prezentáció a nyilvános metaadatok olvasására szolgál. Az Aspose.Slides nem tudja elmenteni a megváltozott tulajdonságokat ebből a csak metaadatokat tartalmazó objektumból, mivel a nyilvános tulajdonságoknak konzisztensnek kell maradniuk a titkosított prezentációban lévő megfelelő adatokkal. Ennek frissítéséhez ezért a helyes megnyitási jelszó és a teljes betöltés szükséges.
A példa egy nyilvános dokumentumtulajdonságokkal rendelkező titkosított PPTX prezentációt és egy ismert megnyitási jelszót igényel. A teljes prezentációt a LoadOptions.setPassword segítségével nyitja meg, frissíti a nyilvános beépített tulajdonságokat, és elmenti az eredményt. Ezután a PresentationInfo.isEncrypted segítségével ellenőrzi, hogy a titkosítás megmaradt-e, és a jelszó nélkül újra megnyitja a nyilvános metaadatokat az új értékek ellenőrzéséhez:
const slides = require("aspose.slides.via.java");
const inputPath = "public-properties-encrypted.pptx";
const outputPath = "updated-public-properties-encrypted.pptx";
const loadOptions = new slides.LoadOptions();
loadOptions.setPassword("open_password");
const presentation = new slides.Presentation(inputPath, loadOptions);
try {
const documentProperties = presentation.getDocumentProperties();
documentProperties.setTitle("Updated Product Roadmap");
documentProperties.setKeywords("roadmap, planning, indexed");
presentation.save(outputPath, slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
const presentationInfo = slides.PresentationFactory.getInstance().getPresentationInfo(outputPath);
console.log("The presentation is encrypted: " + presentationInfo.isEncrypted());
const metadataLoadOptions = new slides.LoadOptions();
metadataLoadOptions.setOnlyLoadDocumentProperties(true);
const metadataPresentation = new slides.Presentation(outputPath, metadataLoadOptions);
try {
if (metadataPresentation.getProtectionManager().isOnlyDocumentPropertiesLoaded()) {
console.log("Title: " + metadataPresentation.getDocumentProperties().getTitle());
console.log("Keywords: " + metadataPresentation.getDocumentProperties().getKeywords());
} else {
console.log("The presentation was not loaded in document-properties-only mode.");
}
} finally {
metadataPresentation.dispose();
}
Ha egy alkalmazásnak nincs engedélye a prezentáció tartalmának visszafejtésére vagy betöltésére, a titkosított PPTX fájl nyilvános tulajdonságait csak olvashatóként kell kezelnie.
Beépített tulajdonságokhoz való hozzáférés
A DocumentProperties osztály getter metódusok révén teszi elérhetővé a beépített metaadatokat, többek között a getAuthor, getTitle és getCreatedTime metódusokkal. Ez a példa megnyit egy meglévő prezentációt, és a tárolt metaadatokat a konzolra írja. Az értékek a bemeneti prezentációtól függenek; egyes mezők üresek lehetnek.
const slides = require("aspose.slides.via.java");
const presentation = new slides.Presentation("AccessBuiltInProperties.pptx");
try {
const documentProperties = presentation.getDocumentProperties();
console.log("Category: " + documentProperties.getCategory());
console.log("Content status: " + documentProperties.getContentStatus());
console.log("Creation date: " + documentProperties.getCreatedTime());
console.log("Author: " + documentProperties.getAuthor());
console.log("Comments: " + documentProperties.getComments());
console.log("Keywords: " + documentProperties.getKeywords());
console.log("Last modified by: " + documentProperties.getLastSavedBy());
console.log("Manager: " + documentProperties.getManager());
console.log("Modified date: " + documentProperties.getLastSavedTime());
console.log("Presentation format: " + documentProperties.getPresentationFormat());
console.log("Last print date: " + documentProperties.getLastPrinted());
console.log("Is shared between producers: " + documentProperties.getSharedDoc());
console.log("Subject: " + documentProperties.getSubject());
console.log("Title: " + documentProperties.getTitle());
} finally {
presentation.dispose();
}
Beépített tulajdonságok módosítása
A beépített metaadatok frissítéséhez használja a setter metódusokat a Presentation.getDocumentProperties által visszaadott objektumon. Ez a példa megnyit egy meglévő prezentációt, meghívja a setAuthor, setTitle, setSubject, setComments és setManager metódusokat, majd a Presentation.save segítségével elmenti a frissített prezentációt. A mentett PPTX tartalmazza az új metaadatokat.
const slides = require("aspose.slides.via.java");
const presentation = new slides.Presentation("ModifyBuiltInProperties.pptx");
try {
const documentProperties = presentation.getDocumentProperties();
documentProperties.setAuthor("Aspose.Slides for Node.js via Java");
documentProperties.setTitle("Manage PowerPoint Presentation Properties");
documentProperties.setSubject("Modify Built-in Properties");
documentProperties.setComments("Aspose description");
documentProperties.setManager("Aspose manager");
presentation.save("DocumentProperties_output.pptx", slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
A hiperhivatkozás alapjának kezelése
A DocumentProperties.getHyperlinkBase visszaadja a dokumentumszintű alapot a relatív hiperhivatkozásokhoz. A DocumentProperties.setHyperlinkBase segítségével módosíthatja vagy törölheti azt. Ez akkor hasznos, amikor egy prezentációt és a hozzá kapcsolódó fájlokat egy másik helyre helyezi át. Ez különálló az egyes hiperhivatkozások Hyperlink.getExternalUrl metódusától: az alap módosítása nem írja felül a tárolt hivatkozási címeket, és nem változtatja meg az abszolút célpontokat.
A példa egy olyan prezentációt igényel, amely tartalmaz egy relatív hivatkozást, például a target.html-t, és egy abszolút hivatkozást, például a https://example.org/absolute.html-t. Kiolvassa a meglévő alapot, új alapcímre állítja, majd menti és újra megnyitja a prezentációt az érték ellenőrzéséhez. Ezután egy üres karakterlánccal törli az alapot, és egy külön mentett fájlban ellenőrzi az üres értéket. Cserélje le a példában szereplő alapcímet a saját kapcsolt fájljainak helyére.
const slides = require("aspose.slides.via.java");
const presentation = new slides.Presentation("hyperlinks.pptx");
try {
console.log("Original base: " + presentation.getDocumentProperties().getHyperlinkBase());
const newBase = "https://example.com/new/";
presentation.getDocumentProperties().setHyperlinkBase(newBase);
presentation.save("hyperlinks-updated.pptx", slides.SaveFormat.Pptx);
const updatedPresentation = new slides.Presentation("hyperlinks-updated.pptx");
try {
console.log("Base preserved: " + (newBase === updatedPresentation.getDocumentProperties().getHyperlinkBase()));
updatedPresentation.getDocumentProperties().setHyperlinkBase("");
updatedPresentation.save("hyperlinks-cleared.pptx", slides.SaveFormat.Pptx);
const clearedPresentation = new slides.Presentation("hyperlinks-cleared.pptx");
try {
console.log("Base cleared: " + ("" === clearedPresentation.getDocumentProperties().getHyperlinkBase()));
} finally {
clearedPresentation.dispose();
}
} finally {
updatedPresentation.dispose();
}
} finally {
presentation.dispose();
}
A két ellenőrző üzenetnek true-t kell kiírnia. Az alap törlése nem érinti az egyes hiperhivatkozások címét.
Egy relatív hivatkozás a target.pptx-re az old/target.pptx fájlt nyitotta meg, amikor az alap az old mappára mutatott. Az alap new mappára történő módosítása, a mentés és a prezentáció újra megnyitása után ugyanaz a hivatkozás a new/target.pptx-t nyitotta meg. Egy abszolút hivatkozás továbbra is ugyanazt a fájlt nyitotta. Tesztelje a relatív hivatkozásait a PowerPointban a prezentáció áthelyezése vagy az alap megváltoztatása előtt és után.
Egyéni prezentációtulajdonságok hozzáadása
Az egyéni tulajdonságok olyan metaadatokat tárolnak, amelyeknek nincs megfelelő beépített mezője. A DocumentProperties.set_Item metódus lehetővé teszi érték hozzárendelését a tulajdonság nevével. Ez a példa létrehoz egy prezentációt, két szöveges értéket és egy egész számú verzióértéket ad hozzá, majd a Presentation.save segítségével elmenti a prezentációt. Egy meglévő névhez való érték hozzárendelése felülírja az adott tulajdonság értékét.
const slides = require("aspose.slides.via.java");
const presentation = new slides.Presentation();
try {
const documentProperties = presentation.getDocumentProperties();
documentProperties.set_Item("Reviewed by", "John Smith");
documentProperties.set_Item("Confidentiality level", "Internal");
documentProperties.set_Item("Document version", 2);
presentation.save("CustomDocumentProperties_output.pptx", slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Egyéni tulajdonságok elérése és módosítása
Ez a példa megnyit egy olyan prezentációt, amely egyéni tulajdonságokat tartalmaz, és a getCountOfCustomProperties segítségével iterálja őket. A getCustomPropertyName nulláralapú indexet fogad, és visszaadja a DocumentProperties.set_Item által használt nevet. A példa kiírja az egyes eredeti neveket és értékeket, minden értéket egy számozott karakterláncra cserél az eredeti típusától függetlenül, majd elmenti a módosításokat. Ha nincsenek egyéni tulajdonságok, a ciklus nem hajt végre változtatást.
const slides = require("aspose.slides.via.java");
const presentation = new slides.Presentation("AccessAndModifyProperties.pptx");
try {
const documentProperties = presentation.getDocumentProperties();
for (let i = 0; i < documentProperties.getCountOfCustomProperties(); i++) {
const propertyName = documentProperties.getCustomPropertyName(i);
const propertyValue = documentProperties.get_Item(propertyName);
console.log("Custom property name: " + propertyName);
console.log("Custom property value: " + propertyValue);
documentProperties.set_Item(propertyName, "New Value " + (i + 1));
}
presentation.save("CustomProperties_output.pptx", slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Élő példa
Próbálja ki a View & Edit PowerPoint Metadata online alkalmazást, hogy lássa, hogyan lehet a dokumentumtulajdonságokkal dolgozni az Aspose.Slides API-val:
GYIK
Hogyan távolíthatok el egy beépített tulajdonságot egy prezentációból?
A beépített tulajdonságok szerves részei a prezentációnak, és nem távolíthatók el teljesen. Azonban megváltoztathatja azok értékét, vagy a konkrét tulajdonság megengedi, akkor üresre állíthatja őket.
Mi történik, ha olyan egyéni tulajdonságot adok hozzá, amely már létezik?
Ha olyan egyéni tulajdonságot ad hozzá, amely már létezik, akkor a meglévő érték felül lesz írva az újval. Nem kell előre eltávolítani vagy ellenőrizni a tulajdonságot, mivel az Aspose.Slides automatikusan frissíti a tulajdonság értékét.
Hozzáférhetek a prezentáció tulajdonságaihoz anélkül, hogy teljesen betölteném a prezentációt?
Igen. Használja a PresentationFactory.getPresentationInfo metódust, majd a PresentationInfo.readDocumentProperties metódust a tárolt dokumentum metaadatok olvasásához anélkül, hogy Presentation példányt hozna létre. Lásd a Build a Lightweight Presentation Inventory cikket a teljes jelentési példáért és a formátumspecifikus korlátozásokért.
Olvashatok nyilvános tulajdonságokat egy titkosított prezentációból anélkül, hogy megadnám a megnyitási jelszavát?
Igen. A prezentációt a ProtectionManager.setEncryptDocumentProperties false paraméterrel történő meghívása után kell titkosítani, és a LoadOptions.setOnlyLoadDocumentProperties true paraméterrel történő betöltés után.
Frissíthetek egy titkosított PPTX fájlt csak dokumentumtulajdonságok módjában?
Nem. A nyilvános és a titkosított tulajdonságok adatai konzisztensnek kell maradniuk, ezért egy titkosított PPTX fájl frissítéséhez a teljes prezentációt a megfelelő megnyitási jelszóval kell betölteni.
