Cara menyorot pdf dan mengonversi ke HTML dengan GroupDocs
Menyorot teks di dalam PDF dan mengubah hasilnya menjadi halaman HTML yang bergaya adalah kebutuhan umum untuk peninjauan hukum, e‑learning, dan penerbitan digital. Dalam tutorial ini Anda akan menemukan cara menyorot pdf dengan GroupDocs.Redaction untuk .NET dan kemudian menghasilkan output HTML yang disorot yang dapat disematkan dalam portal web atau sistem manajemen pembelajaran. Panduan ini meliputi penyiapan lingkungan, inisialisasi jalur, pembuatan halaman HTML, dan penanganan URL sumber daya—semua dengan potongan C# yang siap dijalankan.
Jawaban Cepat
- Perpustakaan apa yang menangani penyorotan? GroupDocs.Redaction untuk .NET.
- Versi .NET mana yang didukung? .NET Framework 4.6+, .NET Core 3.1+, .NET 5/6/7.
- Apakah saya memerlukan lisensi untuk produksi? Ya – lisensi komersial menghapus batas percobaan.
- Bisakah saya memproses PDF besar (ratusan halaman)? Ya, API melakukan streaming halaman dan menggunakan kurang dari 200 MB RAM untuk file 500‑halaman.
- Apakah output HTML interaktif? HTML yang dihasilkan bersifat statis tetapi sepenuhnya bergaya; Anda dapat menambahkan JavaScript untuk interaktivitas.
Apa itu penyorotan teks PDF?
Penyorotan teks PDF adalah penandaan visual yang menggambar lapisan berwarna di belakang karakter yang dipilih, membuatnya menonjol saat dokumen dilihat. GroupDocs.Redaction menambahkan lapisan ini langsung ke aliran konten PDF, mempertahankan tata letak asli sambil menampilkan sorotan dalam HTML yang diekspor.
Mengapa menggunakan GroupDocs.Redaction untuk .NET?
GroupDocs.Redaction mendukung lebih dari 70 format input dan output, memproses PDF hingga 500 halaman tanpa memuat seluruh file ke memori, dan menawarkan API satu‑lalu yang dapat melakukan redaksi dan penyorotan. Kemampuan terukur ini menjadikannya pilihan yang dapat diandalkan untuk alur kerja dokumen berskala perusahaan.
Prasyarat
- Lingkungan pengembangan: Visual Studio 2022 (atau lebih baru) dengan proyek .NET Core 3.1 / .NET 6.
- Paket NuGet:
GroupDocs.Redaction(rilis stabil terbaru). - Pengetahuan dasar: sintaks C#, jalur sistem file, dan dasar-dasar HTML.
Cara menyiapkan GroupDocs.Redaction untuk .NET?
Untuk menginstal perpustakaan, pilih salah satu dari tiga metode yang didukung. Perintah .NET CLI menambahkan paket ke file proyek Anda, Package Manager Console mengintegrasikannya melalui NuGet, dan UI menyediakan cara grafis untuk menelusuri dan menginstal. Ketiga pendekatan menghasilkan referensi ke assembly GroupDocs.Redaction yang sama, memungkinkan Anda mulai menulis kode segera.
Menggunakan .NET CLI:
dotnet add package GroupDocs.Redaction
Menggunakan Package Manager Console:
Install-Package GroupDocs.Redaction
Menggunakan UI NuGet Package Manager: Cari “GroupDocs.Redaction” dan klik Install.
Setelah instalasi, tambahkan direktif using di bagian atas file C# Anda:
using GroupDocs.Redaction;
Bagaimana cara kerja kelas Feature_InitializeIndexedFileInfo?
Feature_InitializeIndexedFileInfo adalah pembantu yang membuat dan menyimpan jalur yang diperlukan untuk cache penampil dan PDF sumber.
Kelas ini menyiapkan lokasi sistem file yang digunakan oleh penampil dan generator HTML. Ia membuat folder cache khusus untuk file sementara, menghasilkan nama folder dari PDF sumber, dan menyimpan jalur absolut dokumen asli. Properti-properti ini diekspos sebagai anggota read‑only untuk pemrosesan selanjutnya.
// ```csharp
using GroupDocs.Redaction;
// Initialize the Redactor
Redactor redactor = new Redactor("your-file-path.pdf");
Cara menghasilkan jalur file halaman HTML?
Feature_GenerateHtmlPageFilePath menghasilkan nama file deterministik untuk setiap halaman HTML berdasarkan nomor halaman.
Kelas ini membangun nama file yang secara unik mengidentifikasi setiap halaman yang dirender, menggunakan pola sederhana p{pageNumber}.html. Kemudian menggabungkan nama ini dengan jalur folder cache yang sebelumnya dibuat untuk menghasilkan lokasi sistem file lengkap tempat HTML dapat disimpan. Penamaan deterministik ini menghindari bentrok saat memproses PDF multi‑halaman.
// ```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;
}
}
Cara membuat jalur file sumber daya halaman HTML dan URL?
Feature_GenerateHtmlPageResourceFilePathAndUrl membangun baik jalur file fisik maupun URL web yang sesuai untuk sumber daya halaman.
Sumber daya seperti gambar, font, atau file CSS memerlukan baik lokasi di disk maupun URL yang dapat diminta oleh browser. Kelas ini menerima nomor halaman dan nama sumber daya, kemudian mengembalikan tuple yang berisi jalur sistem file absolut di dalam folder cache dan URL virtual yang dapat dipetakan oleh server web. Dengan pendekatan ini referensi sumber daya tetap konsisten di seluruh halaman yang dihasilkan.
// ```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;
}
}
}
Aplikasi praktis
- Peninjauan dokumen hukum: Menyorot klausul, mengekspor ke HTML, dan memungkinkan pengacara memberi komentar di browser.
- Konten e‑learning: Mengonversi PDF kuliah yang dianotasi menjadi halaman web interaktif dengan sorotan yang dapat dicari.
- Penerbitan digital: Menghasilkan versi siap web dari majalah dimana kutipan yang disorot menarik perhatian pembaca.
Skenario ini mendapat manfaat dari streaming berperforma tinggi yang disediakan oleh GroupDocs.Redaction, memungkinkan Anda menangani ribuan dokumen per hari.
Masalah umum dan solusi
| Masalah | Penyebab | Solusi |
|---|---|---|
| Sorotan tidak muncul di HTML | Kelas CSS hilang di halaman yang dihasilkan | Pastikan highlight.css penampil direferensikan atau sematkan blok gaya secara manual. |
| Kesalahan out‑of‑memory pada PDF besar | Menggunakan Document.Load tanpa streaming | Gunakan RedactorOptions dengan EnableStreaming = true. |
| URL sumber daya mengembalikan 404 | Konfigurasi base URL yang salah | Setel RedactionViewerOptions.BaseUrl ke root folder file statis Anda. |
Pertanyaan yang sering diajukan
Q: Bisakah saya menyorot beberapa bagian dalam satu PDF sekaligus?
A: Ya. Kirimkan koleksi objek RedactionRegion ke Redactor.Apply dan setiap wilayah akan disorot dalam operasi yang sama.
Q: Apakah API mendukung penyorotan berbasis kata kunci?
A: Ya. Gunakan Redactor.Search untuk menemukan semua kemunculan istilah, lalu terapkan redaksi sorotan pada wilayah yang dihasilkan.
Q: Apakah HTML yang dihasilkan interaktif (mis., klik‑untuk‑navigasi)?
A: Output default bersifat statis, tetapi Anda dapat menyuntikkan JavaScript setelah pembuatan untuk menambahkan navigasi, tooltip, atau penangan klik khusus.
Q: Bagaimana cara mengubah warna sorotan?
A: Modifikasi kelas CSS .redaction-highlight dalam HTML yang diekspor atau setel properti HighlightColor pada RedactionOptions sebelum menerapkan.
Q: Apakah ini akan bekerja untuk PDF yang lebih besar dari 1 GB?
A: Ya, asalkan Anda mengaktifkan streaming dan menyediakan ruang disk sementara yang cukup; API tidak pernah memuat seluruh dokumen ke RAM.
Kesimpulan
Anda kini memiliki alur kerja lengkap yang siap produksi untuk cara menyorot pdf dan mengubahnya menjadi halaman HTML yang disorot menggunakan GroupDocs.Redaction untuk .NET. Dengan menginisialisasi informasi file terindeks, menghasilkan jalur HTML deterministik, dan menangani URL sumber daya, Anda dapat mengintegrasikan solusi ini ke dalam sistem manajemen dokumen berbasis .NET apa pun, portal peninjauan hukum, atau platform e‑learning.
Last Updated: 2026-08-20
Tested With: GroupDocs.Redaction 23.12 for .NET
Author: 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;
}
}
}