syncfusion-wpf-pdf-viewer について
Syncfusion WPF PdfViewer向けにC#とXAMLのサンプルを生成するスキルです。対象フレームワークに応じてプロジェクト設定やコードを調整し、ビューアー機能の導入を支援します。
主な機能
- 01C#とXAMLのサンプル生成
- 02PDF表示機能への対応
- 03対象フレームワークに応じたコード調整
- 04機能別リファレンスの活用
活用シーン
- 01WPFアプリでのPDF読み込み
- 02ビューアーのコントロールやツールバーのカスタマイズ
- 03PDF注釈や印刷機能の実装
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ pdf-viewer-sdk-skills --skill syncfusion-wpf-pdf-viewerインストール後、Claude Code で/syncfusion-wpf-pdf-viewerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdreferences/annotation.mdcommands.mdcustomize-contextmenu.mdexport-image.mdextract-text-from-pdf.mdform-filling.mdhandwritten-signature.mdimport-export-annotations.mdinteraction-mode.mdLoad-sample.mdlocalization.mdmagnifying.mdnavigation.mdorganize-pages.mdpdf-coordinates.mdpdf-layers.mdpdf-pages.mdpdf-rendering.mdprint.mdredaction.mdsaving-pdf-files.mdsearching-text.mdtext-extraction-engine.mdtext-selection.mdtoolbar-items.md詳細
Syncfusion WPF PDFViewer – UI サンプルジェネレーター
ユーザーのプロジェクト向けに C# コードを生成する(デフォルト)
トリガーとなるキーワード:「方法」「コードサンプル」「見せて」「例」「スニペット」「統合」「wpf PdfViewer」「サンプルを作成」。
目的: Syncfusion WPF PdfViewer コントロールを使用する際、ユーザーが WPF アプリケーションに直接挿入できる、整然としたすぐに使える C# および XAML のコードスニペットを生成します。
ワークフロー:
-
references/*.mdファイルに記載されたスニペットを使用して、C# コードを作成します。 -
サンプルを生成する前に、ユーザーの WPF プロジェクト内の既存の XAML ファイルにコードを挿入するか、新しい WPF プロジェクトアプリケーションとして作成するかをユーザーに確認します。
-
ユーザーが新しい WPF プロジェクトの作成を選択した場合、使用するターゲットフレームワークを確認します。
- .NET Framework(例:4.6、4.7、4.8)—
Syncfusion.PdfViewer.WPFを使用し、従来の .NET Framework をターゲットにします。 - .NET Core / .NET(例:.NET 8、.NET 10)—
Syncfusion.PdfViewer.WPFを使用し、<TargetFramework>net8.0-windows</TargetFramework>(または選択したバージョン)をターゲットにします。 - ユーザーの選択に基づいて、適切な
<TargetFramework>値を含む.csprojファイルを生成し、フレームワーク固有のコード(名前空間のインポート、NuGet パッケージのバージョン、起動コードなど)を調整します。
- .NET Framework(例:4.6、4.7、4.8)—
-
XAML 生成ルール — XAML を記述する前に、参照ファイルを必ず確認してください:
⚠️ 厳守ルール — 例外なし: 要求された機能に関連する
references/*.mdファイルを、XAML を生成する前に開いて読みます。 次の点を確認してください。「参照ファイルに、この機能の XAML マークアップが含まれているか?」- YES → 参照ファイルに XAML がある → スニペットに示されている正確な XAML 要素だけを含めます。
- NO → 参照ファイルは C# のみ →
MainWindow.xamlには<Grid>内の<syncfusion:PdfViewerControl>だけを含めます。そこで終了します。他には何も追加しません。
XAML を出力する前に毎回実行するチェックリスト:
- 関連する
references/*.mdファイルを開きました。 - XAML が含まれているか、C# のみかを確認しました。
- C# のみの場合、XAML には
<Grid>内の<syncfusion:PdfViewerControl x:Name="pdfViewer"/>以外は含まれていません。 - 参照ファイルに XAML がある場合、要素を新たに考案せず、その要素だけをコピーしています。
禁止事項(参照ファイルに XAML がない場合):
<Button>、<ComboBox>、<Slider>、<StackPanel>、<TextBlock>、<Grid.RowDefinitions>、または参照スニペットにそのまま記載されていない UI 要素。C# のみの機能(XAML を生成しないことが判明しているもの):
- インク/図形/スタンプ/テキスト/ハイライト注釈(
annotation.md)— 設定はすべて C# のみです。 - 拡大鏡/ズームレベル(
magnifying.md)— C# のみです。 - インタラクションモード(
interaction-mode.md)— C# のみです。 - テキスト選択(
text-selection.md)— C# のみです。 - PDF レイヤー(
pdf-layers.md)— C# のみです。 - 墨消し(
redaction.md)— C# のみです。 - 印刷(
print.md)— C# のみです。 - 画像のエクスポート(
export-image.md)— C# のみです。 - PDF の保存(
saving-pdf-files.md)— C# のみです。
XAML が必要なことが判明している機能(参照ファイルに基づくもの):
- コマンド(
commands.md):ナビゲーション/ズーム/注釈/元に戻す/やり直し/印刷/アンロードの各ボタンでは、Command="{Binding ElementName=..., Path=...}"を使用します。 - ツールバー項目(
toolbar-items.md):クラシックスタイルでは、<syncfusion:PdfViewerControl>にStyle="{StaticResource SyncfusionPdfViewerCustomControlStyle}"を設定する必要があります。 すべての XAML 追加要素は、<syncfusion:PdfViewerControl>を含む同じ<Grid>内に配置してください。<StackPanel>または<Grid>のサブレイアウトを使用するのは、参照スニペットで必要とされている場合に限ります。
-
ユーザーが要求した機能を満たすために必要な API だけを追加してください。オプションの API など、追加の API は含めないでください。
-
C# 言語バージョンとの互換性: ターゲットフレームワークが .NET Framework(例:4.6、4.7、4.8)の場合、既定の C# 言語バージョンは 7.3 です。生成する C# コードでは、C# 8.0 以降の言語機能を使用してはいけません。具体的には、次の機能を使用しないでください。
- switch 式(
x switch { ... }) - nullable 参照型(
string?、#nullable enable、object?) - 既定のインターフェイス実装
- 範囲とインデックス(
^1、1..^1) ??=による null 合体代入 switch 式の代わりにif/elseまたは従来のswitch文を使用してください。nullable 参照型の構文ではなく、通常の null チェック(if (x != null))を使用してください。
- switch 式(
コードリファレンス
すべてのテンプレートと操作スニペットは references/*.md にあります。各ファイルには、エージェントがサンプルを生成する際に組み合わせる、用途を絞ったスニペットまたはテンプレートが含まれています。
| ファイル | 用途 |
|---|---|
| Load-sample.md | ファイルパス、ストリーム、または PdfLoadedDocument を使用して PDF を読み込み、読み込み解除します(暗号化の有無を問いません)。非同期読み込み、MVVM バインディング、パスワード処理、読み込みインジケーターのカスタマイズ、テーマの適用をサポートします。 |
| navigation.md | インデックスベースまたはページ番号ベースの API を使用して PDF ページを移動し、ページ状態の情報を取得し、プログラムでスクロールし、サムネイルとブックマークを管理し、ハイパーリンクのナビゲーションイベントを処理します。 |
| annotation.md | すべての注釈タイプを有効化、カスタマイズ、管理します。注釈イベントを処理し、注釈をプログラムで選択、非表示、ロック、削除します。コメントパネル、作成者情報、ハイパーリンク、選択表示を制御します。 |
| pdf-rendering.md | PDFium と SfPdf を切り替え、必要な ReferencePath を設定して、PDF レンダリングエンジンを構成します。 |
| text-extraction-engine.md | テキスト抽出の動作を制御するため、テキスト抽出エンジン(PDFium または SfPdf)を選択します。 |
| print.md | サイレント印刷またはダイアログ表示で PDF を印刷します。プリンター、ページサイズ、拡大縮小、向き、ページ範囲、給紙元、ドキュメント名を設定し、印刷のライフサイクルイベントを処理します。 |
| export-image.md | サイズ、DPI、アスペクト比、透明度を制御して、PDF ページまたはページ範囲を画像(JPG、PNG、TIFF、BMP)としてエクスポートします。 |
| import-export-annotations.md | FDF または XFDF 形式を使用して注釈をインポートおよびエクスポートします。 |
| extract-text-from-pdf.md | ページまたはドキュメント全体からテキストコンテンツと境界情報を抽出します。 |
| form-filling.md | AcroForm フィールドを処理します。フォームイベントを管理し、アイコンを表示または非表示にし、フォームデータをインポート/エクスポートし、フォームフィールドをプログラムで追加または編集します。 |
| pdf-layers.md | 表示状態の切り替え、レイヤーの有効化または無効化、レイヤーペイン UI の制御によって、PDF レイヤーにアクセスして管理します。 |
| redaction.md | 領域を指定し、外観をカスタマイズし、墨消しイベントを処理して墨消しを適用します。 |
| pdf-coordinates.md | 座標系を相互に変換し、スクロールオフセットを取得し、特定のページ領域を拡大表示します。 |
| organize-pages.md | ページ整理機能を使用してページを回転、並べ替え、削除します。 |
| handwritten-signature.md | 手書き署名をキャプチャし、外観をカスタマイズし、署名イベントを処理し、保存時に署名をフラット化します。 |
| interaction-mode.md | カーソル設定を使用して、テキスト選択、パン、範囲指定ズームなどのビューアー操作モードを切り替えます。 |
| pdf-pages.md | ページの外観をカスタマイズし、ページ操作イベントを処理し、ピクセル座標を PDF ポイントに変換します。 |
| saving-pdf-files.md | 編集した PDF を保存し、未保存の変更を検出し、保存操作をキャンセルし、保存イベントを処理し、保留中の編集がある場合は閉じる前に確認を求めます。 |
| magnifying.md | ズームレベル、フィットモード、制限、矩形領域へのズーム、ツールバーの表示、ズーム変更イベントなど、ズームの動作を制御します。 |
| searching-text.md | テキストを検索して強調表示し、検索結果を移動し、一致範囲とテキストの詳細を取得し、複数行検索をサポートし、検索 UI と検索の可否を制御します。 |
| text-selection.md | テキスト選択の完了を検出し、選択されたテキストと境界を取得し、強調表示の色をカスタマイズし、選択を有効または無効にし、選択範囲をプログラムでクリアします。 |
| localization.md | .resx リソースとカルチャ設定を使用して、PDF Viewer の UI をローカライズします。 |
| customize-contextmenu.md | コンテキストメニューの項目を追加、削除、非表示にし、メニューのクリックイベントを処理して、コンテキストメニューをカスタマイズします。 |
| commands.md | ナビゲーション、ズーム、検索、注釈、元に戻す/やり直し、印刷、保存、ドキュメントの読み込み解除に関する組み込みの WPF コマンドを使用し、バインドします。 |
| toolbar-items.md | ツールバー、パネル、ボタン、メニュー、通知バーの表示/非表示を切り替え、ツールバースタイルを切り替えて、ビューアー UI をカスタマイズします。 |
前提条件
- 開発環境:Visual Studio 2022 または Visual Studio Insider 2026(.NET 10 にはこちらを推奨します)。
- .NET Framework 4.5 以降、または WPF に対応した .NET Core/.NET 8 以降。
- Syncfusion WPF NuGet パッケージ:
Syncfusion.PdfViewer.WPF
テーマの NuGet パッケージ
SfSkinManager を使用して WPF PdfViewerControl に組み込みテーマを適用するには、適用するテーマに対応する NuGet パッケージをインストールしてください。
| テーマ名 | 必要な NuGet パッケージ |
|---|---|
FluentLight | Syncfusion.Themes.FluentLight.WPF |
FluentDark | Syncfusion.Themes.FluentDark.WPF |
MaterialLight | Syncfusion.Themes.MaterialLight.WPF |
MaterialDark | Syncfusion.Themes.MaterialDark.WPF |
MaterialLight3 | Syncfusion.Themes.MaterialLight3.WPF |
MaterialDark3 | Syncfusion.Themes.MaterialDark3.WPF |
Office2019Colorful | Syncfusion.Themes.Office2019Colorful.WPF |
Office2019Black | Syncfusion.Themes.Office2019Black.WPF |
Office2019White | Syncfusion.Themes.Office2019White.WPF |
Office2019DarkGray | Syncfusion.Themes.Office2019DarkGray.WPF |
Windows11Light | Syncfusion.Themes.Windows11Light.WPF |
Windows11Dark | Syncfusion.Themes.Windows11Dark.WPF |
Note: ユーザーが適用するテーマに対応する NuGet パッケージのみをインストールしてください。テーマをサポートするには
Syncfusion.SfSkinManager.WPFが必要です。このパッケージはテーマパッケージの依存関係として含まれています。