Wie man PDF hervorhebt und in HTML konvertiert mit GroupDocs

Das Hervorheben von Text in einer PDF und das Umwandeln des Ergebnisses in eine formatierte HTML‑Seite ist ein häufiges Bedürfnis für juristische Prüfungen, E‑Learning und digitale Veröffentlichung. In diesem Tutorial erfahren Sie, wie man PDF hervorhebt Dateien mit GroupDocs.Redaction für .NET und anschließend hervorgehobenen HTML‑Ausgabe erzeugt, die in Webportale oder Lernmanagement‑Systeme eingebettet werden kann. Der Leitfaden führt durch die Umgebungseinrichtung, Pfadinitialisierung, HTML‑Seitengenerierung und die Handhabung von Ressourcen‑URLs – alles mit sofort einsatzbereiten C#‑Snippets.

Schnelle Antworten

  • Welche Bibliothek übernimmt das Hervorheben? GroupDocs.Redaction for .NET.
  • Welche .NET‑Versionen werden unterstützt? .NET Framework 4.6+, .NET Core 3.1+, .NET 5/6/7.
  • Benötige ich eine Lizenz für die Produktion? Ja – eine kommerzielle Lizenz entfernt die Testbeschränkungen.
  • Kann ich große PDFs (Hunderte von Seiten) verarbeiten? Ja, die API streamt Seiten und verwendet weniger als 200 MB RAM für eine 500‑seitige Datei.
  • Ist die HTML‑Ausgabe interaktiv? Das erzeugte HTML ist statisch, aber vollständig gestaltet; Sie können JavaScript für Interaktivität hinzufügen.

Was ist PDF‑Text‑Hervorhebung?

PDF‑Text‑Hervorhebung ist die visuelle Markierung, die einen farbigen Überzug hinter ausgewählten Zeichen zeichnet, sodass sie beim Anzeigen des Dokuments hervorgehoben werden. GroupDocs.Redaction fügt diesen Überzug direkt zum Inhaltsstrom der PDF hinzu, bewahrt das ursprüngliche Layout und stellt die Hervorhebungen im exportierten HTML dar.

Warum GroupDocs.Redaction für .NET verwenden?

GroupDocs.Redaction unterstützt mehr als 70 Eingabe‑ und Ausgabeformate, verarbeitet PDFs bis zu 500 Seiten, ohne die gesamte Datei in den Speicher zu laden, und bietet eine Ein‑Durchlauf‑API, die sowohl redigiert als auch hervorhebt. Diese quantifizierten Fähigkeiten machen es zu einer zuverlässigen Wahl für Dokument‑Pipelines im Unternehmensmaßstab.

Voraussetzungen

  • Entwicklungsumgebung: Visual Studio 2022 (oder neuer) mit einem .NET Core 3.1 / .NET 6 Projekt.
  • NuGet‑Paket: GroupDocs.Redaction (neueste stabile Version).
  • Grundkenntnisse: C#‑Syntax, Dateisystem‑Pfade und HTML‑Grundlagen.

Wie richtet man GroupDocs.Redaction für .NET ein?

Um die Bibliothek zu installieren, wählen Sie eine der drei unterstützten Methoden. Der .NET‑CLI‑Befehl fügt das Paket zu Ihrer Projektdatei hinzu, die Package‑Manager‑Konsole integriert es über NuGet, und die UI bietet eine grafische Möglichkeit zum Durchsuchen und Installieren. Alle drei Ansätze führen dazu, dass dieselbe GroupDocs.Redaction‑Assembly referenziert wird, sodass Sie sofort mit dem Coden beginnen können.

Verwendung von .NET CLI:

dotnet add package GroupDocs.Redaction

Verwendung der Package‑Manager‑Konsole:

Install-Package GroupDocs.Redaction

Verwendung der NuGet‑Package‑Manager‑UI: Suchen Sie nach „GroupDocs.Redaction“ und klicken Sie auf Install.

Nach der Installation fügen Sie am Anfang Ihrer C#‑Datei eine using‑Direktive hinzu:

using GroupDocs.Redaction;

Wie funktioniert die Klasse Feature_InitializeIndexedFileInfo?

Feature_InitializeIndexedFileInfo ist ein Hilfsobjekt, das die für den Viewer‑Cache und die Quell‑PDF benötigten Pfade erstellt und speichert.

Die Klasse bereitet die Dateisystem‑Standorte vor, auf die der Viewer und der HTML‑Generator angewiesen sind. Sie erstellt einen dedizierten Cache‑Ordner für temporäre Dateien, leitet einen Ordnernamen aus der Quell‑PDF ab und speichert den absoluten Pfad des Originaldokuments. Diese Eigenschaften werden als schreibgeschützte Member für die nachgelagerte Verarbeitung bereitgestellt.

// ```csharp
using GroupDocs.Redaction;

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

Wie erzeugt man einen HTML‑Seiten‑Dateipfad?

Feature_GenerateHtmlPageFilePath erzeugt deterministische Dateinamen für jede HTML‑Seite basierend auf Seitenzahlen.

Die Klasse erstellt einen Dateinamen, der jede gerenderte Seite eindeutig identifiziert, mithilfe eines einfachen Musters p{pageNumber}.html. Anschließend kombiniert sie diesen Namen mit dem zuvor erstellten Cache‑Ordnerpfad, um einen vollständigen Dateisystem‑Standort zu erzeugen, an dem das HTML gespeichert werden kann. Diese deterministische Benennung verhindert Kollisionen bei der Verarbeitung mehrseitiger PDFs.

// ```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;
    }
}

Wie erstellt man HTML‑Seiten‑Ressourcen‑Dateipfade und URLs?

Feature_GenerateHtmlPageResourceFilePathAndUrl erstellt sowohl den physischen Dateipfad als auch die entsprechende Web‑URL für Seiten‑Ressourcen.

Ressourcen wie Bilder, Schriftarten oder CSS‑Dateien benötigen sowohl einen Speicherort auf der Festplatte als auch eine URL, die ein Browser anfordern kann. Diese Klasse akzeptiert eine Seitenzahl und einen Ressourcennamen und gibt dann ein Tupel zurück, das den absoluten Dateisystempfad im Cache‑Ordner und eine virtuelle URL enthält, die von einem Web‑Server zugeordnet werden kann. Durch diesen Ansatz bleiben Ressourcen‑Verweise über alle erzeugten Seiten hinweg konsistent.

// ```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;
        }
    }
}

Praktische Anwendungen

  1. Rechtsdokumenten‑Prüfung: Klauseln hervorheben, nach HTML exportieren und Anwälten das Kommentieren im Browser ermöglichen.
  2. E‑Learning‑Inhalte: Annotierte Vorlesungs‑PDFs in interaktive Webseiten mit durchsuchbaren Hervorhebungen umwandeln.
  3. Digitale Veröffentlichung: Web‑fertige Versionen von Magazinen erstellen, bei denen hervorgehobene Auszüge die Aufmerksamkeit der Leser auf sich ziehen.

Häufige Probleme und Lösungen

ProblemUrsacheLösung
Hervorhebung erscheint nicht im HTMLFehlende CSS‑Klasse auf der erzeugten SeiteStellen Sie sicher, dass die highlight.css des Viewers referenziert wird, oder betten Sie den Stilblock manuell ein.
Out‑of‑Memory‑Fehler bei großen PDFsVerwendung von Document.Load ohne StreamingVerwenden Sie RedactorOptions mit EnableStreaming = true.
Ressourcen‑URLs geben 404 zurückFalsche Basis‑URL‑KonfigurationSetzen Sie RedactionViewerOptions.BaseUrl auf das Stammverzeichnis Ihres statischen Dateien‑Ordners.

Häufig gestellte Fragen

Q: Kann ich mehrere Abschnitte in einer einzigen PDF gleichzeitig hervorheben?
A: Ja. Übergeben Sie eine Sammlung von RedactionRegion‑Objekten an Redactor.Apply und jede Region wird im selben Vorgang hervorgehoben.

Q: Unterstützt die API schlüsselwortbasierte Hervorhebung?
A: Ja. Verwenden Sie Redactor.Search, um alle Vorkommen eines Begriffs zu finden, und wenden Sie dann eine Hervorhebungs‑Redaktion auf die resultierenden Regionen an.

Q: Ist das erzeugte HTML interaktiv (z. B. Klick‑zu‑Navigation)?
A: Die Standardausgabe ist statisch, aber Sie können nach der Generierung JavaScript einfügen, um Navigation, Tooltips oder benutzerdefinierte Klick‑Handler hinzuzufügen.

Q: Wie kann ich die Hervorhebungsfarbe ändern?
A: Ändern Sie die CSS‑Klasse .redaction-highlight im exportierten HTML oder setzen Sie die Eigenschaft HighlightColor in den RedactionOptions, bevor Sie anwenden.

Q: Funktioniert das bei PDFs größer als 1 GB?
A: Ja, vorausgesetzt, Sie aktivieren Streaming und stellen ausreichend temporären Festplattenspeicher bereit; die API lädt das gesamte Dokument niemals in den RAM.

Fazit

Sie haben nun einen vollständigen, produktionsbereiten Workflow, um wie man PDF hervorhebt Dateien zu verarbeiten und sie in hervorgehobene HTML‑Seiten mit GroupDocs.Redaction für .NET zu verwandeln. Durch das Initialisieren von indizierten Dateiinformationen, das Generieren deterministischer HTML‑Pfade und das Handhaben von Ressourcen‑URLs können Sie diese Lösung in jedes .NET‑basierte Dokumenten‑Management‑System, Rechtsprüfungs‑Portal oder E‑Learning‑Plattform integrieren.


Zuletzt aktualisiert: 2026-08-20
Getestet mit: GroupDocs.Redaction 23.12 for .NET
Autor: 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;
        }
    }
}

Verwandte Tutorials