Wstęp

Dokumenty PDF (Portable Document Format) są szeroko stosowane w wielu branżach ze względu na swoją spójność i niezależność od platformy. Zapewnienie autentyczności i identyfikowalności tych dokumentów ma kluczowe znaczenie w wielu środowiskach zawodowych. Jednym ze skutecznych sposobów osiągnięcia tego celu jest osadzanie metadanych w samych plikach PDF.

W tym kompleksowym samouczku pokażemy, jak podpisywać dokumenty PDF metadanymi za pomocą GroupDocs.Signature dla platformy .NET. Podpisy metadanych pozwalają osadzać w dokumencie dodatkowe informacje, takie jak dane autora, znaczniki czasu utworzenia, identyfikatory dokumentów i wartości niestandardowe, bez widocznej zmiany wyglądu dokumentu.

Wymagania wstępne

Zanim zaczniemy, upewnij się, że masz przygotowane następujące rzeczy:

  1. GroupDocs.Signature dla .NET - Pobierz i zainstaluj bibliotekę
  2. Środowisko programistyczne — Visual Studio lub inne środowisko IDE zgodne z platformą .NET
  3. Dokument PDF – przykładowy plik PDF do podpisania
  4. Podstawowa wiedza z zakresu języka C# – znajomość języka programowania C#

Importuj przestrzenie nazw

Zacznij od zaimportowania niezbędnych przestrzeni nazw, aby uzyskać dostęp do funkcjonalności GroupDocs.Signature:

using System;
using System.IO;
using GroupDocs.Signature;
using GroupDocs.Signature.Domain;
using GroupDocs.Signature.Options;

Krok 1: Skonfiguruj ścieżki plików

Najpierw zdefiniuj ścieżkę do dokumentu PDF i wskaż miejsce, w którym chcesz zapisać podpisany plik wyjściowy:

// Podaj ścieżkę do swojego dokumentu PDF
string filePath = "sample.pdf";

// Zdefiniuj katalog wyjściowy i ścieżkę pliku
string outputDirectory = "Your Document Directory";
string outputFilePath = Path.Combine(outputDirectory, "SignPdfWithMetadata", "SignedWithMetadata.pdf");

// Upewnij się, że katalog wyjściowy istnieje
Directory.CreateDirectory(Path.GetDirectoryName(outputFilePath));

Krok 2: Zainicjuj obiekt podpisu

Utwórz instancję klasy Signature przy użyciu źródłowego dokumentu PDF:

using (Signature signature = new Signature(filePath))
{
    // Kod do podpisu będzie tutaj
}

Krok 3: Zdefiniuj opcje metadanych

Utwórz i skonfiguruj opcje metadanych, dodając różne typy podpisów metadanych:

// Utwórz obiekt opcji metadanych
MetadataSignOptions options = new MetadataSignOptions();

// Dodawaj różne typy metadanych za pomocą płynnego interfejsu
options
    .Add(new PdfMetadataSignature("Author", "Mr.Sherlock Holmes")) // Wartość ciągu
    .Add(new PdfMetadataSignature("CreatedOn", DateTime.Now))       // Wartość daty i godziny
    .Add(new PdfMetadataSignature("DocumentId", 123456))            // Wartość całkowita
    .Add(new PdfMetadataSignature("SignatureId", 123.456D))         // Podwójna wartość
    .Add(new PdfMetadataSignature("Amount", 123.456M))              // Wartość dziesiętna
    .Add(new PdfMetadataSignature("Total", 123.456F));              // Wartość zmiennoprzecinkowa

Krok 4: Podpisz plik PDF metadanymi

Zastosuj podpisy metadanych do dokumentu PDF i zapisz wynik:

// Podpisz dokument i zapisz w ścieżce wyjściowej
SignResult result = signature.Sign(outputFilePath, options);

// Wyświetl komunikat o powodzeniu
Console.WriteLine($"\nSource document signed successfully with {result.Succeeded.Count} metadata signature(s).");
Console.WriteLine($"Signed document saved at: {outputFilePath}");

Pełny przykład

Oto kompletny przykład kodu łączący wszystkie kroki:

using System;
using System.IO;
using GroupDocs.Signature;
using GroupDocs.Signature.Domain;
using GroupDocs.Signature.Options;

namespace SignPdfWithMetadataExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Określ ścieżki plików
            string filePath = "sample.pdf";
            string outputFilePath = Path.Combine("Your Document Directory", "SignPdfWithMetadata", "SignedWithMetadata.pdf");
            
            // Upewnij się, że katalog wyjściowy istnieje
            Directory.CreateDirectory(Path.GetDirectoryName(outputFilePath));

            // Podpisz plik PDF metadanymi
            using (Signature signature = new Signature(filePath))
            {
                // Utwórz obiekt opcji metadanych
                MetadataSignOptions options = new MetadataSignOptions();
                
                // Dodaj różne typy podpisów metadanych
                options
                    .Add(new PdfMetadataSignature("Author", "Mr.Sherlock Holmes")) // Wartość ciągu
                    .Add(new PdfMetadataSignature("CreatedOn", DateTime.Now))       // Wartość daty i godziny
                    .Add(new PdfMetadataSignature("DocumentId", 123456))            // Wartość całkowita
                    .Add(new PdfMetadataSignature("SignatureId", 123.456D))         // Podwójna wartość
                    .Add(new PdfMetadataSignature("Amount", 123.456M))              // Wartość dziesiętna
                    .Add(new PdfMetadataSignature("Total", 123.456F));              // Wartość zmiennoprzecinkowa
                
                // Podpisz dokument i zapisz do pliku
                SignResult result = signature.Sign(outputFilePath, options);
                
                // Wyświetl wyniki
                Console.WriteLine($"\nSource document signed successfully with {result.Succeeded.Count} signature(s).");
                Console.WriteLine($"File saved at {outputFilePath}.");
            }
        }
    }
}

Zaawansowane operacje na metadanych PDF

Dodawanie niestandardowych metadanych z obsługą przestrzeni nazw

Dokumenty PDF obsługują niestandardowe metadane z obsługą przestrzeni nazw XML:

// Dodaj niestandardowe metadane z przestrzenią nazw
options.Add(new PdfMetadataSignature("CustomProperty", "Custom Value")
{
    NamespaceUri = "http://twoja-przestrzeń-nazw.com/schema"
});

Wyszukiwanie metadanych w podpisanych plikach PDF

Po podpisaniu możesz chcieć zweryfikować lub wyodrębnić metadane:

// Utwórz opcje wyszukiwania metadanych
MetadataSearchOptions searchOptions = new MetadataSearchOptions();

// Wyszukaj podpisy metadanych
SearchResult searchResult = signature.Search(searchOptions);

// Wyświetl znalezione podpisy
Console.WriteLine($"Found {searchResult.Signatures.Count} metadata signatures:");
foreach (var foundSignature in searchResult.Signatures)
{
    MetadataSignature metadataSignature = foundSignature as MetadataSignature;
    if (metadataSignature != null)
    {
        Console.WriteLine($"- {metadataSignature.Name}: {metadataSignature.Value} ({metadataSignature.Value.GetType().Name})");
    }
}

Praca ze standardowymi metadanymi PDF

Dokumenty PDF zawierają standardowe pola metadanych, do których można uzyskać dostęp i które można modyfikować:

// Ustaw standardowe pola metadanych PDF
options
    .Add(new PdfMetadataSignature("Title", "Important Contract"))
    .Add(new PdfMetadataSignature("Subject", "Legal Agreement"))
    .Add(new PdfMetadataSignature("Keywords", "contract, agreement, legal, binding"))
    .Add(new PdfMetadataSignature("Creator", "Legal Department"))
    .Add(new PdfMetadataSignature("Producer", "GroupDocs.Signature"));

Wniosek

W tym samouczku dowiesz się, jak podpisywać dokumenty PDF metadanymi za pomocą GroupDocs.Signature dla platformy .NET. Osadzanie metadanych w plikach PDF to doskonały sposób na zwiększenie autentyczności dokumentów, dodanie kluczowych informacji i usprawnienie procesów zarządzania dokumentami.

Podpisy metadanych w plikach PDF są szczególnie cenne w środowiskach biznesowych, w których identyfikowalność dokumentów i weryfikacja ich autentyczności są kluczowe. Osadzone metadane mogą zawierać informacje o pochodzeniu dokumentu, autorze, czasie utworzenia, wersji oraz właściwościach niestandardowych istotnych dla przepływu pracy w organizacji.

Dzięki wdrożeniu podpisów metadanych za pomocą GroupDocs.Signature możesz mieć pewność, że Twoje dokumenty PDF zachowają integralność i będą dostarczać weryfikowalnych informacji przez cały cykl ich życia.

Najczęściej zadawane pytania

Czy mogę modyfikować istniejące metadane w dokumencie PDF?

Tak, możesz modyfikować istniejące metadane w dokumentach PDF. Po zastosowaniu nowych podpisów metadanych o takich samych nazwach jak istniejące, wartości zostaną odpowiednio zaktualizowane.

Czy podpisy metadanych w dokumentach PDF są widoczne dla użytkownika końcowego?

Podpisy metadanych nie są widoczne w samej treści dokumentu. Można je jednak przeglądać w panelu właściwości dokumentu w czytnikach PDF, takich jak Adobe Acrobat, lub za pomocą specjalistycznych narzędzi do przeglądania metadanych.

Czy mogę szyfrować lub chronić metadane w plikach PDF?

GroupDocs.Signature oferuje opcje zabezpieczania dokumentów, w tym szyfrowanie. Możesz zastosować szyfrowanie na poziomie dokumentu, aby chronić cały plik PDF, łącznie z jego metadanymi.

Czy istnieje ograniczenie ilości metadanych, jakie mogę dodać do pliku PDF?

Chociaż specyfikacja PDF nie nakłada ścisłych ograniczeń, dodanie nadmiernej ilości metadanych może zwiększyć rozmiar pliku. Zaleca się, aby w metadanych znajdowały się tylko istotne i niezbędne informacje.

Czy mogę programowo sprawdzić, czy plik PDF został zmodyfikowany po dodaniu metadanych?

Tak, GroupDocs.Signature zapewnia funkcje weryfikacji, które mogą pomóc wykryć, czy dokument został zmodyfikowany po podpisaniu, w tym czy wprowadzono zmiany w metadanych.

Gdzie mogę znaleźć więcej materiałów i wsparcia?