Introduction
Les signatures textuelles sont une méthode courante pour indiquer la paternité, l’approbation ou la vérification d’un document. Dans la gestion de documents numériques, la possibilité de rechercher et d’extraire des signatures textuelles par programmation est essentielle pour la validation des documents, l’automatisation des flux de travail et la vérification de la conformité. GroupDocs.Signature pour .NET offre une solution complète pour implémenter la recherche de signatures textuelles dans vos applications .NET, prenant en charge divers formats de documents et des fonctionnalités de recherche avancées.
Ce didacticiel vous guidera tout au long du processus de recherche de signatures de texte dans des documents à l’aide de GroupDocs.Signature pour .NET, en fournissant des explications détaillées, des instructions étape par étape et des exemples de code pratiques.
Prérequis
Avant de vous lancer dans la recherche de signatures de texte, assurez-vous de disposer des prérequis suivants :
Bibliothèque GroupDocs.Signature pour .NET : téléchargez et installez la bibliothèque à partir du page des communiqués.
Environnement de développement : configurez un environnement de développement approprié tel que Visual Studio ou tout autre IDE compatible avec prise en charge .NET.
Exemples de documents : Préparez des documents de test contenant des signatures de texte pour vérification et test.
Connaissances de base en C# : Familiarité avec le langage de programmation C# et les concepts du framework .NET.
Importer des espaces de noms
Commencez par importer les espaces de noms nécessaires pour accéder à la fonctionnalité GroupDocs.Signature :
using System;
using System.Collections.Generic;
using System.IO;
using GroupDocs.Signature;
using GroupDocs.Signature.Domain;
using GroupDocs.Signature.Options;
Décomposons maintenant le processus de recherche de signatures de texte en étapes claires et gérables :
Étape 1 : Charger le document
Tout d’abord, définissez le chemin du document et initialisez un Signature
objet:
string filePath = "sample_multiple_signatures.docx";
string fileName = Path.GetFileName(filePath);
using (Signature signature = new Signature(filePath))
{
// Le code de recherche de signature de texte sera ajouté ici
}
Étape 2 : Configurer les options de recherche
Créer et configurer TextSearchOptions
pour spécifier comment les signatures de texte doivent être recherchées :
// Configurer les options de recherche de texte
TextSearchOptions options = new TextSearchOptions
{
// Rechercher sur toutes les pages
AllPages = true,
// Facultatif : spécifiez le texte à faire correspondre
// Texte = "Approuvé",
// Facultatif : spécifiez le type de correspondance
// MatchType = TextMatchType.Contient
};
Étape 3 : effectuer une recherche de signature de texte
Exécutez l’opération de recherche en utilisant les options configurées :
// Rechercher des signatures de texte
List<TextSignature> signatures = signature.Search<TextSignature>(options);
Étape 4 : Traiter et afficher les résultats
Parcourez les signatures de texte trouvées et affichez leurs détails :
// Afficher les résultats de la recherche
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();
}
Exemple complet
Voici un exemple fonctionnel complet qui montre comment rechercher des signatures de texte dans un document :
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)
{
// Chemin du document - mettre à jour avec le chemin de votre fichier
string filePath = "sample_multiple_signatures.docx";
string fileName = Path.GetFileName(filePath);
// Initialiser l'instance de signature
using (Signature signature = new Signature(filePath))
{
try
{
// Configurer les options de recherche de texte
TextSearchOptions options = new TextSearchOptions
{
// Rechercher sur toutes les pages
AllPages = true
};
// Rechercher des signatures de texte
List<TextSignature> signatures = signature.Search<TextSignature>(options);
// Afficher les résultats de la recherche
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();
}
}
}
Techniques avancées de recherche de signatures de texte
Recherche avec des critères de texte spécifiques
Pour des recherches plus ciblées, vous pouvez personnaliser le TextSearchOptions
pour filtrer par contenu de texte spécifique :
// Créer des options de recherche avec des critères de texte spécifiques
TextSearchOptions options = new TextSearchOptions
{
// Rechercher sur toutes les pages
AllPages = true,
// Rechercher un texte spécifique
Text = "Approved",
// Spécifier le type de correspondance (Contient, Exact, Commence par, Se termine par)
MatchType = TextMatchType.Contains,
// Recherche sensible à la casse
MatchCase = true
};
Recherche dans des zones de documents spécifiques
Vous pouvez limiter la recherche à des zones spécifiques du document :
// Créer des options de recherche pour une zone de document spécifique
TextSearchOptions options = new TextSearchOptions
{
// Rechercher uniquement sur des pages spécifiques
AllPages = false,
PageNumber = 1,
// Ou spécifiez plusieurs pages
PagesSetup = new PagesSetup { Pages = new List<int> { 1, 3, 5 } },
// Définir une zone spécifique dans laquelle effectuer la recherche
Rectangle = new Rectangle(100, 100, 400, 200)
};
Filtrage de texte avancé
Implémentez une logique de filtrage personnalisée pour des exigences de recherche plus complexes :
// Créez des options de recherche avec un traitement personnalisé
TextSearchOptions options = new TextSearchOptions
{
AllPages = true,
// Définir un traitement personnalisé à l'aide d'un délégué
ProcessCompleted = (TextSignature signature) =>
{
// Logique de validation personnalisée
bool isValid = signature.Text.Length > 5 &&
(signature.Text.Contains("Approved") || signature.Text.Contains("Verified"));
return isValid;
}
};
Recherche de différents styles de texte
Utilisez les propriétés de police et de style pour filtrer les signatures de texte :
// Créer des options de recherche ciblant l'apparence d'un texte spécifique
TextSearchOptions options = new TextSearchOptions
{
// Filtrer par nom de police
FontName = "Arial",
// Filtrer par plage de taille de police
MinFontSize = 10,
MaxFontSize = 14,
// Filtrer par couleur de police
ForeColor = System.Drawing.Color.Blue
};
Extraction des métadonnées de signature
Extraire et traiter les métadonnées associées aux signatures de texte :
foreach (TextSignature signature in signatures)
{
// Accéder aux métadonnées de signature
if (signature.Metadata != null && signature.Metadata.Count > 0)
{
Console.WriteLine("Signature Metadata:");
foreach (var item in signature.Metadata)
{
Console.WriteLine($" {item.Key}: {item.Value}");
}
}
// Vérifier les dates de création et de modification des signatures
if (signature.CreatedOn.HasValue)
{
Console.WriteLine($"Created on: {signature.CreatedOn.Value}");
}
if (signature.ModifiedOn.HasValue)
{
Console.WriteLine($"Modified on: {signature.ModifiedOn.Value}");
}
}
Conclusion
Dans ce guide complet, nous avons exploré comment rechercher des signatures textuelles dans des documents à l’aide de GroupDocs.Signature pour .NET. Des opérations de recherche basiques aux techniques avancées, vous disposez désormais des connaissances nécessaires pour implémenter une fonctionnalité de signature textuelle robuste dans vos applications .NET.
GroupDocs.Signature fournit un cadre puissant et flexible pour travailler avec des signatures de texte, vous permettant de créer des systèmes de vérification de documents sophistiqués, des solutions de flux de travail automatisées et des outils de validation de conformité.
FAQ
Puis-je rechercher des signatures de texte dans des documents protégés par mot de passe ?
Oui, GroupDocs.Signature prend en charge la recherche de signatures textuelles dans les documents protégés par mot de passe. Vous pouvez fournir le mot de passe lors de l’initialisation du fichier. Signature
objet:
LoadOptions loadOptions = new LoadOptions { Password = "your_password" };
using (Signature signature = new Signature(filePath, loadOptions))
{
// Rechercher des signatures de texte
}
Quels formats de documents sont pris en charge pour la recherche de signatures de texte ?
GroupDocs.Signature prend en charge une large gamme de formats de documents, notamment les formats PDF, les documents Microsoft Office (Word, Excel, PowerPoint), les formats OpenOffice, les images, etc.
Puis-je rechercher des signatures de texte avec un formatage spécifique comme gras ou italique ?
Oui, vous pouvez rechercher des signatures de texte avec un formatage spécifique en utilisant le FontBold
et FontItalic
propriétés dans TextSearchOptions
:
TextSearchOptions options = new TextSearchOptions
{
FontBold = true,
FontItalic = true
};
Comment puis-je améliorer les performances de recherche pour les documents volumineux ?
Pour les documents volumineux, vous pouvez optimiser les performances de recherche en :
- Limiter la recherche à des pages spécifiques au lieu de rechercher dans l’ensemble du document
- Utiliser des critères de recherche plus spécifiques pour réduire le nombre de correspondances
- Spécification d’une zone de recherche à l’aide de la
Rectangle
propriété si vous savez où se trouvent généralement les signatures - Implémentation de la pagination dans votre application pour traiter les résultats de recherche par lots
Puis-je détecter si une signature textuelle a été ajoutée électroniquement ou fait partie du contenu du document original ?
GroupDocs.Signature permet de distinguer différents types d’éléments de texte dans les documents. SignatureImplementation
propriété de TextSignature
Indique si le texte est une signature officielle ou un contenu de document standard. Cependant, la détermination définitive peut dépendre de la manière dont le texte a été initialement ajouté au document.