syncfusion-uwp-pdf-viewer について
UWPアプリでSyncfusionのSfPdfViewerControlを実装するための開発スキルです。PDFの表示や文書操作、注釈、検索、ナビゲーション、印刷に加え、安全なハイパーリンク処理を扱います。
主な機能
- 01PDF文書の読み込みと保存
- 02注釈の追加と管理
- 03テキストの検索と選択
- 04ページ、しおり、リンクの移動
- 05ズームと表示モードの設定
- 06印刷とページ画像のエクスポート
活用シーン
- 01UWPアプリへのPDF表示機能の追加
- 02PDF文書への注釈と保存
- 03文書内容の検索と移動
- 04信頼できないPDFのリンク検証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ pdf-viewer-sdk-skills --skill syncfusion-uwp-pdf-viewerインストール後、Claude Code で/syncfusion-uwp-pdf-viewerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdreferences/annotations.mdbookmarks-and-hyperlinks.mdgetting-started.mdlocalization.mdmagnification.mdpage-navigation.mdprinting.mdtext-operations.mdutilities.mdviewing-pdf.md詳細
UWP PDF ビューアーの実装(SfPdfViewerControl)
Syncfusion の SfPdfViewerControl は、PDF ドキュメントの表示、注釈の追加、検索、印刷に対応したネイティブ UWP コントロールです。既定では Windows レンダリングエンジン(Windows.Data.Pdf)を使用し、オプションで PDFium レンダラーもサポートします。
セキュリティに関する注意 ⚠️
信頼できないソースやユーザー提供のソースから PDF を読み込む場合は、ナビゲーションを許可する前に、必ずハイパーリンクとコンテンツを検証してください。 PDF には、信頼できないウェブサイトにユーザーを誘導したり、意図しない操作を実行したりする悪意のあるハイパーリンクが含まれている場合があります。ナビゲーションを許可する前に、必ず HyperlinkPointerPressed イベントを使用してナビゲーション先を確認し、許可するハイパーリンク検証を実装してください。検証コードの例については、references/bookmarks-and-hyperlinks.md を参照してください。
このスキルを使用する場面
以下が必要な場合に、このスキルを使用してください。
- UWP アプリケーションで PDF ドキュメントを表示および操作する
- ストリーム、StorageFile オブジェクト、またはバイト配列から PDF を読み込む
- 注釈(ハイライト、下線、取り消し線、インク、図形、フリーテキスト、ポップアップ、スタンプ)を追加および管理する
- PDF ドキュメント内のテキストを検索および選択する
- ページ、ブックマーク、ハイパーリンクを操作する(信頼できないソースでは適切な検証を行う)
- 品質やプレビューの設定をカスタマイズして PDF ドキュメントを印刷する
- PDF ビューアーのコマンドに接続したカスタムツールバーを作成する
- ズーム、表示モード、スクロールバー、進行状況リングを設定する
- ビューアーの UI をローカライズする
- PDF ページを画像としてエクスポートする、または PDFium カスタムレンダラーを使用する
コンポーネントの概要
SfPdfViewerControl は、次の機能を備えた UWP 向けの包括的な PDF 表示・管理コントロールです。
- ドキュメント管理: PdfLoadedDocument、Stream、または StorageFile から読み込み(CancellationToken を使用した同期および非同期の読み込みに対応)、注釈付きで保存、アンロードおよび破棄
- 注釈: テキストマークアップ(ハイライト、下線、取り消し線)、図形(四角形、楕円、線)、Windows Ink Canvas に対応したインク、ポップアップ(付箋)、フリーテキスト、吹き出し付きフリーテキスト、カスタムスタンプ注釈
- テキスト操作: 色のカスタマイズに対応したテキスト選択、次/前への移動が可能な同期および非同期のテキスト検索
- ナビゲーションと UI: ページ移動コマンド、ブックマーク、ハイパーリンク処理、ズーム/表示モード、サムネイル表示、デスクトップ用とモバイル用の個別のツールバーレイアウト、スクロールバーと進行状況リングのカスタマイズ
- ユーティリティと高度な機能: ページを画像としてエクスポート(GetPage、GetPages、ExportAsImage)、垂直/水平オフセットへのアクセス、IPdfRenderer インターフェイスによる PDFium カスタムレンダラー、ページ番号の表示
ドキュメントとナビゲーションガイド
はじめにとセットアップ
📄 参照: references/getting-started.md
- 必要なアセンブリ、NuGet パッケージ、XAML またはコードによるコントロールの追加、ItemsSource のバインド、DocumentLoaded イベントについて説明します
- 同期および非同期の読み込みメソッド、ページ数の取得、保存(Save/SaveAsync)、アンロード、破棄について説明します
ドキュメント操作
📄 参照: references/viewing-pdf.md
- PdfLoadedDocument、Stream、StorageFile オブジェクトから同期および非同期で PDF を読み込む方法について説明します
- 非同期読み込み時の CancellationToken のサポート、注釈付きの保存、ビューアーのアンロード/破棄のパターンについて説明します
ページのナビゲーションと表示
📄 参照: references/page-navigation.md
- プログラムによるページ移動、組み込みのナビゲーションコマンド(FirstPage、LastPage、NextPage、PreviousPage)、XAML のコマンドバインドについて説明します
- PageChanged イベント、ページ数、ページ間隔、オフセットコレクション、ページ番号表示の切り替えについて説明します
拡大率と表示モード
📄 参照: references/magnification.md
- ZoomTo によるズーム制御、ズームイン/ズームアウトコマンド、表示モードのオプション(FitWidth、Normal、OnePage)について説明します
- MinimumZoomPercentage、サムネイル表示の切り替え、現在のズーム値の取得について説明します
テキスト検索
📄 参照: references/text-operations.md
- 同期および非同期のテキスト検索、検索結果の前後への移動、SearchNextCommand/SearchPreviousCommand について説明します
- GetTextCoordinates を使って、すべてのテキスト一致箇所のページ上の位置を取得する方法を扱います
テキスト選択
📄 参照: references/text-operations.md
- テキスト選択の有効化、選択範囲のハイライト色のカスタマイズ、TextSelectionCompleted イベントについて説明します
- 選択したテキストをクリップボードにコピーする方法を扱います
注釈
📄 参照: references/annotations.md
- サポートされているすべての注釈タイプを扱います。テキストマークアップ(ハイライト、下線、取り消し線)、図形(四角形、楕円、線)、Windows Ink Canvas を使用したインク、ポップアップ、フリーテキスト、引き出し線付きフリーテキスト、カスタムスタンプです
- 注釈イベント(Added、Tapped、Selected、Removed、MovedOrResized)、注釈の削除、AnnotationCollection、元に戻す/やり直し、IsDocumentEdited プロパティについて説明します
印刷
📄 参照: references/printing.md
- Print メソッド、PrintCommand、CancellationToken に対応した非同期印刷について説明します
- QualityFactor、印刷プレビュー ダイアログのカスタマイズまたは無効化、PrinterSettings によるドキュメント名の設定を扱います
ブックマークとハイパーリンク
📄 参照: references/bookmarks-and-hyperlinks.md
- GoToBookmark を使ったブックマークへの移動と、PdfLoadedDocument からのブックマークコレクションの取得方法について説明します
- 🔒 必須 - ハイパーリンクの検証:
HyperlinkPointerPressedイベントを使ってハイパーリンクを検査および検証するための必須コード例を示します。悪意のあるリダイレクトやインジェクション攻撃を防ぐため、信頼できない PDF のハイパーリンク元は、移動を許可する前に必ず検証してください。安全な実装パターンについては、リファレンスドキュメントを参照してください。
ローカライズ
📄 参照: references/localization.md
- アプリ マニフェストでの既定の言語の設定と、UI 文字列のローカライズのための .resw リソースファイルの追加について扱います
- サポートされているリソースファイル名と、コンテキストメニューの言語の変更方法について説明します
ジェスチャーイベントとインタラクション
📄 参照: references/utilities.md
- カスタムのインタラクション処理のため、ハイパーリンク上のポインターイベント(HyperlinkPointerPressed、HyperlinkPointerMoved)を扱います
- PageChanged イベントと DocumentLoaded イベントを使って、ナビゲーション後および読み込み後のワークフローを実行する方法について説明します
ユーティリティと高度な機能
📄 参照: references/utilities.md
- PDF ページを BitmapImage オブジェクト(GetPage、GetPages)および画像ストリーム(ExportAsImage)としてエクスポートする方法を扱います
- 垂直/水平スクロール位置へのアクセス、IPdfRenderer を使った PDFium カスタムレンダラーの使用、ShowPageNumber プロパティと VerticalScrollBarWidth プロパティについて説明します