Comment mettre en évidence un PDF et le convertir en HTML avec GroupDocs

Mettre en évidence du texte dans un PDF et transformer le résultat en une page HTML stylisée est une exigence courante pour la révision juridique, l’e‑learning et la publication numérique. Dans ce tutoriel, vous découvrirez how to highlight pdf fichiers avec GroupDocs.Redaction pour .NET puis générerez une sortie HTML mise en évidence qui peut être intégrée aux portails web ou aux systèmes de gestion de l’apprentissage. Le guide parcourt la configuration de l’environnement, l’initialisation des chemins, la génération de pages HTML et la gestion des URL des ressources — le tout avec des extraits C# prêts à l’emploi.

Réponses rapides

  • Quelle bibliothèque gère la mise en évidence ? GroupDocs.Redaction for .NET.
  • Quelles versions de .NET sont prises en charge ? .NET Framework 4.6+, .NET Core 3.1+, .NET 5/6/7.
  • Ai‑je besoin d’une licence pour la production ? Oui – une licence commerciale supprime les limites d’essai.
  • Puis‑je traiter de gros PDFs (des centaines de pages) ? Oui, l’API diffuse les pages et utilise moins de 200 Mo de RAM pour un fichier de 500 pages.
  • Le rendu HTML est‑il interactif ? Le HTML généré est statique mais entièrement stylisé ; vous pouvez ajouter du JavaScript pour l’interactivité.

Qu’est‑ce que la mise en évidence du texte PDF ?

La mise en évidence du texte PDF est le marquage visuel qui dessine une superposition colorée derrière les caractères sélectionnés, les faisant ressortir lors de la visualisation du document. GroupDocs.Redaction ajoute cette superposition directement au flux de contenu du PDF, préservant la mise en page originale tout en exposant les mises en évidence dans le HTML exporté.

Pourquoi utiliser GroupDocs.Redaction pour .NET ?

GroupDocs.Redaction prend en charge plus de 70 formats d’entrée et de sortie, traite les PDFs jusqu’à 500 pages sans charger le fichier complet en mémoire, et offre une API à passage unique qui à la fois supprime et met en évidence. Ces capacités quantifiées en font un choix fiable pour les pipelines de documents à l’échelle de l’entreprise.

Prérequis

  • Environnement de développement : Visual Studio 2022 (ou version ultérieure) avec un projet .NET Core 3.1 / .NET 6.
  • Package NuGet : GroupDocs.Redaction (dernière version stable).
  • Connaissances de base : syntaxe C#, chemins du système de fichiers et bases du HTML.

Comment configurer GroupDocs.Redaction pour .NET ?

Pour installer la bibliothèque, choisissez l’une des trois méthodes prises en charge. La commande .NET CLI ajoute le package à votre fichier de projet, la console du gestionnaire de packages l’intègre via NuGet, et l’interface utilisateur offre un moyen graphique de parcourir et d’installer. Les trois approches aboutissent à la même assembly GroupDocs.Redaction référencée, vous permettant de commencer à coder immédiatement.

Utilisation du .NET CLI :

dotnet add package GroupDocs.Redaction

Utilisation de la console du gestionnaire de packages :

Install-Package GroupDocs.Redaction

Utilisation de l’interface du gestionnaire de packages NuGet : Recherchez « GroupDocs.Redaction » et cliquez sur Install.

Après l’installation, ajoutez une directive using en haut de votre fichier C# :

using GroupDocs.Redaction;

Comment fonctionne la classe Feature_InitializeIndexedFileInfo ?

Feature_InitializeIndexedFileInfo est un assistant qui crée et stocke les chemins nécessaires au cache du visualiseur et au PDF source.

La classe prépare les emplacements du système de fichiers dont le visualiseur et le générateur HTML dépendent. Elle crée un dossier de cache dédié pour les fichiers temporaires, dérive un nom de dossier à partir du PDF source, et stocke le chemin absolu du document original. Ces propriétés sont exposées en tant que membres en lecture seule pour le traitement en aval.

// ```csharp
using GroupDocs.Redaction;

// Initialize the Redactor
Redactor redactor = new Redactor("your-file-path.pdf");

Comment générer le chemin du fichier de page HTML ?

Feature_GenerateHtmlPageFilePath génère des noms de fichiers déterministes pour chaque page HTML en fonction des numéros de page.

La classe construit un nom de fichier qui identifie de manière unique chaque page rendue, en utilisant un simple modèle p{pageNumber}.html. Elle combine ensuite ce nom avec le chemin du dossier de cache créé précédemment pour produire un emplacement complet du système de fichiers où le HTML peut être enregistré. Cette nomination déterministe évite les collisions lors du traitement de PDFs multi‑pages.

// ```csharp
using System.IO;

namespace GroupDocs.Search.Examples.CSharp.HighlightInHtml
{
    internal class Feature_InitializeIndexedFileInfo
    {
        private readonly string _viewerCacheFolderPath;
        private readonly string _filePath;
        private readonly string _fileFolderName;
        private readonly string _fileCacheFolderPath;

        public Feature_InitializeIndexedFileInfo(string viewerCacheFolderPath, string filePath)
        {
            // Store the provided cache folder path.
            _viewerCacheFolderPath = viewerCacheFolderPath;
            
            // Store the file path.
            _filePath = filePath;
            
            // Extract and modify the file name to create a folder name.
            var fileName = Path.GetFileName(_filePath);
            _fileFolderName = fileName.Replace(".", "_");
            
            // Combine paths for cache directory.
            _fileCacheFolderPath = Path.Combine(viewerCacheFolderPath, _fileFolderName);
        }

        public string ViewerCacheFolderPath => _viewerCacheFolderPath;
        
        public string FilePath => _filePath;
        
        public string FileFolderName => _fileFolderName;
        
        public string FileCacheFolderPath => _fileCacheFolderPath;
    }
}

Comment créer les chemins de fichiers de ressources de page HTML et les URL ?

Feature_GenerateHtmlPageResourceFilePathAndUrl crée à la fois le chemin de fichier physique et l’URL web correspondante pour les ressources de page.

Les ressources telles que les images, les polices ou les fichiers CSS nécessitent à la fois un emplacement sur le disque et une URL qu’un navigateur peut demander. Cette classe accepte un numéro de page et un nom de ressource, puis renvoie un tuple contenant le chemin absolu du système de fichiers à l’intérieur du dossier de cache et une URL virtuelle pouvant être mappée par un serveur web. Cette approche maintient la cohérence des références de ressources entre les pages générées.

// ```csharp
using System.IO;

namespace GroupDocs.Search.Examples.CSharp.HighlightInHtml
{
    internal class Feature_GenerateHtmlPageFilePath
    {
        private readonly string _fileCacheFolderPath;

        public Feature_GenerateHtmlPageFilePath(string fileCacheFolderPath)
        {
            // Initialize with cache folder path.
            _fileCacheFolderPath = fileCacheFolderPath;
        }

        public string GetHtmlPageFilePath(int pageNumber)
        {
            // Create a page-specific HTML file name.
            string pageFileName = $"p{pageNumber}.html";
            
            // Combine paths for the full file location.
            string pageFilePath = Path.Combine(_fileCacheFolderPath, pageFileName);
            return pageFilePath;
        }
    }
}

Applications pratiques

  1. Révision de documents juridiques : mettre en évidence les clauses, exporter en HTML, et laisser les avocats commenter dans un navigateur.
  2. Contenu e‑learning : convertir les PDFs de cours annotés en pages web interactives avec des mises en évidence recherchables.
  3. Publication numérique : produire des versions prêtes pour le web de magazines où les extraits mis en évidence attirent l’attention du lecteur.

Ces scénarios bénéficient du streaming haute performance que fournit GroupDocs.Redaction, vous permettant de gérer des milliers de documents par jour.

Problèmes courants et solutions

ProblèmeCauseSolution
La mise en évidence n’apparaît pas dans le HTMLClasse CSS manquante dans la page généréeAssurez‑vous que le highlight.css du visualiseur est référencé ou intégrez le bloc de style manuellement.
Erreur de dépassement de mémoire sur de gros PDFsUtilisation de Document.Load sans streamingUtilisez RedactorOptions avec EnableStreaming = true.
Les URL des ressources renvoient 404Configuration incorrecte de l’URL de baseDéfinissez RedactionViewerOptions.BaseUrl sur la racine de votre dossier de fichiers statiques.

Questions fréquemment posées

Q : Puis‑je mettre en évidence plusieurs sections dans un même PDF en une fois ?
A : Oui. Passez une collection d’objets RedactionRegion à Redactor.Apply et chaque région sera mise en évidence dans la même opération.

Q : L’API prend‑elle en charge la mise en évidence basée sur des mots‑clés ?
A : Oui. Utilisez Redactor.Search pour trouver toutes les occurrences d’un terme, puis appliquez une redaction de mise en évidence aux régions résultantes.

Q : Le HTML généré est‑il interactif (par ex., cliquer pour naviguer) ?
A : La sortie par défaut est statique, mais vous pouvez injecter du JavaScript après la génération pour ajouter de la navigation, des infobulles ou des gestionnaires de clic personnalisés.

Q : Comment puis‑je changer la couleur de la mise en évidence ?
A : Modifiez la classe CSS .redaction-highlight dans le HTML exporté ou définissez la propriété HighlightColor sur RedactionOptions avant d’appliquer.

Q : Cela fonctionnera‑t‑il pour des PDFs de plus de 1 Go ?
A : Oui, à condition d’activer le streaming et d’allouer suffisamment d’espace disque temporaire ; l’API ne charge jamais le document complet en RAM.

Conclusion

Vous disposez maintenant d’un flux de travail complet et prêt pour la production pour how to highlight pdf fichiers et les transformer en pages HTML mises en évidence en utilisant GroupDocs.Redaction pour .NET. En initialisant les informations de fichier indexées, en générant des chemins HTML déterministes et en gérant les URL des ressources, vous pouvez intégrer cette solution dans tout système de gestion de documents basé sur .NET, portail de révision juridique ou plateforme e‑learning.


Dernière mise à jour : 2026-08-20
Testé avec : GroupDocs.Redaction 23.12 for .NET
Auteur : GroupDocs

using System.IO;

namespace GroupDocs.Search.Examples.CSharp.HighlightInHtml
{
    internal class Feature_GenerateHtmlPageResourceFilePathAndUrl
    {
        private readonly string _fileCacheFolderPath;

        public Feature_GenerateHtmlPageResourceFilePathAndUrl(string fileCacheFolderPath)
        {
            // Initialize with the cache folder path.
            _fileCacheFolderPath = fileCacheFolderPath;
        }

        public string GetHtmlPageResourceFilePath(int pageNumber, string resourceFileName)
        {
            // Construct a unique name for resources.
            string resFileName = GetResourceFileName(pageNumber, resourceFileName);
            
            // Combine paths to form full resource path.
            string resFilePath = Path.Combine(_fileCacheFolderPath, resFileName);
            return resFilePath;
        }

        public string GetHtmlPageResourceUrl(int pageNumber, string resourceFileName)
        {
            // Generate a URL-like string for the resource.
            return GetResourceFileName(pageNumber, resourceFileName);
        }

        private static string GetResourceFileName(int pageNumber, string resourceFileName)
        {
            // Construct resource names based on page number and file name.
            var resFileName = $"p{pageNumber}_{resourceFileName}";
            return resFileName;
        }
    }
}

Tutoriels associés