GroupDocsでPDFをハイライトしHTMLに変換する方法
PDF内のテキストをハイライトし、その結果をスタイリッシュなHTMLページに変換することは、法務レビュー、eラーニング、デジタル出版で一般的な要件です。このチュートリアルでは、GroupDocs.Redaction for .NET を使用して how to highlight pdf ファイルをハイライトし、Webポータルや学習管理システムに埋め込めるハイライトされた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でハイライトを表示します。
.NET向けGroupDocs.Redactionを使用する理由は?
GroupDocs.Redactionは 70以上の入力および出力フォーマット をサポートし、ファイル全体をメモリに読み込むことなく 500ページ までのPDFを処理し、シングルパスAPI でリダクションとハイライトの両方を実行します。これらの数値化された機能により、エンタープライズ規模のドキュメントパイプラインに信頼できる選択肢となります。
前提条件
- 開発環境: Visual Studio 2022(またはそれ以降)+ .NET Core 3.1 または .NET 6 プロジェクト。
- NuGetパッケージ:
GroupDocs.Redaction(最新の安定版)。 - 基本知識: C#構文、ファイルシステムパス、HTMLの基礎。
.NET向けGroupDocs.Redactionのセットアップ方法は?
ライブラリをインストールするには、サポートされている3つの方法のいずれかを選択します。.NET CLIコマンドはパッケージをプロジェクトファイルに追加し、Package Manager ConsoleはNuGet経由で統合し、UIはグラフィカルに閲覧・インストールできます。いずれの方法でも同じ GroupDocs.Redaction アセンブリが参照され、すぐにコーディングを開始できます。
.NET CLIを使用:
dotnet add package GroupDocs.Redaction
Package Manager Consoleを使用:
Install-Package GroupDocs.Redaction
NuGet Package Manager UIを使用: “GroupDocs.Redaction” を検索し、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 は、ページリソースの物理ファイルパスと対応するWeb URLの両方を構築します。
画像、フォント、CSSファイルなどのリソースは、ディスク上の場所とブラウザがリクエストできるURLの両方が必要です。このクラスはページ番号とリソース名を受け取り、キャッシュフォルダ内の絶対ファイルシステムパスと、Webサーバーでマッピング可能な仮想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;
}
}
}
実用的な応用例
- 法務文書レビュー: 条項をハイライトし、HTMLにエクスポートして、ブラウザ上で弁護士がコメントできるようにします。
- eラーニングコンテンツ: 注釈付き講義PDFを検索可能なハイライト付きインタラクティブなウェブページに変換します。
- デジタル出版: ハイライトされた抜粋が読者の注意を引くように、雑誌のウェブ対応バージョンを作成します。
これらのシナリオは、GroupDocs.Redaction が提供する 高性能ストリーミング の恩恵を受け、1日数千件のドキュメントを処理できます。
よくある問題と解決策
| 問題 | 原因 | 解決策 |
|---|---|---|
| HTMLにハイライトが表示されない | 生成されたページにCSSクラスが欠如している | highlight.css が参照されていることを確認するか、スタイルブロックを手動で埋め込んでください。 |
| 大きなPDFでメモリ不足エラー | Document.Load をストリーミングなしで使用している | RedactorOptions の EnableStreaming = true を使用してください。 |
| リソースURLが404エラーを返す | ベースURLの設定が正しくない | RedactionViewerOptions.BaseUrl を静的ファイルフォルダのルートに設定してください。 |
よくある質問
Q: 単一のPDFで複数のセクションを同時にハイライトできますか?
A: はい。RedactionRegion オブジェクトのコレクションを Redactor.Apply に渡すと、各領域が同じ操作でハイライトされます。
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 ベースのドキュメント管理システム、法務レビュー ポータル、eラーニングプラットフォームに統合できます。
最終更新日: 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;
}
}
}