Prezentáció tulajdonságainak kezelése .NET-ben

Bevezetés

Az Aspose.Slides for .NET beépített és egyéni dokumentumtulajdonságokat támogat. 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, hogy a prezentáció dokumentumtulajdonságokkal a IDocumentProperties felületen keresztül dolgozzon. Ennek a felületnek egy példánya a IPresentation.DocumentProperties által kerül visszaadásra. A következő példák bemutatják, hogyan olvassa, módosítsa és kezelje ezeket a tulajdonságokat.

A prezentáció tulajdonságainak kezelése

A dokumentumtulajdonságok a leíró információkat tárolják a prezentáció tartalma mellett. 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 .NET hozzáférést biztosít mindkét kategóriához. PowerPointban válassza a File → Info → Properties → Advanced Properties menüpontot a dokumentum metaadatainak megtekintéséhez. A párbeszédpanel információkat csoportosít külön lapokra, mint például Summary, Statistics, Contents és Custom. Használja a Custom lapot a felhasználó által meghatározott tulajdonságok kezeléséhez.

Nyilvános tulajdonságok olvasása titkosított prezentációból

Egy nyitó jelszó általában védi a prezentáció tartalmát és a dokumentumtulajdonságokat is. Ha egy prezentációt úgy titkosítanak, hogy a IProtectionManager.EncryptDocumentProperties értéke false, akkor a dokumentumtulajdonságok nyilvánosak maradnak. Egy alkalmazás ekkor a LoadOptions.OnlyLoadDocumentProperties értékét true-ra állíthatja, és a nyilvános metaadatokat anélkül olvashatja, hogy a nyitó jelszót megadná.

LoadOptions.OnlyLoadDocumentProperties határozza meg, mit tölt be az Aspose.Slides; semmit nem titkosít fel. Ha a tulajdonságok a titkosítás részét képezték, a jelszó nélküli betöltés sikertelen. Ha a prezentáció nincs titkosítva, a beállítás figyelmen kívül marad, és a teljes prezentáció betöltődik.

A példa egy olyan titkosított prezentációt igényel, amelynek dokumentumtulajdonságai nyilvánosak. A betöltési módot a IProtectionManager.IsOnlyDocumentPropertiesLoaded ellenőrzi, majd a beépített tulajdonságokat a IPresentation.DocumentProperties segítségével olvassa:

using System;
using Aspose.Slides;

var loadOptions = new LoadOptions { OnlyLoadDocumentProperties = true };
using var presentation = new Presentation("public-properties-encrypted.pptx", loadOptions);

if (presentation.ProtectionManager.IsOnlyDocumentPropertiesLoaded)
{
    var documentProperties = presentation.DocumentProperties;

    Console.WriteLine("Author: " + documentProperties.Author);
    Console.WriteLine("Title: " + documentProperties.Title);
    Console.WriteLine("Keywords: " + documentProperties.Keywords);
}
else
{
    Console.WriteLine("The presentation was not loaded in document-properties-only mode.");
}

Ebben a módban a diák tartalma nem töltődik be. Diák, mesteroldalak, elrendezések, alakzatok, média és egyéb prezentációs objektumok nem érhetők el. Az alkalmazásoknak mindig ellenőrizniük kell a IProtectionManager.IsOnlyDocumentPropertiesLoaded értékét, mielőtt olyan műveletet végeznek, amely a teljes prezentáció objektummodelljét igényli.

Titkosított prezentáció tulajdonságainak frissítése

Titkosított PPTX fájl esetén a LoadOptions.OnlyLoadDocumentProperties által betöltött prezentáció a nyilvános metaadatok olvasására szolgál. Az Aspose.Slides nem képes menteni a módosított tulajdonságokat ebből a csak-metaadat objektumból, mert a nyilvános tulajdonságoknak összhangban kell lenniük a titkosított prezentációban lévő adatokkal. Ezért a frissítéshez a helyes nyitó jelszó és a teljes betöltés szükséges.

A példa egy titkosított PPTX prezentációt igényel, amelynek dokumentumtulajdonságai nyilvánosak, valamint egy ismert nyitó jelszót. A teljes prezentációt a LoadOptions.Password segítségével nyitja meg, frissíti a nyilvános beépített tulajdonságokat, és elmenti az eredményt. Ezután a IPresentationInfo.IsEncrypted használatával ellenőrzi, hogy a titkosítás fennmaradt, és jelszó nélkül újra megnyitja a nyilvános metaadatokat az új értékek ellenőrzéséhez:

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

const string inputPath = "public-properties-encrypted.pptx";
const string outputPath = "updated-public-properties-encrypted.pptx";

var loadOptions = new LoadOptions { Password = "open_password" };
using var presentation = new Presentation(inputPath, loadOptions);

var documentProperties = presentation.DocumentProperties;
documentProperties.Title = "Updated Product Roadmap";
documentProperties.Keywords = "roadmap, planning, indexed";

presentation.Save(outputPath, SaveFormat.Pptx);

var presentationInfo = PresentationFactory.Instance.GetPresentationInfo(outputPath);
Console.WriteLine("The presentation is encrypted: " + presentationInfo.IsEncrypted);

var metadataLoadOptions = new LoadOptions { OnlyLoadDocumentProperties = true };
using var metadataPresentation = new Presentation(outputPath, metadataLoadOptions);

if (metadataPresentation.ProtectionManager.IsOnlyDocumentPropertiesLoaded)
{
    Console.WriteLine("Title: " + metadataPresentation.DocumentProperties.Title);
    Console.WriteLine("Keywords: " + metadataPresentation.DocumentProperties.Keywords);
}
else
{
    Console.WriteLine("The presentation was not loaded in document-properties-only mode.");
}

Ha egy alkalmazás nem kap engedélyt a prezentáció tartalmának dekódolására vagy betöltésére, a titkosított PPTX fájl nyilvános tulajdonságait csak olvasásra használhatja.

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

Az IDocumentProperties felület a beépített metaadatokat típusos tulajdonságokként teszi elérhetővé, többek között a Author, a Title és a CreatedTime tulajdonságokat. Ez a példa egy létező prezentációt nyit meg, és a tárolt metaadatokat a konzolra írja. Az értékek a bemeneti prezentációtól függenek; egyes mezők üresek lehetnek.

using System;
using Aspose.Slides;

using var presentation = new Presentation("AccessBuiltInProperties.pptx");

var documentProperties = presentation.DocumentProperties;

Console.WriteLine("Category: " + documentProperties.Category);
Console.WriteLine("Content status: " + documentProperties.ContentStatus);
Console.WriteLine("Creation date: " + documentProperties.CreatedTime);
Console.WriteLine("Author: " + documentProperties.Author);
Console.WriteLine("Comments: " + documentProperties.Comments);
Console.WriteLine("Keywords: " + documentProperties.Keywords);
Console.WriteLine("Last modified by: " + documentProperties.LastSavedBy);
Console.WriteLine("Manager: " + documentProperties.Manager);
Console.WriteLine("Modified date: " + documentProperties.LastSavedTime);
Console.WriteLine("Presentation format: " + documentProperties.PresentationFormat);
Console.WriteLine("Last print date: " + documentProperties.LastPrinted);
Console.WriteLine("Is shared between producers: " + documentProperties.SharedDoc);
Console.WriteLine("Subject: " + documentProperties.Subject);
Console.WriteLine("Title: " + documentProperties.Title);

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

A beépített metaadatok frissítéséhez írható értékeket kell adni az IPresentation.DocumentProperties által biztosított tulajdonságoknak. Ez a példa egy létező prezentációt nyit meg, beállítja a Author, a Title, a Subject, a Comments és a Manager tulajdonságokat, majd a Presentation.Save segítségével menti a frissített prezentációt. A mentett PPTX tartalmazza az új metaadatokat.

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("ModifyBuiltInProperties.pptx");

var documentProperties = presentation.DocumentProperties;

documentProperties.Author = "Aspose.Slides for .NET";
documentProperties.Title = "Manage PowerPoint Presentation Properties";
documentProperties.Subject = "Modify Built-in Properties";
documentProperties.Comments = "Aspose description";
documentProperties.Manager = "Aspose manager";

presentation.Save("DocumentProperties_output.pptx", SaveFormat.Pptx);

A hiperhivatkozás alapjának kezelése

IDocumentProperties.HyperlinkBase a dokumentumszintű alapot tárolja a relatív hiperhivatkozásokhoz. Ez akkor hasznos, ha egy prezentációt és a hozzákapcsolt fájlokat egy másik helyre helyezzük át. Ez különáll a egyes hiperhivatkozások IHyperlink.ExternalUrl értékétől: az alap módosítása nem írja át a tárolt hivatkozási címeket, és nem változtatja meg az abszolút célpontokat.

A példa egy prezentációt igényel, amely tartalmaz egy relatív hivatkozást, például target.html, és egy abszolút hivatkozást, például https://example.org/absolute.html. Kiolvassa a meglévő alapot, új alapcímet ad meg, majd elmenti és újra megnyitja a prezentációt az érték ellenőrzésére. Ezután a string.Empty segítségével törli az alapot, és egy külön mentett fájlban ellenőrzi az üres értéket. Cserélje le a példa alapcímet a saját kapcsolt fájljainak helyére.

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("hyperlinks.pptx");
Console.WriteLine("Original base: " + presentation.DocumentProperties.HyperlinkBase);

const string newBase = "https://example.com/new/";
presentation.DocumentProperties.HyperlinkBase = newBase;
presentation.Save("hyperlinks-updated.pptx", SaveFormat.Pptx);

using var updatedPresentation = new Presentation("hyperlinks-updated.pptx");
Console.WriteLine("Base preserved: " + (updatedPresentation.DocumentProperties.HyperlinkBase == newBase));

updatedPresentation.DocumentProperties.HyperlinkBase = string.Empty;
updatedPresentation.Save("hyperlinks-cleared.pptx", SaveFormat.Pptx);

using var clearedPresentation = new Presentation("hyperlinks-cleared.pptx");
Console.WriteLine("Base cleared: " + (clearedPresentation.DocumentProperties.HyperlinkBase == string.Empty));

A két ellenőrző üzenetnek True‑t kell kiírnia. Az alap törlése nem érinti az egyes hiperhivatkozás címeket.

Egy relatív hivatkozás a target.pptx fájlra old/target.pptx-t nyitott meg, amikor az alap az old mappára mutatott. Az alap new mappára változtatása, a mentés és a prezentáció újra megnyitása után ugyanaz a hivatkozás a new/target.pptx fájlt nyitja meg. Egy abszolút hivatkozás továbbra is ugyanazt a fájlt nyitja meg. Tesztelje a relatív hivatkozásait PowerPointban a prezentáció áthelyezése vagy az alap módosítá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. Az IDocumentProperties indexer lehetővé teszi, hogy név alapján értéket rendeljünk hozzá. Ez a példa létrehoz egy prezentációt, két szöveges értéket és egy egész verzióértéket ad hozzá, majd a Presentation.Save segítségével menti a prezentációt. Egy meglévő névhez érték hozzárendelése felülírja az adott tulajdonság értékét.

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation();

var documentProperties = presentation.DocumentProperties;

documentProperties["Reviewed by"] = "John Smith";
documentProperties["Confidentiality level"] = "Internal";
documentProperties["Document version"] = 2;

presentation.Save("CustomDocumentProperties_output.pptx", SaveFormat.Pptx);

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

Ez a példa egy olyan prezentációt nyit meg, amely egyéni tulajdonságokat tartalmaz, és a CountOfCustomProperties segítségével iterál rajtuk. A GetCustomPropertyName nulláról induló indexet fogad, és visszaadja a IDocumentProperties indexer által használt nevet. A példa kiírja minden eredeti nevet és értéket, minden értéket számozott karakterláncra cserél, függetlenül annak eredeti típusától, és elmenti a módosításokat. Ha nincsenek egyéni tulajdonságok, a ciklus nem végez változtatást.

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("AccessAndModifyProperties.pptx");

var documentProperties = presentation.DocumentProperties;

for (var i = 0; i < documentProperties.CountOfCustomProperties; i++)
{
    var propertyName = documentProperties.GetCustomPropertyName(i);
    var propertyValue = documentProperties[propertyName];

    Console.WriteLine("Custom property name: " + propertyName);
    Console.WriteLine("Custom property value: " + propertyValue);

    documentProperties[propertyName] = "New Value " + (i + 1);
}

presentation.Save("CustomProperties_output.pptx", SaveFormat.Pptx);

Élő példa

Próbálja ki a PowerPoint metaadatok megtekintése és szerkesztése online alkalmazást, hogy lássa, hogyan lehet a dokumentumtulajdonságokkal dolgozni az Aspose.Slides API használatával:

PowerPoint metaadatok megtekintése és szerkesztése

GYIK

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

A beépített tulajdonságok a prezentáció szerves részei, és nem távolíthatók el teljesen. Azonban megváltoztathatja értékeiket, vagy ha az adott 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őtte 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 IPresentationInfo.ReadDocumentProperties segítségével olvassa a tárolt dokumentum metaadatait anélkül, hogy Presentation példányt hozna létre. Lásd a Könnyű prezentáció-inventár létrehozása 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 a nyitó jelszó nélkül?

Igen. A prezentációnak úgy kell titkosítva lennie, hogy a IProtectionManager.EncryptDocumentProperties értéke false, és a LoadOptions.OnlyLoadDocumentProperties értéke true legyen.

Frissíthetek egy titkosított PPTX fájlt csak a dokumentumtulajdonságok betöltésével?

Nem. A nyilvános és a titkosított tulajdonságadatoknak összhangban kell lenniük, ezért egy titkosított PPTX fájl frissítéséhez a teljes prezentációt kell betölteni a helyes nyitó jelszóval.