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

  1. Načtěte soubor do objektu Metadata.
  2. Vyhledejte vlastnosti pomocí FindProperties() s předpokladem založeným na značce. Můžete filtrovat podle konkrétní značky nebo celé kategorie.
  3. 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

  1. Načtěte soubor do objektu Metadata.
  2. Zavolejte AddProperties() s předpokladem, který určuje, kam přidat, a poskytněte novou hodnotu vlastnosti.
  3. Zkontrolujte návratovou hodnotu, která udává, kolik vlastností bylo přidáno.
  4. 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

  1. Načtěte jak zdrojový, tak cílový soubor pomocí třídy Metadata.
  2. Použijte metodu CopyTo k přenosu metadat ze zdroje do cíle.
  3. 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

  1. Načtěte soubor do objektu Metadata.
  2. Zavolejte SetProperties() s filtrem založeným na značkách a novou hodnotou PropertyValue.
  3. Prohlédněte si vrácený počet ovlivněných vlastností (aktualizovaných nebo přidaných).
  4. 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

  1. Načtěte soubor do objektu Metadata.
  2. Zavolejte RemoveProperties() s předpokladem založeným na značkách, které určují, které vlastnosti odstranit.
  3. Zkontrolujte počet odstraněných vlastností, který metoda vrací.
  4. 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é

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.