Inhoudsopgave
Overzicht
Het beheren van documentmetadata over verschillende bestandsformaten kan een uitdaging zijn. GroupDocs.Metadata voor .NET maakt dit eenvoudiger door een taggingsysteem te bieden dat veelvoorkomende metadata‑eigenschappen (bijv. Titel, Auteur, Aanmaakdatum) onder tags uniform maakt. In deze handleiding onderzoeken we hoe je metadata kunt vinden, toevoegen, kopiëren, bijwerken en verwijderen met behulp van tags in GroupDocs.Metadata voor .NET.
GroupDocs.Metadata gebruikt tags om belangrijke metadata‑eigenschappen in een bestand te labelen, ongeacht het documentformaat of de metadata‑standaard. Elke tag behoort tot een categorie die gerelateerde tags groepeert voor eenvoudigere ontdekking.
Voorbeeld:
- Inhoudstags: Beschrijven de inhoud van een bestand (bijv. taal, genre, onderwerp, waardering)
- Persontags: Identificeren personen of organisaties gerelateerd aan de inhoud (bijv. documentmaker, redacteur, bedrijf)
- Tijdtags: Representeren tijdstempels in de levenscyclus van het bestand (bijv. aanmaakdatum, laatst bewerkt, afdrukdatum)
(Andere categorieën omvatten Juridisch, Oorsprong, Gereedschap, enz., elk met relevante tags.)
Met deze tags kun je metadata op een uniforme manier doorzoeken en manipuleren in Word‑documenten, PDF’s, afbeeldingen en meer. Bijvoorbeeld, een “Auteur” of Maker‑tag in de Persoon‑categorie komt overeen met de auteureigenschap in een Word‑document of een PDF zonder dat je de formaat‑specifieke metadata‑veldnaam hoeft te kennen. Dit maakt tags bijzonder nuttig voor het organiseren van bestanden en het automatiseren van metadata‑beheer taken.
Toepassingsgevallen
In dit gedeelte introduceren we verschillende toepassingsgevallen die de praktische toepassingen benadrukken.
Metadata‑eigenschappen vinden op basis van tag
Een veelvoorkomend toepassingsgeval is het vinden van metadata‑items in een bestand op basis van hun tag. Dit is bijzonder nuttig voor het verbeteren van doorzoekbaarheid – je kunt specifieke informatie ophalen uit elk document zonder je zorgen te maken over het formaat.
Stappen
- Laad het bestand in een
Metadata‑object. - Zoek eigenschappen met
FindProperties()en een op tags gebaseerde predicaat. Je kunt filteren op een specifieke tag of op een hele categorie. - Iterate door de resultaten om de metadata te inspecteren of te gebruiken.
// Load the source document (e.g., a PowerPoint file)
using (Metadata metadata = new Metadata("source.pptx"))
{
// Find properties tagged as "last editor" or "last modified time"
var properties = metadata.FindProperties(p =>
p.Tags.Contains(Tags.Person.Editor) ||
p.Tags.Contains(Tags.Time.Modified));
// List the found properties and their values
foreach (var property in properties)
{
Console.WriteLine($"Property name: {property.Name}, Value: {property.Value}");
}
}
Metadata‑eigenschappen toevoegen op basis van tag
Soms kan een bestand bepaalde metadata missen (bijv. geen “Laatste afdrukdatum” geregistreerd). Met GroupDocs.Metadata kun je een metadata‑eigenschap toevoegen door een tag op te geven, en de API plaatst deze in het juiste metadata‑pakket als het formaat dit ondersteunt.
Stappen
- Laad het bestand in een
Metadata‑object. - Roep
AddProperties()aan met een predicaat om te bepalen waar toe te voegen, en geef de nieuwe eigenschapswaarde op. - Controleer de geretourneerde waarde om te zien hoeveel eigenschappen zijn toegevoegd.
- Sla het document op (als je de wijzigingen wilt behouden).
De onderstaande code voegt een “Laatste afdruk” datum/tijd toe aan een document als deze nog niet bestaat:
using (Metadata metadata = new Metadata("source.pdf"))
{
if (metadata.FileFormat != FileFormat.Unknown && !metadata.GetDocumentInfo().IsEncrypted)
{
// Add a "Last Printed" date property if it's missing
int affected = metadata.AddProperties(
p => p.Tags.Contains(Tags.Time.Printed),
new PropertyValue(DateTime.Now));
Console.WriteLine("Properties added: " + affected);
metadata.Save("output.pdf");
}
}
Hier gebruiken we Tags.Time.Printed – de tag voor de “Afgedrukte” datum onder de Tijd‑categorie. De predicaat p.Tags.Contains(Tags.Time.Printed) richt zich op de bekende afgedrukte metadata‑eigenschap. Als de eigenschap ontbreekt, voegt AddProperties deze toe met de opgegeven waarde (DateTime.Now in dit geval).
De methode retourneert het aantal toegevoegde eigenschappen (aangedane), die we weergeven. Tot slot slaan we het bestand op om de nieuwe metadata te bewaren.
Metadata‑eigenschappen kopiëren op basis van tag
Soms wil je alleen specifieke soorten metadata kopiëren, zoals auteursnamen of aanmaakdata. De CopyTo‑methode stelt je in staat een predicaat te gebruiken om de te kopiëren eigenschappen te filteren.
Zo kopieer je alleen metadata gerelateerd aan auteurs of aanmaakdata:
Stappen
- Laad zowel het bron‑ als het doelbestand met de
Metadata‑klasse. - Gebruik de
CopyTo‑methode om metadata van de bron naar het doel over te brengen. - Sla het doelbestand op om de gekopieerde metadata toe te passen.
using (Metadata sourceMetadata = new Metadata("source.xlsx"))
using (Metadata targetMetadata = new Metadata("target.pptx"))
{
// Copy only Author (Creator) and Creation Date metadata properties
sourceMetadata.CopyTo(targetMetadata, p =>
p.Tags.Contains(Tags.Person.Creator) ||
p.Tags.Contains(Tags.Time.Created));
// Save the changes
targetMetadata.Save();
}
In dit voorbeeld wordt alleen metadata met tags voor Maker (auteursnaam) en Aanmaakdatum gekopieerd van het Excel‑bestand (source.xlsx) naar de PowerPoint‑presentatie (target.pptx). Deze selectieve kopieeractie geeft je precieze controle over je metadata, waardoor het eenvoudig is ervoor te zorgen dat documenten alleen de gewenste metadata bevatten.
Metadata‑eigenschappen bijwerken op basis van tag
Naast het toevoegen van nieuwe metadata moet je vaak bestaande metadata‑waarden bijwerken (bijv. een auteursnaam corrigeren of data standaardiseren). GroupDocs.Metadata biedt hiervoor de SetProperties()‑methode. Het gebruikt tags om de doel‑eigenschappen te vinden en werkt hun waarden bij. Als een doel‑eigenschap ontbreekt, kan SetProperties deze toevoegen – waardoor bijwerken en toevoegen in één stap worden gecombineerd.
Stappen
- Laad het bestand in een
Metadata‑object. - Roep
SetProperties()aan met een op tags gebaseerde filter en de nieuwePropertyValue. - Bekijk het geretourneerde aantal aangetaste eigenschappen (bijgewerkt of toegevoegd).
- Sla de wijzigingen op in het bestand indien nodig.
Bijvoorbeeld, stel we willen de aanmaakdatum en de wijzigingsdatum van een document bijwerken naar de huidige datum/tijd (dit kan worden gebruikt om tijdstempels te resetten of te standaardiseren):
using (Metadata metadata = new Metadata("source.pdf"))
{
// Update all "Created" or "Modified" date properties to now
int affected = metadata.SetProperties(
p => p.Tags.Contains(Tags.Time.Created) || p.Tags.Contains(Tags.Time.Modified),
new PropertyValue(DateTime.Now));
Console.WriteLine("Properties updated or added: " + affected);
metadata.Save("updated.pdf");
}
In de predicaat zijn Tags.Time.Created en Tags.Time.Modified respectievelijk tags voor de aanmaakdatum en de laatste wijzigingsdatum. De code zal alle metadata‑eigenschappen vinden die met een van beide tags zijn gemarkeerd en ze instellen op DateTime.Now. Als bijvoorbeeld een Aanmaakdatum‑eigenschap niet bestond in de metadata van het bestand, zal de bibliotheek deze toevoegen (omdat het een bekende standaard‑eigenschap voor dat formaat is).
Metadata verwijderen op basis van tag
Voor privacy of compliance moet je mogelijk bepaalde metadata (bijv. auteursnamen of persoonlijke informatie) uit documenten verwijderen. Tags maken het gemakkelijk om dergelijke metadata in verschillende formaten te selecteren en te verwijderen. De RemoveProperties()‑methode accepteert een predicaat zoals de anderen en zal alle overeenkomende metadata‑items verwijderen.
Stappen
- Laad het bestand in een
Metadata‑object. - Roep
RemoveProperties()aan met een op tags gebaseerd predicaat dat de te verwijderen eigenschappen identificeert. - Bekijk het aantal verwijderde eigenschappen dat de methode retourneert.
- Sla het bestand op om de wijzigingen toe te passen.
using (Metadata metadata = new Metadata("source.docx"))
{
// Remove properties that are tagged as Creator or Editor, or any string containing "John"
int removedCount = metadata.RemoveProperties(p =>
p.Tags.Contains(Tags.Person.Creator) ||
p.Tags.Contains(Tags.Person.Editor) ||
(p.Value.Type == MetadataPropertyType.String && p.Value.ToString().Contains("John"))
);
Console.WriteLine("Properties removed: " + removedCount);
metadata.Save("cleaned.docx");
}
Deze predicaat combineert meerdere criteria: elke eigenschap die getagd is als Maker of Redacteur (beide vallen onder de Persoon‑categorie) wordt verwijderd, en bovendien wordt elke tekenreeks‑metadata die “John” bevat in de waarde verwijderd. In een reëel scenario kun je dergelijke logica gebruiken om documenten te zuiveren van persoonlijke gegevens (zoals auteursnamen of klantnamen).
Conclusie
In dit artikel hebben we laten zien hoe de tag‑functie van GroupDocs.Metadata voor .NET je in staat stelt metadata toe te voegen, te kopiëren, te vinden, bij te werken en te verwijderen op een uniforme manier over vele documenttypen. Door tags zoals Inhoud, Persoon, Tijd, enz. te benutten, kun je werkstromen bouwen die bestanden organiseren met consistente metadata, de doorzoekbaarheid verbeteren (bijv. alle bestanden op auteur of datum vinden), en de documentcategorisatie of opschoning automatiseren.
Zie ook
- GroupDocs.Metadata voor .NET Documentatie
- GroupDocs.Metadata voor .NET Productoverzicht
- GroupDocs.Metadata voor .NET GitHub‑voorbeelden
- GroupDocs.Metadata voor .NET Release‑opmerkingen
Gratis proefversie aanvragen
Je kunt een gratis proefversie van GroupDocs.Metadata voor .NET downloaden van releases.groupdocs.com.
Je kunt ook een tijdelijke licentie verkrijgen om alle functies en functionaliteiten zonder beperkingen uit te proberen via hier.