Wstęp

Podpisy tekstowe są powszechną metodą potwierdzania autorstwa, zatwierdzenia lub weryfikacji dokumentu. W cyfrowym zarządzaniu dokumentami możliwość programowego wyszukiwania i wyodrębniania podpisów tekstowych ma kluczowe znaczenie dla walidacji dokumentów, automatyzacji przepływu pracy i weryfikacji zgodności. GroupDocs.Signature for .NET oferuje kompleksowe rozwiązanie do implementacji funkcji wyszukiwania podpisów tekstowych w aplikacjach .NET, obsługując różne formaty dokumentów i zaawansowane funkcje wyszukiwania.

W tym samouczku dowiesz się, jak wyszukiwać podpisy tekstowe w dokumentach za pomocą GroupDocs.Signature dla platformy .NET, a także poznasz szczegółowe wyjaśnienia, instrukcje krok po kroku i praktyczne przykłady kodu.

Wymagania wstępne

Zanim przejdziesz do wyszukiwania podpisów tekstowych, upewnij się, że spełnione są następujące wymagania wstępne:

  1. Biblioteka GroupDocs.Signature dla platformy .NET: Pobierz i zainstaluj bibliotekę z strona wydań.

  2. Środowisko programistyczne: Skonfiguruj odpowiednie środowisko programistyczne, takie jak Visual Studio lub dowolne kompatybilne środowisko IDE obsługujące platformę .NET.

  3. Przykładowe dokumenty: Przygotuj dokumenty testowe zawierające podpisy tekstowe w celu weryfikacji i testowania.

  4. Podstawowa wiedza z zakresu języka C#: Znajomość języka programowania C# i koncepcji .NET Framework.

Importuj przestrzenie nazw

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

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

Teraz podzielmy proces wyszukiwania podpisów tekstowych na jasne i łatwe do opanowania kroki:

Krok 1: Załaduj dokument

Najpierw zdefiniuj ścieżkę dokumentu i zainicjuj Signature obiekt:

string filePath = "sample_multiple_signatures.docx";
string fileName = Path.GetFileName(filePath);

using (Signature signature = new Signature(filePath))
{
    // Tutaj zostanie dodany kod wyszukiwania podpisu tekstowego
}

Krok 2: Skonfiguruj opcje wyszukiwania

Utwórz i skonfiguruj TextSearchOptions aby określić sposób wyszukiwania podpisów tekstowych:

// Konfiguruj opcje wyszukiwania tekstu
TextSearchOptions options = new TextSearchOptions
{
    // Szukaj na wszystkich stronach
    AllPages = true,
    
    // Opcjonalnie: określ tekst do dopasowania
    // Tekst = "Zatwierdzono",
    
    // Opcjonalnie: określ typ dopasowania
    // MatchType = TextMatchType.Contains
};

Krok 3: Wykonaj wyszukiwanie według podpisu tekstowego

Wykonaj operację wyszukiwania, korzystając ze skonfigurowanych opcji:

// Wyszukaj podpisy tekstowe
List<TextSignature> signatures = signature.Search<TextSignature>(options);

Krok 4: Przetwarzanie i wyświetlanie wyników

Przejrzyj znalezione sygnatury tekstowe i wyświetl ich szczegóły:

// Wyświetl wyniki wyszukiwania
Console.WriteLine($"\nSource document '{fileName}' contains {signatures.Count} text signature(s):");

foreach (TextSignature textSignature in signatures)
{
    Console.WriteLine($"Text signature found at page {textSignature.PageNumber} with text '{textSignature.Text}'");
    Console.WriteLine($"Location: X={textSignature.Left}, Y={textSignature.Top}, Width={textSignature.Width}, Height={textSignature.Height}");
    Console.WriteLine($"Signature type: {textSignature.SignatureImplementation}");
    Console.WriteLine();
}

Pełny przykład

Oto kompletny przykład działania, który pokazuje, jak wyszukiwać podpisy tekstowe w dokumencie:

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

namespace TextSignatureSearch
{
    class Program
    {
        static void Main(string[] args)
        {
            // Ścieżka dokumentu – zaktualizuj ją, wpisując ścieżkę do pliku
            string filePath = "sample_multiple_signatures.docx";
            string fileName = Path.GetFileName(filePath);
            
            // Zainicjuj instancję podpisu
            using (Signature signature = new Signature(filePath))
            {
                try
                {
                    // Konfiguruj opcje wyszukiwania tekstu
                    TextSearchOptions options = new TextSearchOptions
                    {
                        // Szukaj na wszystkich stronach
                        AllPages = true
                    };
                    
                    // Wyszukaj podpisy tekstowe
                    List<TextSignature> signatures = signature.Search<TextSignature>(options);
                    
                    // Wyświetl wyniki wyszukiwania
                    Console.WriteLine($"\nSource document '{fileName}' contains {signatures.Count} text signature(s):");
                    
                    foreach (TextSignature textSignature in signatures)
                    {
                        Console.WriteLine($"Text signature found at page {textSignature.PageNumber} with text '{textSignature.Text}'");
                        Console.WriteLine($"Location: X={textSignature.Left}, Y={textSignature.Top}, Width={textSignature.Width}, Height={textSignature.Height}");
                        Console.WriteLine($"Signature type: {textSignature.SignatureImplementation}");
                        Console.WriteLine();
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Error occurred: {ex.Message}");
                }
            }
            
            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
    }
}

Zaawansowane techniki wyszukiwania podpisów tekstowych

Wyszukiwanie według określonych kryteriów tekstowych

Aby uzyskać bardziej ukierunkowane wyszukiwania, możesz dostosować TextSearchOptions aby filtrować według określonej zawartości tekstowej:

// Utwórz opcje wyszukiwania z określonymi kryteriami tekstowymi
TextSearchOptions options = new TextSearchOptions
{
    // Szukaj na wszystkich stronach
    AllPages = true,
    
    // Wyszukaj konkretny tekst
    Text = "Approved",
    
    // Określ typ dopasowania (Zawiera, Dokładne, Zaczyna się od, Kończy się na)
    MatchType = TextMatchType.Contains,
    
    // Wyszukiwanie uwzględniające wielkość liter
    MatchCase = true
};

Wyszukiwanie w określonych obszarach dokumentu

Możesz ograniczyć wyszukiwanie do określonych obszarów dokumentu:

// Utwórz opcje wyszukiwania dla określonego obszaru dokumentu
TextSearchOptions options = new TextSearchOptions
{
    // Szukaj tylko na określonych stronach
    AllPages = false,
    PageNumber = 1,
    
    // Lub określ wiele stron
    PagesSetup = new PagesSetup { Pages = new List<int> { 1, 3, 5 } },
    
    // Zdefiniuj konkretny obszar, w którym chcesz przeprowadzić wyszukiwanie
    Rectangle = new Rectangle(100, 100, 400, 200)
};

Zaawansowane filtrowanie tekstu

Wdrażanie niestandardowej logiki filtrowania w przypadku bardziej złożonych wymagań wyszukiwania:

// Utwórz opcje wyszukiwania z niestandardowym przetwarzaniem
TextSearchOptions options = new TextSearchOptions
{
    AllPages = true,
    
    // Zdefiniuj przetwarzanie niestandardowe za pomocą delegata
    ProcessCompleted = (TextSignature signature) =>
    {
        // Niestandardowa logika walidacji
        bool isValid = signature.Text.Length > 5 && 
                      (signature.Text.Contains("Approved") || signature.Text.Contains("Verified"));
        
        return isValid;
    }
};

Wyszukiwanie różnych stylów tekstu

Użyj właściwości czcionki i stylu, aby filtrować podpisy tekstowe:

// Utwórz opcje wyszukiwania ukierunkowane na konkretny wygląd tekstu
TextSearchOptions options = new TextSearchOptions
{
    // Filtruj według nazwy czcionki
    FontName = "Arial",
    
    // Filtruj według zakresu rozmiaru czcionki
    MinFontSize = 10,
    MaxFontSize = 14,
    
    // Filtruj według koloru czcionki
    ForeColor = System.Drawing.Color.Blue
};

Wyodrębnianie metadanych podpisu

Ekstrakcja i przetwarzanie metadanych powiązanych z podpisami tekstowymi:

foreach (TextSignature signature in signatures)
{
    // Dostęp do metadanych podpisu
    if (signature.Metadata != null && signature.Metadata.Count > 0)
    {
        Console.WriteLine("Signature Metadata:");
        
        foreach (var item in signature.Metadata)
        {
            Console.WriteLine($"  {item.Key}: {item.Value}");
        }
    }
    
    // Sprawdź daty utworzenia i modyfikacji podpisu
    if (signature.CreatedOn.HasValue)
    {
        Console.WriteLine($"Created on: {signature.CreatedOn.Value}");
    }
    
    if (signature.ModifiedOn.HasValue)
    {
        Console.WriteLine($"Modified on: {signature.ModifiedOn.Value}");
    }
}

Wniosek

W tym kompleksowym przewodniku omówimy wyszukiwanie podpisów tekstowych w dokumentach za pomocą GroupDocs.Signature dla platformy .NET. Od podstawowych operacji wyszukiwania po zaawansowane techniki – teraz posiadasz wiedzę niezbędną do wdrożenia rozbudowanej funkcjonalności podpisów tekstowych w aplikacjach .NET.

GroupDocs.Signature to potężne i elastyczne rozwiązanie do pracy z podpisami tekstowymi, które umożliwia tworzenie zaawansowanych systemów weryfikacji dokumentów, zautomatyzowanych rozwiązań przepływu pracy i narzędzi do sprawdzania zgodności.

Najczęściej zadawane pytania

Czy mogę wyszukiwać podpisy tekstowe w dokumentach chronionych hasłem?

Tak, GroupDocs.Signature obsługuje wyszukiwanie podpisów tekstowych w dokumentach chronionych hasłem. Hasło można podać podczas inicjalizacji. Signature obiekt:

LoadOptions loadOptions = new LoadOptions { Password = "your_password" };
using (Signature signature = new Signature(filePath, loadOptions))
{
    // Wyszukaj podpisy tekstowe
}

Które formaty dokumentów są obsługiwane w przypadku wyszukiwania podpisów tekstowych?

GroupDocs.Signature obsługuje szeroką gamę formatów dokumentów, w tym pliki PDF, dokumenty pakietu Microsoft Office (Word, Excel, PowerPoint), formaty OpenOffice, obrazy i inne.

Czy mogę wyszukiwać podpisy tekstowe z zastosowaniem określonego formatowania, np. pogrubienia lub kursywy?

Tak, możesz wyszukiwać podpisy tekstowe z określonym formatowaniem, korzystając z FontBold I FontItalic nieruchomości w TextSearchOptions:

TextSearchOptions options = new TextSearchOptions
{
    FontBold = true,
    FontItalic = true
};

Jak mogę poprawić wydajność wyszukiwania w przypadku dużych dokumentów?

W przypadku dużych dokumentów wydajność wyszukiwania można zoptymalizować poprzez:

  1. Ograniczanie wyszukiwania do określonych stron zamiast przeszukiwania całego dokumentu
  2. Korzystanie z bardziej szczegółowych kryteriów wyszukiwania w celu zmniejszenia liczby wyników
  3. Określanie obszaru wyszukiwania za pomocą Rectangle nieruchomość, jeśli wiesz, gdzie zazwyczaj znajdują się podpisy
  4. Wdrażanie paginacji w aplikacji w celu przetwarzania wyników wyszukiwania w partiach

Czy mogę sprawdzić, czy podpis tekstowy został dodany elektronicznie, czy też jest częścią oryginalnej treści dokumentu?

GroupDocs.Signature potrafi rozróżniać różne typy elementów tekstowych w dokumentach. SignatureImplementation własność TextSignature Określa, czy tekst jest formalnym podpisem, czy zwykłą treścią dokumentu. Ostateczne ustalenie może jednak zależeć od sposobu, w jaki tekst został pierwotnie dodany do dokumentu.

Zobacz także