Πώς να επισημάνετε pdf και να το μετατρέψετε σε HTML με το GroupDocs

Η επισήμανση κειμένου μέσα σε ένα PDF και η μετατροπή του αποτελέσματος σε μια μορφοποιημένη σελίδα HTML είναι μια κοινή απαίτηση για νομική ανασκόπηση, e‑learning και ψηφιακή έκδοση. Σε αυτό το tutorial θα ανακαλύψετε πώς να επισημάνετε pdf αρχεία με το GroupDocs.Redaction για .NET και στη συνέχεια θα δημιουργήσετε επισημασμένο HTML αποτέλεσμα που μπορεί να ενσωματωθεί σε διαδικτυακές πύλες ή συστήματα διαχείρισης μάθησης. Ο οδηγός περνάει από τη ρύθμιση του περιβάλλοντος, την αρχικοποίηση διαδρομών, τη δημιουργία σελίδας HTML και τη διαχείριση URL πόρων — όλα με έτοιμα C# αποσπάσματα.

Γρήγορες απαντήσεις

  • Ποια βιβλιοθήκη διαχειρίζεται την επισήμανση; GroupDocs.Redaction for .NET.
  • Ποιες εκδόσεις .NET υποστηρίζονται; .NET Framework 4.6+, .NET Core 3.1+, .NET 5/6/7.
  • Χρειάζομαι άδεια για παραγωγή; Ναι – μια εμπορική άδεια αφαιρεί τους περιορισμούς της δοκιμής.
  • Μπορώ να επεξεργαστώ μεγάλα PDF (εκατοντάδες σελίδες); Ναι, το API μεταφέρει τις σελίδες σε ροή και χρησιμοποιεί λιγότερο από 200 MB RAM για αρχείο 500 σελίδων.
  • Είναι το HTML αποτέλεσμα διαδραστικό; Το παραγόμενο HTML είναι στατικό αλλά πλήρως μορφοποιημένο· μπορείτε να προσθέσετε JavaScript για διαδραστικότητα.

Τι είναι η επισήμανση κειμένου PDF;

Η επισήμανση κειμένου PDF είναι η οπτική σήμανση που σχεδιάζει ένα χρωματιστό επικάλυμμα πίσω από τους επιλεγμένους χαρακτήρες, κάνοντάς τους να ξεχωρίζουν όταν το έγγραφο προβάλλεται. Το GroupDocs.Redaction προσθέτει αυτό το επικάλυμμα απευθείας στο ρεύμα περιεχομένου του PDF, διατηρώντας την αρχική διάταξη ενώ εκθέτει τις επισήμανσεις στο εξαγόμενο HTML.

Γιατί να χρησιμοποιήσετε το GroupDocs.Redaction για .NET;

Το GroupDocs.Redaction υποστηρίζει 70+ μορφές εισόδου και εξόδου, επεξεργάζεται PDF έως 500 σελίδες χωρίς να φορτώνει ολόκληρο το αρχείο στη μνήμη, και προσφέρει ένα single‑pass API που τόσο αφαιρεί όσο και επισήμανει. Αυτές οι ποσοτικοποιημένες δυνατότητες το καθιστούν αξιόπιστη επιλογή για επιχειρησιακές γραμμές επεξεργασίας εγγράφων.

Προαπαιτούμενα

  • Περιβάλλον ανάπτυξης: Visual Studio 2022 (ή νεότερο) με έργο .NET Core 3.1 / .NET 6.
  • Πακέτο NuGet: GroupDocs.Redaction (τελευταία σταθερή έκδοση).
  • Βασικές γνώσεις: σύνταξη C#, διαδρομές συστήματος αρχείων, και βασικά HTML.

Πώς να ρυθμίσετε το GroupDocs.Redaction για .NET;

Για να εγκαταστήσετε τη βιβλιοθήκη, επιλέξτε μία από τις τρεις υποστηριζόμενες μεθόδους. Η εντολή .NET CLI προσθέτει το πακέτο στο αρχείο του έργου σας, η Κονσόλα Διαχειριστή Πακέτων το ενσωματώνει μέσω NuGet, και η UI παρέχει γραφικό τρόπο περιήγησης και εγκατάστασης. Και οι τρεις προσεγγίσεις οδηγούν στο ίδιο assembly GroupDocs.Redaction, επιτρέποντάς σας να αρχίσετε να κωδικοποιείτε αμέσως.

Using .NET CLI:

dotnet add package GroupDocs.Redaction

Using Package Manager Console:

Install-Package GroupDocs.Redaction

Using NuGet Package Manager UI: Αναζητήστε “GroupDocs.Redaction” και κάντε κλικ στο Install.

Μετά την εγκατάσταση, προσθέστε μια οδηγία using στην κορυφή του αρχείου C#:

using GroupDocs.Redaction;

Πώς λειτουργεί η κλάση Feature_InitializeIndexedFileInfo;

Feature_InitializeIndexedFileInfo είναι ένας βοηθός που δημιουργεί και αποθηκεύει διαδρομές που χρειάζονται για την προσωρινή μνήμη του viewer και το πηγαίο PDF.

Η κλάση προετοιμάζει τις τοποθεσίες του συστήματος αρχείων που εξαρτώνται ο viewer και ο δημιουργός HTML. Δημιουργεί έναν αφιερωμένο φάκελο cache για προσωρινά αρχεία, παράγει όνομα φακέλου από το πηγαίο PDF και αποθηκεύει την απόλυτη διαδρομή του αρχικού εγγράφου. Αυτές οι ιδιότητες εκτίθενται ως μόνο‑ανάγνωση μέλη για επεξεργασία downstream.

// ```csharp
using GroupDocs.Redaction;

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

Πώς να δημιουργήσετε διαδρομή αρχείου HTML σελίδας;

Feature_GenerateHtmlPageFilePath δημιουργεί ντετερμινιστικά ονόματα αρχείων για κάθε σελίδα HTML βάσει αριθμού σελίδας.

Η κλάση κατασκευάζει ένα όνομα αρχείου που ταυτοποιεί μοναδικά κάθε αποδοθείσα σελίδα, χρησιμοποιώντας το απλό μοτίβο p{pageNumber}.html. Στη συνέχεια συνδυάζει αυτό το όνομα με τη διαδρομή του φακέλου cache που δημιουργήθηκε προηγουμένως για να παραγάγει μια πλήρη θέση στο σύστημα αρχείων όπου μπορεί να αποθηκευτεί το HTML. Αυτή η ντετερμινιστική ονομασία αποτρέπει συγκρούσεις όταν επεξεργάζεστε PDF πολλαπλών σελίδων.

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

Πώς να δημιουργήσετε διαδρομές αρχείων πόρων σελίδας HTML και URLs;

Feature_GenerateHtmlPageResourceFilePathAndUrl δημιουργεί τόσο τη φυσική διαδρομή αρχείου όσο και το αντίστοιχο web URL για τους πόρους της σελίδας.

Πόροι όπως εικόνες, γραμματοσειρές ή αρχεία CSS απαιτούν τόσο θέση στο δίσκο όσο και URL που μπορεί να ζητήσει ένας φυλλομετρητής. Αυτή η κλάση δέχεται έναν αριθμό σελίδας και ένα όνομα πόρου, και επιστρέφει ένα tuple που περιέχει την απόλυτη διαδρομή στο σύστημα αρχείων μέσα στο φάκελο cache και ένα εικονικό URL που μπορεί να χαρτογραφηθεί από έναν web server. Με αυτήν την προσέγγιση οι αναφορές πόρων παραμένουν συνεπείς σε όλες τις παραγόμενες σελίδες.

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

Πρακτικές εφαρμογές

  1. Legal document review: Επισημάνετε ρήτρες, εξάγετε σε HTML και επιτρέψτε στους δικηγόρους να σχολιάζουν σε έναν φυλλομετρητή.
  2. E‑learning content: Μετατρέψτε σχολιασμένα PDF διαλέξεων σε διαδραστικές ιστοσελίδες με δυνατότητα αναζήτησης επισήμανσης.
  3. Digital publishing: Παραγάγετε εκδόσεις web‑ready περιοδικών όπου τα επισημασμένα αποσπάσματα τραβούν την προσοχή του αναγνώστη.

These scenarios benefit from the high‑performance streaming that GroupDocs.Redaction provides, allowing you to handle thousands of documents per day.

Συχνά προβλήματα και λύσεις

ΠρόβλημαΑιτίαΔιόρθωση
Η επισήμανση δεν εμφανίζεται στο HTMLΛείπει η κλάση CSS στη δημιουργημένη σελίδαΒεβαιωθείτε ότι το highlight.css του viewer αναφέρεται ή ενσωματώστε το μπλοκ στυλ χειροκίνητα.
Σφάλμα έλλειψης μνήμης σε μεγάλα PDFΧρήση Document.Load χωρίς streamingΧρησιμοποιήστε RedactorOptions με EnableStreaming = true.
Οι URLs πόρων επιστρέφουν 404Λανθασμένη ρύθμιση base URLΟρίστε RedactionViewerOptions.BaseUrl στη ρίζα του φακέλου στατικών αρχείων σας.

Συχνές ερωτήσεις

Q: Μπορώ να επισημάνω πολλαπλές ενότητες σε ένα μόνο PDF ταυτόχρονα;
A: Ναι. Περνάτε μια συλλογή αντικειμένων RedactionRegion στο Redactor.Apply και κάθε περιοχή θα επισημανθεί στην ίδια λειτουργία.

Q: Υποστηρίζει το API επισήμανση βάσει λέξης‑κλειδί;
A: Ναι. Χρησιμοποιήστε Redactor.Search για να βρείτε όλες τις εμφανίσεις ενός όρου, έπειτα εφαρμόστε μια επισήμανση redaction στις προκύπτουσες περιοχές.

Q: Είναι το παραγόμενο HTML διαδραστικό (π.χ., κλικ‑για‑πλοήγηση);
A: Η προεπιλεγμένη έξοδος είναι στατική, αλλά μπορείτε να ενσωματώσετε JavaScript μετά τη δημιουργία για να προσθέσετε πλοήγηση, tooltip ή προσαρμοστικούς χειριστές κλικ.

Q: Πώς μπορώ να αλλάξω το χρώμα της επισήμανσης;
A: Τροποποιήστε την κλάση CSS .redaction-highlight στο εξαγόμενο HTML ή ορίστε την ιδιότητα HighlightColor στα RedactionOptions πριν την εφαρμογή.

Q: Θα λειτουργήσει αυτό για PDF μεγαλύτερα από 1 GB;
A: Ναι, εφόσον ενεργοποιήσετε το streaming και διαθέσετε επαρκή προσωρινό χώρο στο δίσκο· το API δεν φορτώνει ποτέ ολόκληρο το έγγραφο στη RAM.

Συμπέρασμα

Τώρα έχετε μια πλήρη, έτοιμη για παραγωγή ροή εργασίας για πώς να επισημάνετε pdf αρχεία και να τα μετατρέψετε σε επισημασμένες σελίδες HTML χρησιμοποιώντας το GroupDocs.Redaction για .NET. Αρχικοποιώντας indexed file info, δημιουργώντας ντετερμινιστικές διαδρομές HTML και διαχειριζόμενοι URLs πόρων, μπορείτε να ενσωματώσετε αυτή τη λύση σε οποιοδήποτε σύστημα διαχείρισης εγγράφων .NET, portal νομικής ανασκόπησης ή πλατφόρμα e‑learning.


Τελευταία ενημέρωση: 2026-08-20
Δοκιμή με: GroupDocs.Redaction 23.12 for .NET
Συγγραφέας: 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;
        }
    }
}

Σχετικά μαθήματα