Introduktion

Textsignaturer är en vanlig metod för att indikera dokumentförfattarskap, godkännande eller verifiering. Inom digital dokumenthantering är möjligheten att programmatiskt söka efter och extrahera textsignaturer avgörande för dokumentvalidering, arbetsflödesautomation och verifiering av efterlevnad. GroupDocs.Signature för .NET erbjuder en omfattande lösning för att implementera sökfunktioner för textsignaturer i dina .NET-applikationer, med stöd för olika dokumentformat och avancerade sökfunktioner.

Den här handledningen guidar dig genom processen att söka efter textsignaturer i dokument med GroupDocs.Signature för .NET, och ger detaljerade förklaringar, steg-för-steg-instruktioner och praktiska kodexempel.

Förkunskapskrav

Innan du börjar söka efter textsignaturer, se till att du har följande förutsättningar:

  1. GroupDocs.Signature för .NET-biblioteket: Ladda ner och installera biblioteket från utgivningssida.

  2. Utvecklingsmiljö: Konfigurera en lämplig utvecklingsmiljö, till exempel Visual Studio eller någon kompatibel IDE med .NET-stöd.

  3. Exempeldokument: Förbered testdokument som innehåller textsignaturer för verifiering och testning.

  4. Grundläggande C#-kunskaper: Bekantskap med programmeringsspråket C# och .NET framework-koncept.

Importera namnrymder

Börja med att importera de namnrymder som behövs för att komma åt GroupDocs.Signature-funktionen:

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

Nu ska vi dela upp processen att söka efter textsignaturer i tydliga, hanterbara steg:

Steg 1: Ladda dokumentet

Definiera först dokumentsökvägen och initiera en Signature objekt:

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

using (Signature signature = new Signature(filePath))
{
    // Sökkod för textsignatur kommer att läggas till här
}

Steg 2: Konfigurera sökalternativ

Skapa och konfigurera TextSearchOptions för att ange hur textsignaturer ska sökas:

// Konfigurera alternativ för textsökning
TextSearchOptions options = new TextSearchOptions
{
    // Sök på alla sidor
    AllPages = true,
    
    // Valfritt: ange text som ska matcha
    // Text = "Godkänd",
    
    // Valfritt: ange matchningstyp
    // MatchType = TextMatchType.Innehåller
};

Steg 3: Utför sökning efter textsignatur

Utför sökoperationen med de konfigurerade alternativen:

// Sök efter textsignaturer
List<TextSignature> signatures = signature.Search<TextSignature>(options);

Steg 4: Bearbeta och visa resultat

Gå igenom de funna textsignaturerna och visa deras detaljer:

// Visa sökresultat
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();
}

Komplett exempel

Här är ett komplett exempel som visar hur man söker efter textsignaturer i ett dokument:

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)
        {
            // Dokumentsökväg – uppdatera med din filsökväg
            string filePath = "sample_multiple_signatures.docx";
            string fileName = Path.GetFileName(filePath);
            
            // Initiera signaturinstansen
            using (Signature signature = new Signature(filePath))
            {
                try
                {
                    // Konfigurera alternativ för textsökning
                    TextSearchOptions options = new TextSearchOptions
                    {
                        // Sök på alla sidor
                        AllPages = true
                    };
                    
                    // Sök efter textsignaturer
                    List<TextSignature> signatures = signature.Search<TextSignature>(options);
                    
                    // Visa sökresultat
                    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();
        }
    }
}

Avancerade söktekniker för textsignaturer

Söka med specifika textkriterier

För mer riktade sökningar kan du anpassa TextSearchOptions för att filtrera efter specifikt textinnehåll:

// Skapa sökalternativ med specifika textkriterier
TextSearchOptions options = new TextSearchOptions
{
    // Sök på alla sidor
    AllPages = true,
    
    // Sök efter specifik text
    Text = "Approved",
    
    // Ange matchningstyp (Innehåller, Exakt, BörjarMed, SlutarMed)
    MatchType = TextMatchType.Contains,
    
    // Skiftlägeskänslig sökning
    MatchCase = true
};

Söka i specifika dokumentområden

Du kan begränsa sökningen till specifika områden i dokumentet:

// Skapa sökalternativ för ett specifikt dokumentområde
TextSearchOptions options = new TextSearchOptions
{
    // Sök endast på specifika sidor
    AllPages = false,
    PageNumber = 1,
    
    // Eller ange flera sidor
    PagesSetup = new PagesSetup { Pages = new List<int> { 1, 3, 5 } },
    
    // Definiera ett specifikt område att söka inom
    Rectangle = new Rectangle(100, 100, 400, 200)
};

Avancerad textfiltrering

Implementera anpassad filtreringslogik för mer komplexa sökkrav:

// Skapa sökalternativ med anpassad bearbetning
TextSearchOptions options = new TextSearchOptions
{
    AllPages = true,
    
    // Definiera anpassad bearbetning med hjälp av en delegat
    ProcessCompleted = (TextSignature signature) =>
    {
        // Anpassad valideringslogik
        bool isValid = signature.Text.Length > 5 && 
                      (signature.Text.Contains("Approved") || signature.Text.Contains("Verified"));
        
        return isValid;
    }
};

Söka efter olika textstilar

Använd teckensnitts- och stilegenskaper för att filtrera textsignaturer:

// Skapa sökalternativ som är inriktade på specifik textutseende
TextSearchOptions options = new TextSearchOptions
{
    // Filtrera efter teckensnittsnamn
    FontName = "Arial",
    
    // Filtrera efter teckenstorleksintervall
    MinFontSize = 10,
    MaxFontSize = 14,
    
    // Filtrera efter teckenfärg
    ForeColor = System.Drawing.Color.Blue
};

Extrahera signaturmetadata

Extrahera och bearbeta metadata associerade med textsignaturer:

foreach (TextSignature signature in signatures)
{
    // Åtkomst till signaturmetadata
    if (signature.Metadata != null && signature.Metadata.Count > 0)
    {
        Console.WriteLine("Signature Metadata:");
        
        foreach (var item in signature.Metadata)
        {
            Console.WriteLine($"  {item.Key}: {item.Value}");
        }
    }
    
    // Kontrollera datum för skapande och ändring av signaturer
    if (signature.CreatedOn.HasValue)
    {
        Console.WriteLine($"Created on: {signature.CreatedOn.Value}");
    }
    
    if (signature.ModifiedOn.HasValue)
    {
        Console.WriteLine($"Modified on: {signature.ModifiedOn.Value}");
    }
}

Slutsats

I den här omfattande guiden har vi utforskat hur man söker efter textsignaturer i dokument med GroupDocs.Signature för .NET. Från grundläggande sökåtgärder till avancerade tekniker har du nu kunskapen för att implementera robusta textsignaturfunktioner i dina .NET-applikationer.

GroupDocs.Signature tillhandahåller ett kraftfullt och flexibelt ramverk för att arbeta med textsignaturer, vilket gör att du kan bygga sofistikerade dokumentverifieringssystem, automatiserade arbetsflödeslösningar och verktyg för efterlevnadsvalidering.

Vanliga frågor

Kan jag söka efter textsignaturer i lösenordsskyddade dokument?

Ja, GroupDocs.Signature stöder sökning efter textsignaturer i lösenordsskyddade dokument. Du kan ange lösenordet när du initialiserar Signature objekt:

LoadOptions loadOptions = new LoadOptions { Password = "your_password" };
using (Signature signature = new Signature(filePath, loadOptions))
{
    // Sök efter textsignaturer
}

Vilka dokumentformat stöds för sökning efter textsignaturer?

GroupDocs.Signature stöder ett brett utbud av dokumentformat, inklusive PDF, Microsoft Office-dokument (Word, Excel, PowerPoint), OpenOffice-format, bilder och mer.

Kan jag söka efter textsignaturer med specifik formatering som fetstil eller kursiv stil?

Ja, du kan söka efter textsignaturer med specifik formatering genom att använda FontBold och FontItalic fastigheter i TextSearchOptions:

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

Hur kan jag förbättra sökprestandan för stora dokument?

För stora dokument kan du optimera sökprestandan genom att:

  1. Begränsa sökningen till specifika sidor istället för att söka i hela dokumentet
  2. Använda mer specifika sökkriterier för att minska antalet träffar
  3. Ange ett sökområde med hjälp av Rectangle egendom om du vet var signaturer vanligtvis finns
  4. Implementera paginering i din applikation för att bearbeta sökresultat i omgångar

Kan jag upptäcka om en textsignatur har lagts till elektroniskt eller om den är en del av det ursprungliga dokumentets innehåll?

GroupDocs.Signature kan skilja mellan olika typer av textelement i dokument. SignatureImplementation egendom av TextSignature anger om texten är en formell signatur eller vanligt dokumentinnehåll. Den definitiva bedömningen kan dock bero på hur texten ursprungligen lades till i dokumentet.

Se även