C# rechercher et remplacer du texte dans un PDF

L’option Rechercher et remplacer permet de remplacer un morceau de texte particulier dans un document en une seule fois. De cette façon, vous n’avez pas à localiser et à mettre à jour manuellement chaque occurrence du texte dans l’ensemble du document. Cet article va même plus loin et explique comment automatiser la fonction de recherche et de remplacement de texte dans les documents PDF. En particulier, vous apprendrez à rechercher et à remplacer du texte dans un PDF en C# .NET. Nous montrerons également comment remplacer du texte dans une page particulière ou une région de page à l’aide de C#..

API C# .NET pour rechercher et remplacer du texte dans un PDF - Téléchargement gratuit

Aspose.PDF for .NET est une bibliothèque de classes C# qui fournit des fonctionnalités de manipulation PDF de base et avancées pour les applications .NET. L’API vous permet également de rechercher et de remplacer de manière transparente du texte dans des fichiers PDF de différentes manières. Vous pouvez soit télécharger la DLL de l’API, soit l’installer à l’aide de NuGet.

PM> Install-Package Aspose.PDF

Rechercher et remplacer du texte dans un PDF à l’aide de C#

Voici les étapes pour rechercher et remplacer du texte dans un document PDF.

L’exemple de code suivant montre comment rechercher et remplacer du texte dans un PDF à l’aide de C#.

// Ouvrir le document
Document pdfDocument = new Document("Document.pdf");

// Créer un objet TextAbsorber pour trouver toutes les instances de la phrase de recherche d'entrée
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// Accepter l'absorbeur pour toutes les pages
pdfDocument.Pages.Accept(textFragmentAbsorber);

// Obtenir les fragments de texte extraits
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Boucle à travers les fragments
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Mettre à jour le texte et d'autres propriétés
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}
            
// Enregistrez le document PDF résultant.
pdfDocument.Save("updated-document.pdf");

C# Remplacer du texte dans une page PDF particulière

Les étapes suivantes permettent de rechercher et de remplacer du texte sur une page particulière d’un document PDF.

  • Utilisez la classe Document pour charger le document PDF en utilisant son chemin.
  • Créez une instance de la classe TextFragmentAbsorber et fournissez la phrase de recherche à son constructeur.
  • Acceptez l’absorbeur de texte pour la page souhaitée en utilisant [Document.Pages1.Accept(TextFragmentAbsorber)]12.
  • Parcourez la collection TextFragmentAbsorber.TextFragments trouvée et remplacez le texte dans chaque fragment.
  • Enregistrez le document PDF mis à jour à l’aide de la méthode Document.Save(String).

L’exemple de code suivant montre comment rechercher et remplacer du texte dans une page particulière du PDF à l’aide de C#.

// Ouvrir le document
Document pdfDocument = new Document("Document.pdf");

// Créer un objet TextAbsorber pour trouver toutes les instances de la phrase de recherche d'entrée
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// Acceptez l'absorbeur pour
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// Obtenir les fragments de texte extraits
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Boucle à travers les fragments
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Mettre à jour le texte et d'autres propriétés
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// Enregistrez le document PDF résultant.
pdfDocument.Save("updated-document.pdf");

Remplacer le texte dans la région de la page PDF en C#

Vous pouvez également rechercher et remplacer du texte dans une zone particulière de la page d’un document PDF. Les étapes suivantes montrent comment définir une région particulière, puis remplacer le texte qu’elle contient.

L’exemple de code suivant montre comment rechercher et remplacer du texte dans une zone de page particulière d’un PDF à l’aide de C#.

// charger le fichier PDF
Document pdf = new Document("Document.pdf");

// instancier l'objet TextFragment Absorber
TextFragmentAbsorber TextFragmentAbsorberAddress = new TextFragmentAbsorber();

// rechercher du texte dans les limites de la page
TextFragmentAbsorberAddress.TextSearchOptions.LimitToPageBounds = true;

// spécifier la région de la page pour les options TextSearch
TextFragmentAbsorberAddress.TextSearchOptions.Rectangle = new Rectangle(100, 100, 200, 200);

// rechercher le texte de la première page du fichier PDF
pdf.Pages[1].Accept(TextFragmentAbsorberAddress);

// itérer à travers TextFragment individuel
foreach (TextFragment tf in TextFragmentAbsorberAddress.TextFragments)
{
    // mettre à jour le texte en caractères vides
    tf.Text = "";
}

// enregistrer le fichier PDF mis à jour après le remplacement du texte
pdf.Save("output.pdf");

C# Remplacer le texte d’un PDF par une expression régulière (Regex)

Vous pouvez également utiliser des expressions régulières pour rechercher et remplacer les occurrences de texte correspondant à un modèle particulier. Pour cela, il vous suffit de fournir une expression régulière au lieu de la phrase de recherche simple et d’utiliser TextSearchOptions. Voici les étapes à suivre.

L’exemple de code suivant montre comment rechercher et remplacer du texte dans un PDF à l’aide d’une expression régulière à l’aide de C#.

// Ouvrir le document
Document pdfDocument = new Document("Document.pdf");

// Créez un objet TextAbsorber pour trouver toutes les phrases correspondant à l'expression régulière
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Like 1999-2000

// Définir l'option de recherche de texte pour spécifier l'utilisation des expressions régulières
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;

// Accepter l'absorbeur pour une seule page
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// Obtenir les fragments de texte extraits
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Boucle à travers les fragments
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Mettre à jour le texte et d'autres propriétés
    textFragment.Text = "New Phrase";
    // Défini sur une instance d'un objet.
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// Enregistrer le PDF
pdfDocument.Save("output.pdf");

Conclusion

L’automatisation PDF est largement adoptée de nos jours afin de manipuler des documents PDF à partir d’applications Web ou de bureau. Cet article a couvert une fonctionnalité d’automatisation PDF utile pour rechercher et remplacer du texte dans un PDF en C#. Le guide étape par étape et les exemples de code ont montré comment rechercher et remplacer du texte dans un PDF entier, une page particulière dans un PDF ou une zone de page. Vous pouvez explorer des fonctionnalités plus avancées à l’aide de la documentation de l’API.

Voir également