syncfusion-aspnetmvc-pdf-viewer について
syncfusion-aspnetmvc-pdf-viewerは、ASP.NET MVCプロジェクト向けにPDF Viewerのサンプルを生成するスキルです。参照ファイルに基づいて内容を選び、文書化されたAPIとプロパティだけを使用します。
主な機能
- 01RazorとHTMLのサンプル生成
- 02参照ファイルに基づく機能案内
- 03文書化されたAPIのみを使用
- 04未対応機能への回答ルール
- 05設定コードの記述方法の案内
活用シーン
- 01ASP.NET MVC PDF Viewerのサンプル作成
- 02文書化済みビューア機能の追加
- 03要求されたAPIの文書化状況の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ pdf-viewer-sdk-skills --skill syncfusion-aspnetmvc-pdf-viewerインストール後、Claude Code で/syncfusion-aspnetmvc-pdf-viewerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdreferences/annotation-events.mdannotation-operations.mdannotation-overview.mdannotation-settings.mdannotation-use-cases.mdapi-methods.mdbookmark-navigation.mdcontextmenu.mdenable-properties.mdevents.mdform-field-events.mdform-field-settings.mdform-field-validation.mdform-fields-overview.mdform-fields-props.mdform-operations.mdfree-text-annotations.mdgeneral-properties.mdgetting-started.mdimport-export-form-data.mdmagnification.mdmeasurement-annotations.mdnavigation.mdopening-pdfs.mdprinting-and-organizing.mdredaction-annotation.mdsaving-and-downloading.mdshape-annotations.mdshape-label-settings.md詳細
Syncfusion ASP.NET MVC Pdfviewer – UI サンプルジェネレーター
NuGet: Syncfusion.EJ2.MVC5
ユーザーのプロジェクト向けコードの生成 (デフォルト)
トリガーキーワード: 「方法」「PDF ビューアーを追加」「コードサンプル」「見せて」「例」「スニペット」「統合」「コンポーネント」「サンプルを作成」「ASP.NET MVC サンプル」。
目的: ユーザーが ASP.NET MVC プロジェクトに直接統合できる、最小限でコピーして貼り付け可能な Razor + HTML コード(.cshtml)を生成します。
ワークフロー: ⚠️ 重大 — 機能サポートポリシー(厳格モード):
基本ルール: リファレンスファイルに明示的に記載されている API とプロパティのみを使用してコードを生成してください。これから逸脱することは、いかなる場合も違反となります。
-
コードを生成する前に必ず確認すること:
- リファレンスファイルで API/プロパティの正確な名前を検索する
- メソッドリファレンス、プロパティ、またはイベントの表に記載されていることを確認する
- どのリファレンスファイルにも見つからない場合は、直ちに中止する
- いかなる場合も、ドキュメント化されていない API を生成または提案しない
-
厳格な適用 — 例外なし:
- カスタムプロパティは禁止 — リファレンスファイルの表に記載されたプロパティのみ使用する
- メソッドの創作は禁止 — リファレンスファイルの表に記載されたメソッドのみ使用する
- 未定義の API を使った回避策は禁止 — 禁止
- ドキュメント化されていない動作に関する推測は禁止 — 禁止
- 推測に基づく代替実装は禁止 — 禁止
- サポートされていると偽ることは禁止 — 禁止
-
サポートされていない機能に対する必須の回答:
- 要求されたシナリオ/機能/API がどのリファレンスファイルにも記載されていない場合、必ず次のように回答してください:
"This feature is not supported in the current Syncfusion ASP.NET MVC PDF Viewer implementation." - 続けて、該当するリファレンスファイルに記載されたサポート対象を列挙する
- リファレンスファイルに明示的に記載されていない限り、代替案を提案しない
- 要求されたシナリオ/機能/API がどのリファレンスファイルにも記載されていない場合、必ず次のように回答してください:
-
リファレンスファイルの優先順位:
- 各リファレンスファイルには、その対象領域について完全かつ正式なドキュメントが含まれています
- 表(メソッドリファレンス、プロパティ、イベント)が信頼できる唯一の情報源です
- リファレンスファイル内のこれらの表以外の内容は、説明のみを目的としています
- リファレンスファイルの表に記載された内容を超えて拡張しないでください
-
生成内容の監査:
- コードを提示する前に、使用するすべての API がリファレンスファイルの表に記載されていることを確認する
- 各 API の参照元となるリファレンスファイルを明記する
- リファレンスファイルの表の項目を引用できない場合は、そのコードを削除する
-
これは重大な要件です。 違反すると、このスキルの完全性と信頼性が損なわれます。
ステップ 1 — リファレンスファイルのみからコードを生成する (必須)
- 要求された機能に関連する
references/*.mdファイルを読む - すべての API、プロパティ、メソッドを表と照合する
- 必須: コードを生成する前に、リファレンスファイルが存在し、アクセス可能であることを確認する
- 要求された機能に適切なリファレンスファイルを読む:
- 関連する
references/*.mdファイルでread_fileツールを使用する - ファイルにメソッド/プロパティ/イベントの表が含まれていることを確認する
- 表が完全で読み取り可能であることを確認する
- 関連する
- リファレンスファイルが見つからない、または読み取れない場合:
- コードの生成を中止する
- 次のように回答する: 「この機能のリファレンスファイルを利用できません。
references/ディレクトリにすべてのリファレンスファイルが存在することを確認してください。」 - 不足しているリファレンスファイル名を列挙する
- これは作業を進めるための必須条件です。リファレンスファイルの検証なしには先に進めません
- API/プロパティがリファレンスファイルの表に記載されていない場合は、使用しない
- リファレンスファイルに明示的に記載されていない API、メソッド、プロパティ、クラス、名前空間を創作、推測、提案しない
⚙️ 設定構成のベストプラクティス
設定(toolbarSettings、annotationSettings、annotationSelectorSettings、arrowSettings、rectangleSettings など)を使ってコードを生成する際は、不要なインポートや過剰な実装を避けるため、次のガイドラインに従ってください:
ルール 1:シンプルな設定 → Razor のインラインコードとして定義する
この方法を使う場合:
- 1~3 個のプロパティのみを設定する場合
- カスタム型を使わず、設定がシンプルな場合
例(このようにしてください):
@Html.EJS().PdfViewer("pdfviewer").AnnotationSelectorSettings(new Syncfusion.EJ2.PdfViewer.PdfViewerAnnotationSelectorSettings { ResizerBorderColor = "green", SelectionBorderColor = "blue", ResizerFillColor = "#4070ff", resizerSize = 8, SelectionBorderThickness = 1, SelectorLineDashArray = new int[] { 5, 6 }, ResizerLocation = "Corners|Edges", ResizerCursorType = "grab" }).Render()
利点:
- ✅ シンプルで読みやすい
- ✅ コードがすっきりする
- ✅ 型チェックも引き続き機能する
ルール 2:複雑な設定 → HTML の外側に Razor コードブロックとして定義する
この方法を使う場合:
- 4 個以上のプロパティ、または複数の関連する設定を行う場合
- 列挙型や複雑な設定を使う場合
- 複数のコンポーネントで同じ設定を再利用する場合
- 設定が複雑で、個別に定義する必要がある場合
例(複雑なケースに限り、このようにしてください):
@{
var annotationSelectorSettings = new {
selectionBorderColor = "blue",
resizerBorderColor = "red",
resizerFillColor = "#4070ff",
resizerSize = 8,
selectionBorderThickness = 1,
resizerShape = "Circle",
selectorLineDashArray = new int[] { 5, 6 },
resizerLocation = "Corners|Edges",
resizerCursorType = "grab"
};
}
@Html.EJS().PdfViewer("pdfviewer").AnnotationSelectorSettings(annotationSelectorSettings).Render()
ルール 3:シンプルなケースを決して過剰に設計しない
❌ これは避けてください(過剰な設計):
@{
var toolbarSettings = new Syncfusion.EJ2.PdfViewer.PdfViewerToolbarSettings { ShowTooltip = true };
}
@Html.EJS().PdfViewer("pdfviewer").ToolbarSettings(@toolbarSettings).Render()
✅ 代わりに、こちらのようにしてください(シンプルですっきり):
@Html.EJS().PdfViewer("pdfviewer").ToolbarSettings(new Syncfusion.EJ2.PdfViewer.PdfViewerToolbarSettings { ShowTooltip = true }).Render()
参照ファイルの振り分けガイド
すべてのテンプレートと操作スニペットは references/*.md にあります。各ファイルは、エージェントがサンプルの生成時に組み合わせる、特定の目的に絞ったスニペットまたはテンプレートです。
フロー: 常に getting-started.md から始め、一致する機能をそのアンカー(PROPS、EVENTS、UI_BUTTONS、HANDLERS)に統合します。キーワードが一致しない場合は、基本サンプルのみを返します。
コード生成前のチェックリスト
- 設定するプロパティの数を確認する: 1~3 個? → インラインを使用 | 4 個以上? → 別の Razor コードブロックを使用
- コンポーネントのプロパティは十分シンプルか? はい → インラインのままにする | いいえ → 別の Razor コードブロックに切り出す
- プロパティの Default 値が明示的に設定されているか? はい → 削除 | いいえ → そのままにする
🎯 MVC のセットアップと設定
| ファイル | 目的 |
|---|---|
| getting-started.md | documentPath、height、width を指定した最小構成の PDF Viewer。すべてのサンプルのベーステンプレートです。 |
| enable-properties.md | 特定の機能(ツールバー、注釈、フォーム、ナビゲーション、テキスト選択、ダウンロード、印刷)を有効または無効にします。 |
| general-properties.md | ビューアーの主要なプロパティと動作(documentPath、width/height、locale、zoom/initialRenderPages)、サーバー/統合設定(serviceUrl、ajaxRequestSettings、serverActionSettings)、リソースの読み込み(resourceUrl、customFonts)、パフォーマンス/再試行オプションを設定します。 |
コンテキストメニュー
| ファイル | 目的 |
|---|---|
| contextmenu.md | テキスト、注釈、フォームフィールドに対応するコンテキストメニューです。addCustomMenu でカスタム項目を追加し、customContextMenuSelect でクリックを処理し、customContextMenuBeforeOpen で項目の表示/非表示を動的に切り替え、contextMenuOption でメニューを無効にします。コンテキストメニューの設定で既定のコンテキストメニューを構成します。 |
ナビゲーション機能
| ファイル | 目的 |
|---|---|
| navigation.md | ページナビゲーション(最初/最後/前/次のページ、ページ移動)、サムネイル表示とナビゲーション、ハイパーリンクのサポート(内部リンクと外部リンク)、目次ナビゲーション、プログラムによるナビゲーションメソッド、ナビゲーション関連のイベントを有効または無効にします。 |
| bookmark-navigation.md | ブックマークナビゲーションを有効/無効にし、表示/非表示を切り替えます。ドキュメントのブックマークをプログラムで取得します |
MVC の表示と操作
| ファイル | 目的 |
|---|---|
| viewing-and-interaction.md | 操作モード(テキスト選択/パン)、ページのスクロールと表示動作、パン操作、モジュール型アーキテクチャの機能モジュール、特定の表示機能の有効化/無効化、MVC の表示機能について説明します。 |
| magnification.md | ズームレベルとズーム率、ズームモード(ページに合わせる/幅に合わせる/表示領域に合わせる/自動)、カスタムズームコントロール、プログラムによるズーム操作、ズームツールバーの設定、マウスホイールによるズーム動作を設定します。 |
ツールバーの設定
| ファイル | 目的 |
|---|---|
| toolbar-customization.md | PDF ビューアーのメイン、フォームデザイナー、注釈ツールバーをカスタマイズします。プログラムからツールバーを有効/無効にし、ツールバー項目を有効/無効にしたり、表示/非表示にしたりできます。各ツールバーで使用できる項目を一覧表示します。初期化時にフォームデザイナー、注釈、メインの各ツールバーを有効/無効にします。カスタムツールバー項目を作成します |
| toolbar-reference.md | ツールバー API のメソッド/プロパティを使用して、メイン、注釈、ナビゲーション、墨消しの各ツールバーを表示/非表示にします。 |
| toolbar-customization-scenarios.md | よくあるツールバーのカスタマイズシナリオ |
注釈とマークアップ
| ファイル | 目的 |
|---|---|
| annotation-overview.md | インク/フリーハンド、付箋/コメント、手書き/デジタル署名の注釈と、プログラムから追加する方法について説明します。注釈の種類全般と、一般的なデフォルト注釈設定の例を紹介します |
| text-markup-annotations.md | プログラムからテキストマークアップ注釈(ハイライト、下線、取り消し線、波線)を追加します。各テキストマークアップ注釈のデフォルト設定を操作します |
| shape-annotations.md | 図形注釈(線、矢印、四角形、円、多角形)について説明します。プログラムから図形注釈を追加し、各図形注釈のデフォルト設定を操作します |
| measurement-annotations.md | 計測注釈(距離、周長、面積、半径、体積)について説明します。プログラムから計測注釈を追加し、各計測注釈のデフォルト設定を操作します |
| stamp-annotation.md | スタンプ注釈と、使用可能なさまざまなスタンプの種類について説明します。プログラムからスタンプ注釈を追加します |
| free-text-annotations.md | フリーテキスト注釈について説明します。プログラムからフリーテキスト注釈を追加します |
| annotation-settings.md | すべての注釈の種類について、外観(色、不透明度、境界線、スタイル)と動作(制限、ロック、印刷)を設定します。設定は全体または注釈の種類ごとに適用できます。注釈セレクター(サイズ変更ハンドル、選択境界線)をカスタマイズします。作成者、件名、カスタムデータを設定します。注釈関連のコンポーネントプロパティ(ツールバーの表示、署名設定、エクスポートオプション、描画制約)を制御します。 |
| annotation-events.md | 注釈のライフサイクルイベント(追加、削除、移動、サイズ変更、選択、プロパティ変更)を処理します。 |
| annotation-operations.md | 選択、移動、サイズ変更、削除、ロック、注釈のインポートおよびエクスポートなど、注釈をプログラムから操作します |
| annotation-use-cases.md | 注釈をプログラムから操作する一般的なシナリオを紹介します |
| shape-label-settings.md | 図形および計測注釈のラベルの外観(塗りつぶし色、フォント、フォントサイズ、不透明度)とデフォルトの内容(ラベルテキスト、メモ)を設定します。 |
| redaction-annotation.md | PDF 内の機密情報を非表示にし、完全に削除します。領域またはページ全体を指定してコンテンツにマークを付け、オーバーレイテキストとスタイルを設定し、墨消しを取り消せない形で適用します。テキストを検索して自動で墨消しし、墨消し注釈をプログラムから管理します。 |
フォーム管理
| ファイル | 用途 |
|---|---|
| form-fields-overview.md | PDF フォームの入力と設計、フォームフィールドの管理(テキストボックス/パスワード/チェックボックス/ラジオボタン/ドロップダウン/リストボックス/署名などのフィールドタイプ)、プログラムによるフィールドの作成、フォームデザイナーのツールバー/UI 操作、フィールドのプロパティ/カスタマイズの設定、検証ルールと制約/設定の適用、フォームフィールド API メソッドの使用、カスタムフィールドデータを含むフォームデータのインポート/エクスポートを説明します。 |
| supported-form-fields.md | サポートされているフォームフィールドのタイプと、各フィールドをプログラムで追加する方法 |
| form-fields-props.md | フォームフィールドのプロパティを一覧表示します。共通プロパティと各フィールド固有のプロパティを一覧表示し、フォームフィールドの設定を操作します |
| import-export-form-data.md | フォームフィールドデータをプログラムでインポートおよびエクスポートします |
| form-operations.md | プロパティや値の更新、移動とサイズ変更、削除、グループ化、カスタムデータの追加、フォームフィールドデータの取得など、フォームフィールドをプログラムで操作します |
| form-field-validation.md | フォームフィールドの検証を有効/無効にします。フォームフィールド検証のプログラムによる処理と例を説明します |
| form-field-settings.md | フォームフィールド(テキスト、チェックボックス、ラジオボタン、ドロップダウン、署名)のデフォルトプロパティを設定します。 |
| form-field-events.md | フォームフィールドの操作イベント(フォーカス、フォーカス解除、値の変更、検証)を処理します。 |
テキスト操作
| ファイル | 用途 |
|---|---|
| text-search.md | PDF でのテキスト検索を実装します。検索機能、検索オプション(大文字と小文字を区別/単語全体)、検索結果のハイライト表示、次/前の一致箇所の検索、プログラムによるテキスト検索メソッド、検索完了イベント、カスタムのハイライト色を説明します。テキスト抽出のオプション/設定を構成し、ページからテキストをプログラムで抽出します。 |
| text-selection.md | テキストの選択と抽出を有効にします。選択モード/動作、選択したテキストのコピー、テキスト選択イベント、プログラムによる選択、テキストコレクション/境界を説明します。 |
ドキュメント操作
| ファイル | 用途 |
|---|---|
| opening-pdfs.md | URL/ローカルパス/Base64 から PDF を読み込み、暗号化/パスワード保護された PDF を開き、プログラムによるドキュメントの読み込みをサポートし、ドキュメントの読み込みイベント/ライフサイクルを処理し、読み込みの失敗/エラーを管理します。 |
| saving-and-downloading.md | PDF をダウンロードし、注釈/変更を含む PDF を保存し、フォームデータを含めてダウンロードし、PDF を Base64 として取得し、ダウンロードイベントをカスタマイズし、カスタムのダウンロードファイル名を設定します。 |
| printing-and-organizing.md | PDF の印刷(ページ範囲/品質などの印刷オプションやサイレント印刷を含む)、印刷イベントの処理、ページの整理(概要表示/並べ替え/順序変更/回転/削除)、ページのコピー/複製/抽出による新規ドキュメントの作成、ページオーガナイザーのツールバーの使用、プログラムによるページ整理とモバイルでのページ整理を説明します。 |
⚙️ 高度な機能
| ファイル | 用途 | ユーザーが次について尋ねた場合の参照先 |
|---|---|---|
| api-methods.md | プログラムによる制御:ドキュメントの読み込み、フォームの管理、注釈、テキストの抽出、元に戻す/やり直す、ナビゲーション API。 | 「PDF をプログラムで読み込む」、「API メソッド」、「フォームデータのエクスポート」、「テキストの抽出」、「元に戻す/やり直す」、「プログラムによる制御」 |
| events.md | PDFViewer の全イベント(ドキュメントの読み込み、ダウンロード、注釈、フォーム、検索、ナビゲーション)の完全な一覧。 | 「イベント一覧」、「すべてのイベント」、「利用可能なイベント」、「イベントリファレンス」、「イベントハンドラー」 |