วิธีทำไฮไลต์ PDF และแปลงเป็น HTML ด้วย GroupDocs

การไฮไลต์ข้อความภายใน PDF และแปลงผลลัพธ์เป็นหน้า HTML ที่มีสไตล์เป็นความต้องการทั่วไปสำหรับการตรวจสอบทางกฎหมาย, e‑learning, และการเผยแพร่ดิจิทัล ในบทแนะนำนี้คุณจะได้เรียนรู้ วิธีทำไฮไลต์ 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 สำหรับไฟล์ 500 หน้า.
  • ผลลัพธ์ HTML มีความโต้ตอบหรือไม่? HTML ที่สร้างขึ้นเป็นแบบสถิตแต่มีสไตล์ครบถ้วน; คุณสามารถเพิ่ม JavaScript เพื่อทำให้โต้ตอบได้.

การไฮไลต์ข้อความใน PDF คืออะไร

การไฮไลต์ข้อความใน PDF คือการทำเครื่องหมายภาพที่วาดสีทับด้านหลังอักขระที่เลือก ทำให้ข้อความนั้นโดดเด่นเมื่อดูเอกสาร GroupDocs.Redaction จะเพิ่มการทับสีนี้โดยตรงลงในสตรีมเนื้อหาของ PDF, รักษาเค้าโครงเดิมไว้ขณะเปิดเผยไฮไลต์ใน HTML ที่ส่งออก

ทำไมต้องใช้ GroupDocs.Redaction สำหรับ .NET

GroupDocs.Redaction รองรับ 70+ รูปแบบการนำเข้าและส่งออก, ประมวลผล PDF ได้ถึง 500 หน้า โดยไม่ต้องโหลดไฟล์ทั้งหมดเข้าสู่หน่วยความจำ, และมี API แบบ single‑pass ที่ทำการลบข้อมูลและไฮไลต์พร้อมกัน ความสามารถที่วัดได้เหล่านี้ทำให้เป็นตัวเลือกที่เชื่อถือได้สำหรับโซลูชันเอกสารระดับองค์กร

ข้อกำหนดเบื้องต้น

  • สภาพแวดล้อมการพัฒนา: Visual Studio 2022 (หรือใหม่กว่า) พร้อมโครงการ .NET Core 3.1 / .NET 6.
  • แพ็กเกจ NuGet: GroupDocs.Redaction (รุ่นเสถียรล่าสุด).
  • ความรู้พื้นฐาน: ไวยากรณ์ C#, เส้นทางระบบไฟล์, และพื้นฐาน HTML.

วิธีตั้งค่า GroupDocs.Redaction สำหรับ .NET?

เพื่อทำการติดตั้งไลบรารี, เลือกหนึ่งในสามวิธีที่รองรับ คำสั่ง .NET CLI จะเพิ่มแพ็กเกจลงในไฟล์โครงการของคุณ, Package Manager Console จะรวมเข้าผ่าน NuGet, และ UI จะให้วิธีกราฟิกเพื่อเรียกดูและติดตั้ง ทั้งสามวิธีให้ผลลัพธ์เดียวกันคือการอ้างอิง assembly GroupDocs.Redaction ทำให้คุณเริ่มเขียนโค้ดได้ทันที

ใช้ .NET CLI:

dotnet add package GroupDocs.Redaction

ใช้ Package Manager Console:

Install-Package GroupDocs.Redaction

ใช้ UI ของ NuGet Package Manager: ค้นหา “GroupDocs.Redaction” แล้วคลิก Install.

หลังจากติดตั้ง, เพิ่มคำสั่ง using ที่ส่วนบนของไฟล์ C# ของคุณ:

using GroupDocs.Redaction;

คลาส Feature_InitializeIndexedFileInfo ทำงานอย่างไร

Feature_InitializeIndexedFileInfo เป็นตัวช่วยที่สร้างและจัดเก็บเส้นทางที่จำเป็นสำหรับแคชของ viewer และ PDF ต้นฉบับ

คลาสนี้เตรียมตำแหน่งในระบบไฟล์ที่ viewer และตัวสร้าง 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 ที่เบราว์เซอร์สามารถร้องขอได้ คลาสนี้รับหมายเลขหน้าและชื่อทรัพยากร, แล้วคืนค่า tuple ที่มีเส้นทางระบบไฟล์เต็มภายในโฟลเดอร์แคชและ 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. เนื้อหา e‑learning: แปลง PDF บรรยายที่มีคำอธิบายเป็นหน้าเว็บโต้ตอบพร้อมการไฮไลต์ที่ค้นหาได้.
  3. การเผยแพร่ดิจิทัล: สร้างเวอร์ชันเว็บของนิตยสารที่มีส่วนที่ไฮไลต์เพื่อดึงดูดความสนใจของผู้อ่าน.

สถานการณ์เหล่านี้ได้รับประโยชน์จาก high‑performance streaming ที่ GroupDocs.Redaction มอบให้, ทำให้คุณจัดการเอกสารหลายพันฉบับต่อวันได้

ปัญหาทั่วไปและวิธีแก้

ปัญหาสาเหตุวิธีแก้
ไฮไลต์ไม่แสดงใน HTMLไม่มีคลาส CSS ในหน้า HTML ที่สร้างตรวจสอบให้แน่ใจว่าได้อ้างอิง highlight.css ของ viewer หรือฝังบล็อกสไตล์ด้วยตนเอง.
ข้อผิดพลาดหน่วยความจำไม่พอเมื่อประมวลผล PDF ขนาดใหญ่ใช้ Document.Load โดยไม่สตรีมใช้ RedactorOptions พร้อม EnableStreaming = true.
URL ของทรัพยากรคืนค่า 404การกำหนดค่า base URL ไม่ถูกต้องตั้งค่า RedactionViewerOptions.BaseUrl ให้เป็นรูทของโฟลเดอร์ไฟล์สถิตของคุณ.

คำถามที่พบบ่อย

Q: ฉันสามารถไฮไลต์หลายส่วนใน PDF เดียวพร้อมกันได้หรือไม่?
A: ได้. ส่งคอลเลกชันของอ็อบเจ็กต์ RedactionRegion ไปยัง Redactor.Apply และแต่ละส่วนจะถูกไฮไลต์ในกระบวนการเดียว.

Q: API รองรับการไฮไลต์แบบตามคีย์เวิร์ดหรือไม่?
A: รองรับ. ใช้ Redactor.Search เพื่อค้นหาทุกการปรากฏของคำ, แล้วนำไปใช้ไฮไลต์ด้วย redaction.

Q: ผลลัพธ์ HTML มีความโต้ตอบ (เช่น คลิกเพื่อไปยังหน้า) หรือไม่?
A: ผลลัพธ์เริ่มต้นเป็นแบบสถิติ, แต่คุณสามารถแทรก JavaScript หลังการสร้างเพื่อเพิ่มการนำทาง, tooltip, หรือ handler การคลิกที่กำหนดเอง.

Q: ฉันจะเปลี่ยนสีของไฮไลต์ได้อย่างไร?
A: แก้ไขคลาส CSS .redaction-highlight ใน HTML ที่ส่งออก หรือกำหนดคุณสมบัติ HighlightColor บน RedactionOptions ก่อนทำการประยุกต์.

Q: วิธีนี้จะทำงานกับ PDF ที่ใหญ่กว่า 1 GB หรือไม่?
A: ทำได้, เพียงเปิดใช้งานการสตรีมและจัดสรรพื้นที่ดิสก์ชั่วคราวเพียงพอ; API จะไม่โหลดเอกสารทั้งหมดเข้าสู่ RAM.

สรุป

คุณมีเวิร์กโฟลว์ที่ครบถ้วนและพร้อมใช้งานในระดับการผลิตสำหรับ วิธีทำไฮไลต์ PDF และแปลงเป็นหน้า HTML ที่ไฮไลต์โดยใช้ GroupDocs.Redaction สำหรับ .NET โดยการกำหนดค่า indexed file info, สร้างเส้นทาง HTML ที่กำหนดล่วงหน้า, และจัดการ URL ของทรัพยากร, คุณสามารถผสานโซลูชันนี้เข้ากับระบบจัดการเอกสารบน .NET ใด ๆ, พอร์ทัลตรวจสอบกฎหมาย, หรือแพลตฟอร์ม 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;
        }
    }
}

บทแนะนำที่เกี่ยวข้อง