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:
GroupDocs.Signature för .NET-biblioteket: Ladda ner och installera biblioteket från utgivningssida.
Utvecklingsmiljö: Konfigurera en lämplig utvecklingsmiljö, till exempel Visual Studio eller någon kompatibel IDE med .NET-stöd.
Exempeldokument: Förbered testdokument som innehåller textsignaturer för verifiering och testning.
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:
- Begränsa sökningen till specifika sidor istället för att söka i hela dokumentet
- Använda mer specifika sökkriterier för att minska antalet träffar
- Ange ett sökområde med hjälp av
Rectangle
egendom om du vet var signaturer vanligtvis finns - 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.