Zavedení

Textové podpisy jsou běžnou metodou pro označení autorství, schválení nebo ověření dokumentů. V oblasti správy digitálních dokumentů je schopnost programově vyhledávat a extrahovat textové podpisy klíčová pro ověřování dokumentů, automatizaci pracovních postupů a ověřování souladu s předpisy. GroupDocs.Signature for .NET nabízí komplexní řešení pro implementaci funkce vyhledávání textových podpisů ve vašich aplikacích .NET s podporou různých formátů dokumentů a pokročilých vyhledávacích funkcí.

Tento tutoriál vás provede procesem vyhledávání textových podpisů v dokumentech pomocí GroupDocs.Signature pro .NET a poskytne vám podrobná vysvětlení, podrobné pokyny a praktické příklady kódu.

Předpoklady

Než se pustíte do vyhledávání textových podpisů, ujistěte se, že máte následující předpoklady:

  1. Knihovna GroupDocs.Signature pro .NET: Stáhněte a nainstalujte knihovnu z stránka s vydáními.

  2. Vývojové prostředí: Nastavte vhodné vývojové prostředí, jako je Visual Studio nebo jakékoli kompatibilní IDE s podporou .NET.

  3. Ukázkové dokumenty: Připravte testovací dokumenty obsahující textové podpisy pro ověření a testování.

  4. Základní znalost C#: Znalost programovacího jazyka C# a konceptů .NET frameworku.

Importovat jmenné prostory

Začněte importem potřebných jmenných prostorů pro přístup k funkcím GroupDocs.Signature:

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

Nyní si rozdělme proces vyhledávání textových podpisů do jasných a zvládnutelných kroků:

Krok 1: Vložení dokumentu

Nejprve definujte cestu k dokumentu a inicializujte Signature objekt:

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

using (Signature signature = new Signature(filePath))
{
    // Zde bude přidán vyhledávací kód pro textový podpis
}

Krok 2: Konfigurace možností vyhledávání

Vytvořit a nakonfigurovat TextSearchOptions Chcete-li určit, jak se mají vyhledávat textové podpisy:

// Konfigurace možností textového vyhledávání
TextSearchOptions options = new TextSearchOptions
{
    // Hledat na všech stránkách
    AllPages = true,
    
    // Volitelné: zadejte text, který se má shodovat
    // Text = „Schváleno“,
    
    // Volitelné: zadejte typ shody
    // TypShody = TypShodyTextu.Obsahuje
};

Krok 3: Proveďte vyhledávání textového podpisu

Proveďte vyhledávací operaci s použitím nakonfigurovaných možností:

// Hledání textových podpisů
List<TextSignature> signatures = signature.Search<TextSignature>(options);

Krok 4: Zpracování a zobrazení výsledků

Projděte nalezené textové podpisy a zobrazte jejich podrobnosti:

// Zobrazit výsledky vyhledávání
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();
}

Kompletní příklad

Zde je kompletní pracovní příklad, který ukazuje, jak vyhledávat textové podpisy v dokumentu:

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)
        {
            // Cesta k dokumentu – aktualizujte cestou k souboru
            string filePath = "sample_multiple_signatures.docx";
            string fileName = Path.GetFileName(filePath);
            
            // Inicializovat instanci podpisu
            using (Signature signature = new Signature(filePath))
            {
                try
                {
                    // Konfigurace možností textového vyhledávání
                    TextSearchOptions options = new TextSearchOptions
                    {
                        // Hledat na všech stránkách
                        AllPages = true
                    };
                    
                    // Hledání textových podpisů
                    List<TextSignature> signatures = signature.Search<TextSignature>(options);
                    
                    // Zobrazit výsledky vyhledávání
                    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();
        }
    }
}

Pokročilé techniky vyhledávání textových podpisů

Vyhledávání podle specifických textových kritérií

Pro cílenější vyhledávání si můžete přizpůsobit TextSearchOptions filtrovat podle konkrétního textového obsahu:

// Vytvořte možnosti vyhledávání s konkrétními textovými kritérii
TextSearchOptions options = new TextSearchOptions
{
    // Hledat na všech stránkách
    AllPages = true,
    
    // Hledat konkrétní text
    Text = "Approved",
    
    // Zadejte typ shody (Obsahuje, Přesná, Začíná na, Končí na)
    MatchType = TextMatchType.Contains,
    
    // Vyhledávání s rozlišením velkých a malých písmen
    MatchCase = true
};

Vyhledávání v určitých oblastech dokumentu

Vyhledávání můžete omezit na konkrétní oblasti dokumentu:

// Vytvoření možností vyhledávání pro konkrétní oblast dokumentu
TextSearchOptions options = new TextSearchOptions
{
    // Hledat pouze na konkrétních stránkách
    AllPages = false,
    PageNumber = 1,
    
    // Nebo zadejte více stránek
    PagesSetup = new PagesSetup { Pages = new List<int> { 1, 3, 5 } },
    
    // Definujte konkrétní oblast, ve které chcete vyhledávat
    Rectangle = new Rectangle(100, 100, 400, 200)
};

Pokročilé filtrování textu

Implementujte vlastní logiku filtrování pro složitější požadavky na vyhledávání:

// Vytvořte možnosti vyhledávání s vlastním zpracováním
TextSearchOptions options = new TextSearchOptions
{
    AllPages = true,
    
    // Definování vlastního zpracování pomocí delegáta
    ProcessCompleted = (TextSignature signature) =>
    {
        // Vlastní ověřovací logika
        bool isValid = signature.Text.Length > 5 && 
                      (signature.Text.Contains("Approved") || signature.Text.Contains("Verified"));
        
        return isValid;
    }
};

Hledání různých textových stylů

Použití vlastností písma a stylu k filtrování textových podpisů:

// Vytvořte možnosti vyhledávání zaměřené na konkrétní vzhled textu
TextSearchOptions options = new TextSearchOptions
{
    // Filtrovat podle názvu písma
    FontName = "Arial",
    
    // Filtrovat podle rozsahu velikostí písma
    MinFontSize = 10,
    MaxFontSize = 14,
    
    // Filtrovat podle barvy písma
    ForeColor = System.Drawing.Color.Blue
};

Extrakce metadat podpisu

Extrakce a zpracování metadat spojených s textovými podpisy:

foreach (TextSignature signature in signatures)
{
    // Metadata podpisu pro přístup
    if (signature.Metadata != null && signature.Metadata.Count > 0)
    {
        Console.WriteLine("Signature Metadata:");
        
        foreach (var item in signature.Metadata)
        {
            Console.WriteLine($"  {item.Key}: {item.Value}");
        }
    }
    
    // Zkontrolujte data vytvoření a úpravy podpisu
    if (signature.CreatedOn.HasValue)
    {
        Console.WriteLine($"Created on: {signature.CreatedOn.Value}");
    }
    
    if (signature.ModifiedOn.HasValue)
    {
        Console.WriteLine($"Modified on: {signature.ModifiedOn.Value}");
    }
}

Závěr

V této komplexní příručce jsme prozkoumali, jak vyhledávat textové podpisy v dokumentech pomocí nástroje GroupDocs.Signature pro .NET. Od základních vyhledávacích operací až po pokročilé techniky – nyní máte znalosti pro implementaci robustní funkce textových podpisů ve vašich .NET aplikacích.

GroupDocs.Signature poskytuje výkonný a flexibilní rámec pro práci s textovými podpisy, který vám umožňuje vytvářet sofistikované systémy ověřování dokumentů, automatizovaná řešení pracovních postupů a nástroje pro ověřování souladu s předpisy.

Často kladené otázky

Mohu vyhledávat textové podpisy v dokumentech chráněných heslem?

Ano, GroupDocs.Signature podporuje vyhledávání textových podpisů v dokumentech chráněných heslem. Heslo můžete zadat při inicializaci. Signature objekt:

LoadOptions loadOptions = new LoadOptions { Password = "your_password" };
using (Signature signature = new Signature(filePath, loadOptions))
{
    // Hledání textových podpisů
}

Které formáty dokumentů jsou podporovány pro vyhledávání textových podpisů?

GroupDocs.Signature podporuje širokou škálu formátů dokumentů včetně PDF, dokumentů Microsoft Office (Word, Excel, PowerPoint), formátů OpenOffice, obrázků a dalších.

Mohu vyhledávat textové podpisy se specifickým formátováním, jako je tučné písmo nebo kurzíva?

Ano, textové podpisy se specifickým formátováním můžete vyhledávat pomocí FontBold a FontItalic nemovitosti v TextSearchOptions:

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

Jak mohu zlepšit výkon vyhledávání u velkých dokumentů?

U velkých dokumentů můžete optimalizovat výkon vyhledávání pomocí:

  1. Omezení vyhledávání na konkrétní stránky namísto prohledávání celého dokumentu
  2. Použití konkrétnějších vyhledávacích kritérií pro snížení počtu shod
  3. Určení oblasti vyhledávání pomocí Rectangle vlastnost, pokud víte, kde se obvykle nacházejí podpisy
  4. Implementace stránkování ve vaší aplikaci pro dávkové zpracování výsledků vyhledávání

Mohu zjistit, zda byl textový podpis přidán elektronicky, nebo zda je součástí původního obsahu dokumentu?

GroupDocs.Signature dokáže rozlišovat mezi různými typy textových prvků v dokumentech. SignatureImplementation majetek TextSignature označuje, zda se jedná o formální podpis nebo běžný obsah dokumentu. Definitivní určení však může záviset na tom, jak byl text do dokumentu původně přidán.

Viz také