Beheer presentatieweigenschappen in .NET
Inleiding
Aspose.Slides for .NET ondersteunt ingebouwde en aangepaste documenteigenschappen. Gebruik deze eigenschappen om presentatiemetadata te lezen en bij te werken, zoals de auteur, titel en door de gebruiker gedefinieerde waarden.
Aspose.Slides stelt u in staat om met de documenteigenschappen van een presentatie te werken via de IDocumentProperties interface. Een instantie van deze interface wordt geretourneerd door IPresentation.DocumentProperties. De volgende voorbeelden laten zien hoe u deze eigenschappen kunt lezen, wijzigen en beheren.
Note
Aspose.Slides beheert de applicatie‑ en producentmetadata bij het opslaan van presentaties; deze velden identificeren de software die de uitvoer heeft gemaakt.Eigenschappen van de presentatie beheren
Documenteigenschappen slaan beschrijvende informatie op naast de presentatie‑inhoud. Ze vallen in twee categorieën:
- Ingebouwde eigenschappen bevatten standaardmetadata, zoals de titel, auteur en documentstatistieken.
- Aangepaste eigenschappen slaan door de gebruiker gedefinieerde naam/waarde‑paren op.
Aspose.Slides for .NET biedt toegang tot beide categorieën. In PowerPoint selecteert u Bestand → Info → Eigenschappen → Geavanceerde eigenschappen om documentmetadata te inspecteren. Het dialoogvenster groepeert informatie in tabbladen zoals Samenvatting, Statistieken, Inhoud en Aangepast. Gebruik het tabblad Aangepast om door‑gebruiker gedefinieerde eigenschappen te beheren.
Openbare eigenschappen lezen van een versleutelde presentatie
Een openings‑wachtwoord beschermt normaal zowel de presentatie‑inhoud als de documenteigenschappen. Wanneer een presentatie versleuteld is met IProtectionManager.EncryptDocumentProperties ingesteld op false, blijven de documenteigenschappen openbaar. Een applicatie kan dan LoadOptions.OnlyLoadDocumentProperties instellen op true en de openbare metadata lezen zonder het openings‑wachtwoord in te voeren.
LoadOptions.OnlyLoadDocumentProperties bepaalt wat Aspose.Slides laadt; het decodeert niets. Als de eigenschappen waren meegenomen in de versleuteling, mislukt het laden ervan zonder wachtwoord. Als de presentatie niet versleuteld is, wordt de optie genegeerd en wordt de volledige presentatie geladen.
Het voorbeeld vereist een versleutelde presentatie waarvan de documenteigenschappen openbaar zijn gelaten. Het verifieert de laadmethode via IProtectionManager.IsOnlyDocumentPropertiesLoaded en leest vervolgens de ingebouwde eigenschappen via IPresentation.DocumentProperties:
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.");
}
In deze modus wordt de slide‑inhoud niet geladen. Slides, master‑slides, lay-outs, vormen, media en andere presentatie‑objecten zijn niet beschikbaar. Applicaties moeten altijd IProtectionManager.IsOnlyDocumentPropertiesLoaded controleren voordat ze een bewerking uitvoeren die het volledige presentatiemodel vereist.
Security
Openbare metadata kunnen auteursnamen, titels, onderwerpen, trefwoorden, bedrijfsinformatie, opmerkingen en aangepaste waarden onthullen. Versleutel gevoelige eigenschappen samen met de presentatie. Laat ze alleen openbaar wanneer indexeer‑, classificatie‑, zoek‑ of document‑beheersystemen een specifieke noodzaak hebben om er zonder wachtwoord toegang toe te krijgen.Eigenschappen van een versleutelde presentatie bijwerken
Voor een versleuteld PPTX‑bestand is een presentatie die geladen is met LoadOptions.OnlyLoadDocumentProperties bedoeld om openbare metadata te lezen. Aspose.Slides kan geen gewijzigde eigenschappen opslaan vanuit dat alleen‑metadata‑object, omdat de openbare eigenschappen consistent moeten blijven met de corresponderende gegevens binnen de versleutelde presentatie. Het bijwerken ervan vereist dus het juiste openings‑wachtwoord en een volledige lading.
Het voorbeeld vereist een versleutelde PPTX‑presentatie met openbare documenteigenschappen en een bekend openings‑wachtwoord. Het opent de volledige presentatie met LoadOptions.Password, werkt openbare ingebouwde eigenschappen bij en slaat het resultaat op. Vervolgens gebruikt het IPresentationInfo.IsEncrypted om te verifiëren dat de versleuteling behouden blijft en opent het de openbare metadata opnieuw zonder wachtwoord om de nieuwe waarden te controleren:
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.");
}
Als een applicatie niet mag decrypten of de presentatie‑inhoud laden, moet zij de openbare eigenschappen van een versleuteld PPTX‑bestand als alleen‑lezen behandelen.
Toegang tot ingebouwde eigenschappen
De IDocumentProperties interface maakt ingebouwde metadata toegankelijk via getypeerde eigenschappen, inclusief Author, Title en CreatedTime. Dit voorbeeld opent een bestaande presentatie en drukt de opgeslagen metadata af naar de console. De waarden hangen af van de invoerpresentatie; sommige velden kunnen leeg zijn.
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);
Ingebouwde eigenschappen wijzigen
Om ingebouwde metadata bij te werken, kent u waarden toe aan de schrijfbare eigenschappen die worden blootgesteld door IPresentation.DocumentProperties. Dit voorbeeld opent een bestaande presentatie, stelt Author, Title, Subject, Comments en Manager in, en slaat vervolgens de bijgewerkte presentatie op met Presentation.Save. Het opgeslagen PPTX‑bestand bevat de nieuwe metadata.
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);
Beheer van de hyperlink‑basis
IDocumentProperties.HyperlinkBase slaat de document‑niveau basis op voor relatieve hyperlinks. Dit is handig bij het verplaatsen van een presentatie en de gekoppelde bestanden naar een andere locatie. Het staat los van de IHyperlink.ExternalUrl van een individuele hyperlink: het wijzigen van de basis herschrijft niet de opgeslagen linkadressen of verandert absolute bestemmingen.
Het voorbeeld vereist een presentatie die zowel een relatieve link bevat, zoals target.html, als een absolute link, zoals https://example.org/absolute.html. Het leest de bestaande basis, kent een nieuw basisadres toe, en slaat de presentatie op en opent deze opnieuw om de waarde te controleren. Vervolgens wist het de basis met string.Empty en verifieert de lege waarde in een apart opgeslagen bestand. Vervang het voorbeeld‑basisadres door de locatie van uw gekoppelde bestanden.
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));
De twee verificatie‑berichten moeten True afdrukken. Het wissen van de basis laat de individuele hyperlink‑adressen onaangeroerd.
Een relatieve link naar target.pptx opende old/target.pptx toen de basis naar de old‑map verwees. Na het wijzigen van de basis naar de new‑map, opslaan en opnieuw openen van de presentatie, opende dezelfde link new/target.pptx. Een absolute link bleef hetzelfde bestand openen. Test uw relatieve links in PowerPoint vóór en na het verplaatsen van de presentatie of het wijzigen van de basis.
Aangepaste presentatieweigenschappen toevoegen
Aangepaste eigenschappen slaan metadata op waarvoor geen overeenkomstig ingebouwd veld bestaat. De IDocumentProperties indexer laat u een waarde toewijzen op basis van de eigenschapsnaam. Dit voorbeeld maakt een presentatie, voegt twee tekstwaarden en een geheel getal versie‑waarde toe, en slaat de presentatie op met Presentation.Save. Het toewijzen van een waarde aan een bestaande naam vervangt de waarde van die eigenschap.
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);
Aangepaste eigenschappen benaderen en wijzigen
Dit voorbeeld opent een presentatie met aangepaste eigenschappen en gebruikt CountOfCustomProperties om erover te itereren. GetCustomPropertyName accepteert een index vanaf nul en geeft de naam terug die door de IDocumentProperties indexer wordt gebruikt. Het voorbeeld drukt elke oorspronkelijke naam en waarde af, vervangt elke waarde door een genummerde tekenreeks ongeacht het oorspronkelijke type, en slaat de wijzigingen op. Als er geen aangepaste eigenschappen zijn, doet de lus niets.
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);
Live‑voorbeeld
Probeer de online app View & Edit PowerPoint Metadata om te zien hoe u met documenteigenschappen kunt werken via de Aspose.Slides‑API:
FAQ
Hoe kan ik een ingebouwde eigenschap uit een presentatie verwijderen?
Ingebouwde eigenschappen maken een integraal onderdeel van de presentatie uit en kunnen niet volledig worden verwijderd. U kunt ze echter wel wijzigen of, indien de specifieke eigenschap dat toestaat, op een lege waarde zetten.
Wat gebeurt er als ik een aangepaste eigenschap toevoeg die al bestaat?
Als u een aangepaste eigenschap toevoegt die al bestaat, wordt de bestaande waarde overschreven door de nieuwe. Het is niet nodig de eigenschap vooraf te verwijderen of te controleren, omdat Aspose.Slides de waarde automatisch bijwerkt.
Kan ik presentatieweigenschappen benaderen zonder de volledige presentatie te laden?
Ja. Gebruik PresentationFactory.GetPresentationInfo en vervolgens IPresentationInfo.ReadDocumentProperties om opgeslagen documentmetadata te lezen zonder een Presentation‑instantie te maken. Zie Build a Lightweight Presentation Inventory voor een volledig rapportage‑voorbeeld en formaat‑specifieke beperkingen.
Kan ik openbare eigenschappen van een versleutelde presentatie lezen zonder het openings‑wachtwoord?
Ja. De presentatie moet versleuteld zijn met IProtectionManager.EncryptDocumentProperties ingesteld op false, en moet geladen worden met LoadOptions.OnlyLoadDocumentProperties ingesteld op true.
Kan ik een versleuteld PPTX‑bestand bijwerken in alleen‑documenteigenschappen‑modus?
Nee. Openbare en versleutelde eigenschapsgegevens moeten consistent blijven, dus het bijwerken van een versleuteld PPTX‑bestand vereist het volledig laden van de presentatie met het juiste openings‑wachtwoord.
