Obsah
Přehled
Správa metadat dokumentů napříč různými formáty souborů může být obtížná. GroupDocs.Metadata pro .NET to zjednodušuje tím, že poskytuje systém značek, který sjednocuje běžné vlastnosti metadat (např. Název, Autor, Datum vytvoření) pod značky. V tomto návodu se podíváme, jak pomocí značek najít, přidat, zkopírovat, aktualizovat a odstranit metadata pomocí GroupDocs.Metadata pro .NET.
GroupDocs.Metadata používá značky k označení důležitých vlastností metadat v souboru, bez ohledu na formát dokumentu nebo standard metadat. Každá značka patří do kategorie, která seskupuje související značky pro snadnější odhalování.
Například:
Značky obsahu: Popisují obsah souboru (např. jazyk, žánr, předmět, hodnocení)
Značky osob: Identifikují osoby nebo organizace související s obsahem (např. tvůrce dokumentu, editor, společnost)
Značky času: Reprezentují časové značky v životním cyklu souboru (např. datum vytvoření, čas poslední úpravy, datum tisku)
(Další kategorie zahrnují Právní, Původ, Nástroj atd., každá seskupuje relevantní značky.)
Pomocí těchto značek můžete vyhledávat a manipulovat s metadaty jednotným způsobem napříč Word dokumenty, PDF, obrázky a dalšími typy souborů.
Například značka „Autor“ nebo „Tvůrce“ v kategorii Osoby bude odpovídat vlastnosti autora ve Word dokumentu či PDF, aniž byste museli znát název pole specifického formátu. To činí značky mimořádně užitečnými pro organizaci souborů a automatizaci úkolů správy metadat.
Příklady použití
V této sekci představíme různé příklady, které ukazují praktické využití.
Vyhledání vlastností metadat podle značky
Jedním z častých použití je nalezení položek metadat v souboru pomocí jejich značky. To je zvláště užitečné pro zlepšení vyhledatelnosti – můžete získat konkrétní informace z libovolného dokumentu, aniž byste se starali o jeho formát.
Kroky
- Načtěte soubor do objektu
Metadata. - Vyhledejte vlastnosti pomocí
FindProperties()s předpokladem založeným na značce. Můžete filtrovat podle konkrétní značky nebo celé kategorie. - Projděte výsledky a zkontrolujte nebo použijte metadata.
// 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}");
}
}
Přidání vlastností metadat podle značky
Někdy může soubor postrádat určitá metadata (např. žádné „Datum posledního tisku“). Pomocí GroupDocs.Metadata můžete přidat vlastnost metadat zadáním značky a API ji vloží do odpovídajícího balíčku metadat, pokud to formát podporuje.
Kroky
- Načtěte soubor do objektu
Metadata. - Zavolejte
AddProperties()s předpokladem, který určuje, kam přidat, a poskytněte novou hodnotu vlastnosti. - Zkontrolujte návratovou hodnotu, která udává, kolik vlastností bylo přidáno.
- Uložte dokument (pokud chcete změny zachovat).
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");
}
}
Zde používáme Tags.Time.Printed – značku pro datum „Tisk“ v kategorii Čas. Předpoklad p.Tags.Contains(Tags.Time.Printed) cílí na známou vlastnost tisku. Pokud vlastnost chybí, AddProperties ji přidá s hodnotou, kterou jsme poskytli (v tomto případě DateTime.Now). Metoda vrací počet přidaných vlastností, který vypíšeme, a nakonec soubor uložíme.
Kopírování vlastností metadat podle značky
Někdy chcete zkopírovat jen určité typy metadat, například jména autorů nebo data vytvoření. Metoda CopyTo vám umožní použít předpoklad k filtrování vlastností, které mají být zkopírovány. Zde je ukázka, jak zkopírovat jen metadata související s autory nebo daty vytvoření:
Kroky
- Načtěte jak zdrojový, tak cílový soubor pomocí třídy
Metadata. - Použijte metodu
CopyTok přenosu metadat ze zdroje do cíle. - Uložte cílový soubor, aby se aplikovala zkopírovaná metadata.
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();
}
V tomto příkladu budou z Excel souboru (source.xlsx) do PowerPoint prezentace (target.pptx) zkopírovány jen metadata označená značkami pro Tvůrce (jméno autora) a Datum vytvoření. Tento selektivní kopírovací přístup vám dává přesnou kontrolu nad tím, jaká metadata se přenášejí.
Aktualizace vlastností metadat podle značky
Kromě přidání nových metadat často potřebujete aktualizovat existující hodnoty (např. opravit jméno autora nebo standardizovat data). GroupDocs.Metadata poskytuje metodu SetProperties(), která používá značky k nalezení cílových vlastností a aktualizuje jejich hodnoty. Pokud cílová vlastnost chybí, SetProperties ji může přidat – čímž kombinuje aktualizaci a přidání v jednom kroku.
Kroky
- Načtěte soubor do objektu
Metadata. - Zavolejte
SetProperties()s filtrem založeným na značkách a novou hodnotouPropertyValue. - Prohlédněte si vrácený počet ovlivněných vlastností (aktualizovaných nebo přidaných).
- V případě potřeby změny uložte do souboru.
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");
}
V předpokladu jsou Tags.Time.Created a Tags.Time.Modified značky pro datum vytvoření a poslední úpravy. Kód najde všechny vlastnosti metadat označené některou z těchto značek a nastaví je na aktuální datum/čas. Pokud například v souboru neexistuje vlastnost Created, knihovna ji přidá, protože jde o známou standardní vlastnost daného formátu.
Odstranění metadat podle značky
Z důvodů ochrany soukromí nebo souladu s předpisy může být nutné odstranit určitá metadata (např. jména autorů či osobní údaje) z dokumentů. Značky usnadňují cílené odstranění takových metadat napříč různými formáty. Metoda RemoveProperties() přijímá předpoklad podobně jako předchozí metody a vymaže všechny odpovídající položky.
Kroky
- Načtěte soubor do objektu
Metadata. - Zavolejte
RemoveProperties()s předpokladem založeným na značkách, které určují, které vlastnosti odstranit. - Zkontrolujte počet odstraněných vlastností, který metoda vrací.
- Uložte soubor, aby se změny aplikovaly.
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");
}
Tento předpoklad kombinuje více kritérií: jakákoli vlastnost označená jako Tvůrce nebo Editor (obě spadají do kategorie Osoby) bude odstraněna a navíc budou odstraněny všechny řetězcové metadatové položky, které ve své hodnotě obsahují „John“. V reálném scénáři můžete takovou logiku použít k vyčištění dokumentů od osobních údajů (např. jmen autorů či klientů).
Závěr
V tomto článku jsme ukázali, jak funkce značek v GroupDocs.Metadata pro .NET umožňuje přidávat, kopírovat, vyhledávat, aktualizovat a odstraňovat metadata jednotným způsobem napříč mnoha typy dokumentů. Využíváním značek jako Obsah, Osoba, Čas atd. můžete vytvářet workflow, které organizuje soubory pomocí konzistentních metadat, zlepšuje vyhledatelnost (např. najít všechny soubory podle autora nebo data) a automatizuje kategorizaci či čištění dokumentů.
Viz také
- GroupDocs.Metadata pro .NET Documentation
- GroupDocs.Metadata pro .NET Product Overview
- GroupDocs.Metadata pro .NET GitHub Examples
- GroupDocs.Metadata pro .NET Release Notes
Získat bezplatnou zkušební verzi
Bezplatnou zkušební verzi GroupDocs.Metadata pro .NET si můžete stáhnout z releases.groupdocs.com. Dočasnou licenci, která vám umožní vyzkoušet všechny funkce a vlastnosti bez omezení, můžete získat zde.