GroupDocs के साथ PDF को हाइलाइट कैसे करें और HTML में परिवर्तित करें

PDF के अंदर टेक्स्ट को हाइलाइट करना और परिणाम को एक स्टाइल्ड HTML पेज में बदलना कानूनी समीक्षा, ई‑लर्निंग और डिजिटल पब्लिशिंग के लिए एक सामान्य आवश्यकता है। इस ट्यूटोरियल में आप GroupDocs.Redaction for .NET के साथ how to highlight pdf फ़ाइलों को खोजेंगे और फिर हाइलाइटेड HTML आउटपुट जनरेट करेंगे जिसे वेब पोर्टल या लर्निंग मैनेजमेंट सिस्टम में एम्बेड किया जा सकता है। गाइड पर्यावरण सेटअप, पाथ इनिशियलाइज़ेशन, HTML पेज जेनरेशन, और रिसोर्स URL हैंडलिंग को कवर करता है—सभी तैयार‑टू‑रन C# स्निपेट्स के साथ।

त्वरित उत्तर

  • हाइलाइटिंग को कौन सी लाइब्रेरी संभालती है? GroupDocs.Redaction for .NET.
  • कौन से .NET संस्करण समर्थित हैं? .NET Framework 4.6+, .NET Core 3.1+, .NET 5/6/7.
  • उत्पादन के लिए क्या मुझे लाइसेंस चाहिए? हाँ – एक कॉमर्शियल लाइसेंस ट्रायल लिमिट्स को हटाता है।
  • क्या मैं बड़े PDF (सैकड़ों पृष्ठ) प्रोसेस कर सकता हूँ? हाँ, API पेजेस को स्ट्रीम करता है और 500‑पेज फ़ाइल के लिए 200 MB RAM से कम उपयोग करता है।
  • क्या HTML आउटपुट इंटरैक्टिव है? जेनरेटेड HTML स्थैतिक है लेकिन पूरी तरह स्टाइल्ड; आप इंटरैक्टिविटी के लिए JavaScript जोड़ सकते हैं।

PDF टेक्स्ट हाइलाइटिंग क्या है?

PDF टेक्स्ट हाइलाइटिंग वह विज़ुअल मार्कअप है जो चयनित अक्षरों के पीछे एक रंगीन ओवरले बनाता है, जिससे दस्तावेज़ देखने पर वे प्रमुख दिखते हैं। GroupDocs.Redaction इस ओवरले को सीधे PDF की कंटेंट स्ट्रीम में जोड़ता है, मूल लेआउट को संरक्षित रखते हुए एक्सपोर्टेड HTML में हाइलाइट्स को प्रदर्शित करता है।

GroupDocs.Redaction for .NET का उपयोग क्यों करें?

GroupDocs.Redaction 70+ इनपुट और आउटपुट फ़ॉर्मेट को सपोर्ट करता है, 500 पृष्ठ तक के PDF को पूरी फ़ाइल को मेमोरी में लोड किए बिना प्रोसेस करता है, और एक सिंगल‑पास API प्रदान करता है जो रेडैक्ट और हाइलाइट दोनों करता है। ये मापी गई क्षमताएँ इसे एंटरप्राइज़‑स्केल दस्तावेज़ पाइपलाइन के लिए एक भरोसेमंद विकल्प बनाती हैं।

पूर्वापेक्षाएँ

  • विकास पर्यावरण: Visual Studio 2022 (या बाद का) with a .NET Core 3.1 / .NET 6 project.
  • NuGet पैकेज: GroupDocs.Redaction (latest stable release).
  • मूल ज्ञान: C# syntax, file‑system paths, and HTML basics.

GroupDocs.Redaction for .NET को कैसे सेटअप करें?

लाइब्रेरी को इंस्टॉल करने के लिए, तीन समर्थित तरीकों में से एक चुनें। .NET CLI कमांड पैकेज को आपके प्रोजेक्ट फ़ाइल में जोड़ता है, पैकेज मैनेजर कंसोल इसे NuGet के माध्यम से इंटीग्रेट करता है, और UI ब्राउज़ और इंस्टॉल करने का ग्राफिकल तरीका प्रदान करता है। ये सभी तीन तरीके समान GroupDocs.Redaction असेंबली को रेफ़रेंस करते हैं, जिससे आप तुरंत कोडिंग शुरू कर सकते हैं।

.NET CLI का उपयोग करके:

dotnet add package GroupDocs.Redaction

Package Manager Console का उपयोग करके:

Install-Package GroupDocs.Redaction

NuGet पैकेज मैनेजर UI का उपयोग करके: Search for “GroupDocs.Redaction” and click Install.

इंस्टॉलेशन के बाद, अपने C# फ़ाइल के शीर्ष पर एक using निर्देश जोड़ें:

using GroupDocs.Redaction;

Feature_InitializeIndexedFileInfo क्लास कैसे काम करता है?

Feature_InitializeIndexedFileInfo एक हेल्पर है जो व्यूअर कैश और स्रोत PDF के लिए आवश्यक पाथ बनाता और संग्रहीत करता है।

यह क्लास फ़ाइल‑सिस्टम लोकेशन तैयार करता है जिस पर व्यूअर और HTML जेनरेटर निर्भर करते हैं। यह टेम्पररी फ़ाइलों के लिए एक समर्पित कैश फ़ोल्डर बनाता है, स्रोत PDF से एक फ़ोल्डर नाम निकालता है, और मूल दस्तावेज़ का एब्सोल्यूट पाथ संग्रहीत करता है। ये प्रॉपर्टीज़ डाउनस्ट्रीम प्रोसेसिंग के लिए रीड‑ऑनली मेंबर्स के रूप में एक्सपोज़ की जाती हैं।

// ```csharp
using GroupDocs.Redaction;

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

HTML पेज फ़ाइल पाथ कैसे जनरेट करें?

Feature_GenerateHtmlPageFilePath प्रत्येक HTML पेज के लिए पेज नंबर के आधार पर निर्धारक फ़ाइल नाम जनरेट करता है।

यह क्लास एक फ़ाइल नाम बनाता है जो प्रत्येक रेंडर किए गए पेज को अनूठे रूप से पहचानता है, एक सरल p{pageNumber}.html पैटर्न का उपयोग करके। फिर यह इस नाम को पहले बनाए गए कैश फ़ोल्डर पाथ के साथ मिलाकर पूर्ण फ़ाइल सिस्टम लोकेशन बनाता है जहाँ 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 पेज रिसोर्स फ़ाइल पाथ और URL कैसे बनाएं?

Feature_GenerateHtmlPageResourceFilePathAndUrl पेज रिसोर्सेज के लिए फिजिकल फ़ाइल पाथ और संबंधित वेब URL दोनों बनाता है।

इमेज, फ़ॉन्ट या CSS फ़ाइलों जैसे रिसोर्सेज को डिस्क पर एक लोकेशन और एक URL दोनों की आवश्यकता होती है जिसे ब्राउज़र अनुरोध कर सके। यह क्लास पेज नंबर और रिसोर्स नाम लेती है, फिर एक ट्यूपल रिटर्न करती है जिसमें कैश फ़ोल्डर के अंदर का एब्सोल्यूट फ़ाइल सिस्टम पाथ और एक वर्चुअल URL होता है जिसे वेब सर्वर मैप कर सकता है। इस दृष्टिकोण का उपयोग करने से रिसोर्स रेफ़रेंसेज़ जेनरेटेड पेजेज में सुसंगत रहती हैं।

// ```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. कानूनी दस्तावेज़ समीक्षा: धारा को हाइलाइट करें, HTML में एक्सपोर्ट करें, और ब्राउज़र में वकीलों को टिप्पणी करने दें।
  2. ई‑लर्निंग कंटेंट: एनोटेटेड लेक्चर PDF को सर्चेबल हाइलाइट्स के साथ इंटरैक्टिव वेब पेज में बदलें।
  3. डिजिटल पब्लिशिंग: मैगज़ीन के वेब‑रेडी संस्करण बनाएं जहाँ हाइलाइटेड अंश पाठकों का ध्यान आकर्षित करते हैं।

सामान्य समस्याएँ और समाधान

समस्याकारणसमाधान
HTML में हाइलाइट नहीं दिख रहा हैजेनरेटेड पेज में CSS क्लास गायब हैसुनिश्चित करें कि व्यूअर की highlight.css रेफ़रेंसेड है या मैन्युअली स्टाइल ब्लॉक एम्बेड करें।
बड़े PDF पर Out‑of‑memory त्रुटिDocument.Load को स्ट्रीमिंग के बिना उपयोग करनाEnableStreaming = true के साथ RedactorOptions का उपयोग करें।
रिसोर्स URL 404 लौटाते हैंगलत बेस URL कॉन्फ़िगरेशनRedactionViewerOptions.BaseUrl को अपने स्थैतिक फ़ाइल फ़ोल्डर की रूट पर सेट करें।

अक्सर पूछे जाने वाले प्रश्न

Q: क्या मैं एक ही PDF में एक साथ कई सेक्शन हाइलाइट कर सकता हूँ?
A: हाँ। Redactor.Apply को RedactionRegion ऑब्जेक्ट्स का कलेक्शन पास करें और प्रत्येक रीजन उसी ऑपरेशन में हाइलाइट हो जाएगा।

Q: क्या API कीवर्ड‑आधारित हाइलाइटिंग को सपोर्ट करता है?
A: करता है। किसी शब्द की सभी घटनाओं को खोजने के लिए Redactor.Search का उपयोग करें, फिर परिणामस्वरूप रीजन पर हाइलाइट रेडैक्शन लागू करें।

Q: क्या जेनरेटेड HTML इंटरैक्टिव है (जैसे, क्लिक‑टू‑नेविगेट)?
A: डिफ़ॉल्ट आउटपुट स्थैतिक है, लेकिन आप जनरेशन के बाद JavaScript इन्जेक्ट करके नेविगेशन, टूलटिप्स, या कस्टम क्लिक हैंडलर्स जोड़ सकते हैं।

Q: मैं हाइलाइट का रंग कैसे बदल सकता हूँ?
A: एक्सपोर्टेड HTML में CSS क्लास .redaction-highlight को संशोधित करें या लागू करने से पहले RedactionOptions पर HighlightColor प्रॉपर्टी सेट करें।

Q: क्या यह 1 GB से बड़े PDF के लिए काम करेगा?
A: हाँ, बशर्ते आप स्ट्रीमिंग सक्षम करें और पर्याप्त टेम्पररी डिस्क स्पेस आवंटित करें; API कभी भी पूरे दस्तावेज़ को RAM में लोड नहीं करता।

निष्कर्ष

अब आपके पास how to highlight pdf फ़ाइलों को हाइलाइट करने और उन्हें GroupDocs.Redaction for .NET का उपयोग करके हाइलाइटेड HTML पेजेज में बदलने के लिए एक पूर्ण, प्रोडक्शन‑रेडी वर्कफ़्लो है। इंडेक्स्ड फ़ाइल इन्फो को इनिशियलाइज़ करके, निर्धारक HTML पाथ जनरेट करके, और रिसोर्स URL को हैंडल करके, आप इस समाधान को किसी भी .NET‑आधारित दस्तावेज़ प्रबंधन प्रणाली, कानूनी समीक्षा पोर्टल, या ई‑लर्निंग प्लेटफ़ॉर्म में इंटीग्रेट कर सकते हैं।


अंतिम अपडेट: 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;
        }
    }
}

संबंधित ट्यूटोरियल्स