Jak ustawić i edytować metadane pliku PDF w języku C#

Jak ustawić i edytować metadane plików PDF w języku C# za pomocą IronPDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF umożliwia programistom programowe ustawianie i edytowanie metadanych PDF w aplikacjach C#, w tym standardowych właściwości, takich jak tytuł, autor i słowa kluczowe, a także niestandardowych pól metadanych w celu lepszej organizacji dokumentów i ułatwienia wyszukiwania. Niezależnie od tego, czy tworzysz aplikacje biznesowe wymagające śledzenia dokumentów, wdrażasz funkcje zapewniające zgodność z przepisami, czy organizujesz bibliotekę plików PDF, IronPDF zapewnia kompleksowe możliwości manipulacji metadanymi. Ta funkcjonalność bezproblemowo integruje się z konwersją HTML do PDF w IronPDF i innymi funkcjami przetwarzania dokumentów.

Szybki start: Natychmiastowa modyfikacja metadanych plików PDF

Zarządzaj metadanymi plików PDF za pomocą IronPDF za pomocą zaledwie kilku wierszy kodu. Załaduj plik PDF, zaktualizuj metadane, takie jak tytuł, autor lub słowa kluczowe, i zapisz zmiany. Ten przewodnik ułatwia konfigurowanie i edytowanie metadanych, zapewniając, że dokumenty są dobrze zorganizowane i łatwe do wyszukiwania. Rozszerz możliwości swojego pliku PDF, stosując to proste podejście.

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf
  2. Skopiuj i uruchom ten fragment kodu.

    IronPdf.PdfDocument.FromFile("example.pdf")
        .MetaData = new IronPdf.PdfMetaData { 
            Title="MyDoc", Author="Me", Subject="Demo", Keywords="ironpdf,metadata", Creator="MyApp", Producer="IronPDF", CreationDate=DateTime.Today, ModifiedDate=DateTime.Now 
        }
        .SaveAs("updated_example.pdf");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer


Jak ustawić i edytować metadane pliku PDF?

Korzystając z IronPDF, ustawianie i edycja ogólnych pól metadanych w plikach PDF jest bardzo prosta. Aby zmodyfikować dostępne pola metadanych, należy uzyskać dostęp do właściwości MetaData. Ta funkcjonalność jest szczególnie przydatna podczas pracy z formularzami PDF, podpisami cyfrowymi lub przy wdrażaniu systemów zarządzania dokumentami.

:path=/static-assets/pdf/content-code-examples/how-to/metadata-set-edit.cs
using IronPdf;
using System;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>");

// Access the MetaData class and set the pre-defined metadata properties.
pdf.MetaData.Author = "Iron Software";
pdf.MetaData.CreationDate = DateTime.Today;
pdf.MetaData.Creator = "IronPDF";
pdf.MetaData.Keywords = "ironsoftware,ironpdf,pdf";
pdf.MetaData.ModifiedDate = DateTime.Now;
pdf.MetaData.Producer = "IronPDF";
pdf.MetaData.Subject = "Metadata Tutorial";
pdf.MetaData.Title = "IronPDF Metadata Tutorial";

pdf.SaveAs("pdf-with-metadata.pdf");
Imports IronPdf
Imports System

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>")

' Access the MetaData class and set the pre-defined metadata properties.
pdf.MetaData.Author = "Iron Software"
pdf.MetaData.CreationDate = DateTime.Today
pdf.MetaData.Creator = "IronPDF"
pdf.MetaData.Keywords = "ironsoftware,ironpdf,pdf"
pdf.MetaData.ModifiedDate = DateTime.Now
pdf.MetaData.Producer = "IronPDF"
pdf.MetaData.Subject = "Metadata Tutorial"
pdf.MetaData.Title = "IronPDF Metadata Tutorial"

pdf.SaveAs("pdf-with-metadata.pdf")
$vbLabelText   $csharpLabel

Jak mogę wyświetlić metadane w wyjściowym pliku PDF?

Aby wyświetlić metadane dokumentu, kliknij na trzy pionowe kropki i przejdź do właściwości dokumentu. Te metadane są kluczowe dla organizacji dokumentów, szczególnie przy wdrażaniu dokumentów zgodnych z PDF/A dla długoterminowej archiwizacji.

Jak ustawić i pobrać słownik metadanych?

Metoda GetMetaDataDictionary pobiera istniejący słownik metadanych i uzyskuje dostęp do informacji o metadanych przechowywanych w dokumencie. Metoda SetMetaDataDictionary zapewnia skuteczny sposób na przepisanie słownika metadanych. Jeśli klucz nie jest obecny w ogólnych polach metadanych, staje się własnością niestandardową metadanych. To podejście jest szczególnie przydatne podczas scalania wielu plików PDF i konsolidowania metadanych z różnych źródeł.

:path=/static-assets/pdf/content-code-examples/how-to/metadata-set-and-get-metadata-dictionary.cs
using IronPdf;
using System.Collections.Generic;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>");

Dictionary<string, string> newMetadata = new Dictionary<string, string>();
newMetadata.Add("Title", "How to article");
newMetadata.Add("Author", "IronPDF");

// Set metadata dictionary
pdf.MetaData.SetMetaDataDictionary(newMetadata);

// Retreive metadata dictionary
Dictionary<string, string> metadataProperties = pdf.MetaData.GetMetaDataDictionary();
Imports IronPdf
Imports System.Collections.Generic

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>")

Dim newMetadata As New Dictionary(Of String, String)()
newMetadata.Add("Title", "How to article")
newMetadata.Add("Author", "IronPDF")

' Set metadata dictionary
pdf.MetaData.SetMetaDataDictionary(newMetadata)

' Retrieve metadata dictionary
Dim metadataProperties As Dictionary(Of String, String) = pdf.MetaData.GetMetaDataDictionary()
$vbLabelText   $csharpLabel

Co się dzieje, gdy używam słownika metadanych?

Aby wyświetlić metadane dokumentu, kliknij na trzy pionowe kropki i przejdź do właściwości dokumentu. Podejście ze słownikiem metadanych jest szczególnie pomocne przy wdrażaniu przebiegów pracy z przetwarzaniem wsadowym lub standaryzacji metadanych w wielu dokumentach. W zaawansowanych scenariuszach zarządzania dokumentami warto rozważyć połączenie tego z technikami kompresji PDF w celu optymalizacji przechowywania plików.

Praca z metadanymi w różnych kontekstach

Podczas opracowywania aplikacji korporacyjnych, metadane odgrywają kluczową rolę w klasyfikacji i wyszukiwaniu dokumentów. Oto przykład wdrażania kompleksowego systemu zarządzania metadanymi:

using IronPdf;
using System;
using System.Collections.Generic;

public class PDFMetadataManager
{
    public static void ProcessBatchMetadata(List<string> pdfPaths)
    {
        foreach (string path in pdfPaths)
        {
            var pdf = PdfDocument.FromFile(path);

            // Standardize metadata across all documents
            pdf.MetaData.Producer = "Company Document System v2.0";
            pdf.MetaData.Creator = "IronPDF";

            // Add processing timestamp
            pdf.MetaData.ModifiedDate = DateTime.Now;

            // Add document classification
            var metadata = pdf.MetaData.GetMetaDataDictionary();
            metadata["DocumentType"] = "Internal Report";
            metadata["Department"] = "Finance";
            metadata["SecurityLevel"] = "Confidential";

            pdf.MetaData.SetMetaDataDictionary(metadata);
            pdf.SaveAs(path.Replace(".pdf", "_processed.pdf"));
        }
    }
}
using IronPdf;
using System;
using System.Collections.Generic;

public class PDFMetadataManager
{
    public static void ProcessBatchMetadata(List<string> pdfPaths)
    {
        foreach (string path in pdfPaths)
        {
            var pdf = PdfDocument.FromFile(path);

            // Standardize metadata across all documents
            pdf.MetaData.Producer = "Company Document System v2.0";
            pdf.MetaData.Creator = "IronPDF";

            // Add processing timestamp
            pdf.MetaData.ModifiedDate = DateTime.Now;

            // Add document classification
            var metadata = pdf.MetaData.GetMetaDataDictionary();
            metadata["DocumentType"] = "Internal Report";
            metadata["Department"] = "Finance";
            metadata["SecurityLevel"] = "Confidential";

            pdf.MetaData.SetMetaDataDictionary(metadata);
            pdf.SaveAs(path.Replace(".pdf", "_processed.pdf"));
        }
    }
}
Imports IronPdf
Imports System
Imports System.Collections.Generic

Public Class PDFMetadataManager
    Public Shared Sub ProcessBatchMetadata(pdfPaths As List(Of String))
        For Each path As String In pdfPaths
            Dim pdf = PdfDocument.FromFile(path)

            ' Standardize metadata across all documents
            pdf.MetaData.Producer = "Company Document System v2.0"
            pdf.MetaData.Creator = "IronPDF"

            ' Add processing timestamp
            pdf.MetaData.ModifiedDate = DateTime.Now

            ' Add document classification
            Dim metadata = pdf.MetaData.GetMetaDataDictionary()
            metadata("DocumentType") = "Internal Report"
            metadata("Department") = "Finance"
            metadata("SecurityLevel") = "Confidential"

            pdf.MetaData.SetMetaDataDictionary(metadata)
            pdf.SaveAs(path.Replace(".pdf", "_processed.pdf"))
        Next
    End Sub
End Class
$vbLabelText   $csharpLabel

Jak dodawać, edytować i usuwać niestandardowe metadane?

Oprócz standardowych metadanych dokumentu PDF, można uwzględnić niestandardowe właściwości metadanych. Te niestandardowe właściwości często nie są widoczne w oprogramowaniu do przeglądania PDF, ponieważ zazwyczaj wyświetlają tylko ogólne metadane i mogą nie pobierać wszystkich istniejących właściwości metadanych. Niestandardowe metadane są szczególnie wartościowe przy wdrażaniu funkcji zabezpieczeń PDF lub tworzeniu specjalistycznych przepływów pracy z dokumentami.

Jak dodawać i edytować właściwości niestandardowych metadanych?

Aby dodać niestandardowe metadane, uzyskaj dostęp do właściwości CustomProperties i wywołaj metodę Add. Edycja niestandardowych metadanych wymaga przekazania klucza do właściwości CustomProperties i ponownego przypisania jego wartości. Ta funkcjonalność dobrze współdziała ze scenariuszami edycji formularzy PDF, gdzie może być konieczne śledzenie metadanych przesyłania formularzy.

:path=/static-assets/pdf/content-code-examples/how-to/metadata-custom-properties.cs
using IronPdf;
using IronPdf.MetaData;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>");

PdfCustomMetadataProperties customProperties = pdf.MetaData.CustomProperties;

// Add custom property
customProperties.Add("foo", "bar"); // Key: foo, Value: bar

// Edit custom property
customProperties["foo"] = "baz";
Imports IronPdf
Imports IronPdf.MetaData

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>")

Dim customProperties As PdfCustomMetadataProperties = pdf.MetaData.CustomProperties

' Add custom property
customProperties.Add("foo", "bar") ' Key: foo, Value: bar

' Edit custom property
customProperties("foo") = "baz"
$vbLabelText   $csharpLabel

Zaawansowane scenariusze niestandardowych metadanych

Niestandardowe metadane stają się szczególnie potężne podczas budowy systemów zarządzania dokumentami. Oto wszechstronny przykład demonstrujący zastosowanie w rzeczywistości:

using IronPdf;
using System;
using System.Linq;

public class DocumentTrackingSystem
{
    public static void AddTrackingMetadata(PdfDocument pdf, string userId, string projectId)
    {
        var customProps = pdf.MetaData.CustomProperties;

        // Add tracking information
        customProps.Add("ProcessedBy", userId);
        customProps.Add("ProcessedDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
        customProps.Add("ProjectID", projectId);
        customProps.Add("DocumentVersion", "1.0");
        customProps.Add("ReviewStatus", "Pending");

        // Add workflow metadata
        customProps.Add("WorkflowStep", "Initial Review");
        customProps.Add("NextReviewer", "John.Doe@company.com");
        customProps.Add("DueDate", DateTime.Now.AddDays(7).ToString("yyyy-MM-dd"));

        // Add compliance metadata
        customProps.Add("ComplianceChecked", "false");
        customProps.Add("RetentionPeriod", "7 years");
        customProps.Add("Classification", "Internal Use Only");
    }

    public static void UpdateReviewStatus(PdfDocument pdf, string status, string reviewer)
    {
        var customProps = pdf.MetaData.CustomProperties;

        // Update existing properties
        customProps["ReviewStatus"] = status;
        customProps["LastReviewedBy"] = reviewer;
        customProps["LastReviewDate"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

        // Increment version if approved
        if (status == "Approved" && customProps.ContainsKey("DocumentVersion"))
        {
            var currentVersion = customProps["DocumentVersion"];
            var versionParts = currentVersion.Split('.');
            var minorVersion = int.Parse(versionParts[1]) + 1;
            customProps["DocumentVersion"] = $"{versionParts[0]}.{minorVersion}";
        }
    }
}
using IronPdf;
using System;
using System.Linq;

public class DocumentTrackingSystem
{
    public static void AddTrackingMetadata(PdfDocument pdf, string userId, string projectId)
    {
        var customProps = pdf.MetaData.CustomProperties;

        // Add tracking information
        customProps.Add("ProcessedBy", userId);
        customProps.Add("ProcessedDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
        customProps.Add("ProjectID", projectId);
        customProps.Add("DocumentVersion", "1.0");
        customProps.Add("ReviewStatus", "Pending");

        // Add workflow metadata
        customProps.Add("WorkflowStep", "Initial Review");
        customProps.Add("NextReviewer", "John.Doe@company.com");
        customProps.Add("DueDate", DateTime.Now.AddDays(7).ToString("yyyy-MM-dd"));

        // Add compliance metadata
        customProps.Add("ComplianceChecked", "false");
        customProps.Add("RetentionPeriod", "7 years");
        customProps.Add("Classification", "Internal Use Only");
    }

    public static void UpdateReviewStatus(PdfDocument pdf, string status, string reviewer)
    {
        var customProps = pdf.MetaData.CustomProperties;

        // Update existing properties
        customProps["ReviewStatus"] = status;
        customProps["LastReviewedBy"] = reviewer;
        customProps["LastReviewDate"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

        // Increment version if approved
        if (status == "Approved" && customProps.ContainsKey("DocumentVersion"))
        {
            var currentVersion = customProps["DocumentVersion"];
            var versionParts = currentVersion.Split('.');
            var minorVersion = int.Parse(versionParts[1]) + 1;
            customProps["DocumentVersion"] = $"{versionParts[0]}.{minorVersion}";
        }
    }
}
Imports IronPdf
Imports System
Imports System.Linq

Public Class DocumentTrackingSystem
    Public Shared Sub AddTrackingMetadata(pdf As PdfDocument, userId As String, projectId As String)
        Dim customProps = pdf.MetaData.CustomProperties

        ' Add tracking information
        customProps.Add("ProcessedBy", userId)
        customProps.Add("ProcessedDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
        customProps.Add("ProjectID", projectId)
        customProps.Add("DocumentVersion", "1.0")
        customProps.Add("ReviewStatus", "Pending")

        ' Add workflow metadata
        customProps.Add("WorkflowStep", "Initial Review")
        customProps.Add("NextReviewer", "John.Doe@company.com")
        customProps.Add("DueDate", DateTime.Now.AddDays(7).ToString("yyyy-MM-dd"))

        ' Add compliance metadata
        customProps.Add("ComplianceChecked", "false")
        customProps.Add("RetentionPeriod", "7 years")
        customProps.Add("Classification", "Internal Use Only")
    End Sub

    Public Shared Sub UpdateReviewStatus(pdf As PdfDocument, status As String, reviewer As String)
        Dim customProps = pdf.MetaData.CustomProperties

        ' Update existing properties
        customProps("ReviewStatus") = status
        customProps("LastReviewedBy") = reviewer
        customProps("LastReviewDate") = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")

        ' Increment version if approved
        If status = "Approved" AndAlso customProps.ContainsKey("DocumentVersion") Then
            Dim currentVersion = customProps("DocumentVersion")
            Dim versionParts = currentVersion.Split("."c)
            Dim minorVersion = Integer.Parse(versionParts(1)) + 1
            customProps("DocumentVersion") = $"{versionParts(0)}.{minorVersion}"
        End If
    End Sub
End Class
$vbLabelText   $csharpLabel

Jak usunąć właściwości niestandardowych metadanych?

Usuń niestandardowe metadane z dokumentu PDF na dwa sposoby. Użyj metody RemoveMetaDataKey dostępnej przez właściwość Metadata, lub użyj metody Remove z właściwości CustomProperties. Jest to szczególnie przydatne przy oczyszczaniu plików PDF do dystrybucji publicznej lub przygotowywaniu dokumentów do archiwizacji.

:path=/static-assets/pdf/content-code-examples/how-to/metadata-remove-custom-properties.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>");

// Add custom property to be deleted
pdf.MetaData.CustomProperties.Add("willBeDeleted", "value");

// Remove custom property _ two ways
pdf.MetaData.RemoveMetaDataKey("willBeDeleted");
pdf.MetaData.CustomProperties.Remove("willBeDeleted");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>")

' Add custom property to be deleted
pdf.MetaData.CustomProperties.Add("willBeDeleted", "value")

' Remove custom property _ two ways
pdf.MetaData.RemoveMetaDataKey("willBeDeleted")
pdf.MetaData.CustomProperties.Remove("willBeDeleted")
$vbLabelText   $csharpLabel

Wprowadzenie

Metadane PDF służą jako podstawa systemów zarządzania dokumentami, umożliwiając efektywną organizację, wyszukiwanie i śledzenie zgodności. Możliwości metadanych IronPDF wykraczają poza proste ustawianie właściwości — oferują wszechstronne ramy do budowy zaawansowanych przepływów pracy z dokumentami. Niezależnie od tego, czy wdrażane są dokumenty zgodne z PDF/UA dla dostępności, czy tworzone są niestandardowe systemy śledzenia, zarządzanie metadanymi jest kluczowe.

Najlepsze praktyki zarządzania metadanymi

  1. Spójność: Ustanowienie konwencji nazewnictwa dla niestandardowych kluczy metadanych
  2. Dokumentacja: Prowadzenie rejestru niestandardowych pól metadanych używanych w systemie
  3. Walidacja: Wdrażanie reguł walidacji przed ustawieniem wartości metadanych
  4. Bezpieczeństwo: Unikaj przechowywania wrażliwych informacji w metadanych, chyba że plik PDF jest zaszyfrowany
  5. Zgodność: Upewnij się, że metadane spełniają wymagania regulacyjne dla danej branży

Wykorzystując możliwości metadanych IronPDF wraz z funkcjami takimi jak podpisy cyfrowe i szyfrowanie PDF, można tworzyć solidne rozwiązania do zarządzania dokumentami spełniające wymagania korporacyjne.

Gotowy, aby sprawdzić, co jeszcze możesz zrobić? Zapoznaj się z naszą stroną z samouczkami tutaj: Podpisywanie i zabezpieczanie plików PDF

Często Zadawane Pytania

How do I set PDF metadata properties like title and author in C#?

With IronPDF, you can easily set PDF metadata by accessing the MetaData property of your PDF document. Simply assign a new PdfMetaData object with properties like Title, Author, Subject, Keywords, Creator, and dates. IronPDF makes it straightforward to update these standard metadata fields programmatically.

Can I add custom metadata fields to PDFs beyond the standard properties?

Yes, IronPDF supports custom metadata fields through the metadata dictionary. Using the SetMetaDataDictionary method, you can add any key-value pairs beyond the standard fields. If a key doesn't match generic metadata fields, IronPDF automatically treats it as custom metadata.

How can I retrieve existing metadata from a PDF document?

IronPDF provides the GetMetaDataDictionary method to retrieve all existing metadata from a PDF document. This method returns a dictionary containing both standard and custom metadata fields, allowing you to access and process metadata information stored within the document.

What standard metadata fields are available for editing?

IronPDF supports all standard PDF metadata fields including Title, Author, Subject, Keywords, Creator, Producer, CreationDate, and ModifiedDate. These fields can be set through the PdfMetaData object and are essential for document organization and searchability.

How do I view the metadata after setting it in the PDF?

After using IronPDF to set metadata, you can view it in any PDF reader by accessing the document properties. In most PDF viewers, click on the three vertical dots or go to File menu and select Document Properties to see all metadata fields including those set programmatically.

Can metadata manipulation be combined with other PDF operations?

Absolutely! IronPDF allows you to combine metadata editing with other features like HTML to PDF conversion, PDF forms creation, and digital signatures. This makes it ideal for building comprehensive document management systems or compliance features.

Jordi Bardia
Inżynier oprogramowania
Jordi jest najbardziej biegły w Pythonie, C# i C++. Kiedy nie wykorzystuje swoich umiejętności w Iron Software, programuje gry. Dzieląc odpowiedzialność za testowanie produktów, rozwój produktów i badania, Jordi wnosi ogromną wartość do ciągłej poprawy produktów. Różnorodne doświadczenia ...
Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 18,135,201 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.