mcpField
S
syncfusion-wpf-pdf-viewer

syncfusion-wpf-pdf-viewer

github.com/syncfusion文档处理256 次安装6 周前更新
代码仓库

关于 syncfusion-wpf-pdf-viewer

此技能为 Syncfusion WPF PdfViewer 生成 C# 和 XAML 示例,帮助开发者集成查看器功能,并根据所选目标框架调整项目设置与代码。

主要功能

  1. 01生成 C# 和 XAML 示例
  2. 02涵盖 PDF 查看功能
  3. 03按目标框架调整代码
  4. 04依据功能参考片段生成

适用场景

  1. 01在 WPF 应用中加载 PDF
  2. 02自定义查看器控件和工具栏
  3. 03实现 PDF 批注或打印

安装

复制下面的命令,在终端中运行。

$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.md
references/
annotation.md
commands.md
customize-contextmenu.md
export-image.md
extract-text-from-pdf.md
form-filling.md
handwritten-signature.md
import-export-annotations.md
interaction-mode.md
Load-sample.md
localization.md
magnifying.md
navigation.md
organize-pages.md
pdf-coordinates.md
pdf-layers.md
pdf-pages.md
pdf-rendering.md
print.md
redaction.md
saving-pdf-files.md
searching-text.md
text-extraction-engine.md
text-selection.md
toolbar-items.md

详细介绍

Syncfusion WPF PDFViewer – UI 示例生成器

为用户的项目生成 C# 代码 (默认)

触发关键词:“how to”、“code sample”、“show me”、“example”、“snippet”、“integrate”、“wpf PdfViewer”、“create sample”。

**用途:**生成简洁、可直接使用的 C# 和 XAML 代码片段,供用户在使用 Syncfusion WPF PdfViewer 控件时直接插入其 WPF 应用程序。

工作流:

  1. 使用 references/*.md 文件中提供的代码片段构建 C# 代码。

  2. 生成示例之前,询问用户要将代码插入其 WPF 项目中现有的 XAML 文件,还是创建一个新的 WPF 项目应用程序。

  3. 如果用户选择创建新的 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 包版本、启动代码)。
  4. XAML 生成规则——必须在编写任何 XAML 之前分析参考文件:

    ⚠️ 严格规则——无一例外: 在生成任何 XAML 之前,打开并阅读与所请求功能相关的 references/*.md 文件。 问问自己:“参考文件是否包含此功能的 XAML 标记?”

    • 是 → 参考文件中有 XAML → 仅包含代码片段中显示的准确 XAML 元素。
    • 否 → 参考文件仅包含 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> 子布局。
  5. 仅添加满足用户所请求功能所需的 API。不要包含可选 API 或其他内容。

  6. C# 语言版本兼容性:当目标框架为 .NET Framework(例如 4.6、4.7、4.8)时,默认的 C# 语言版本为 7.3。生成的 C# 代码不得使用任何 C# 8.0 或更高版本的语言功能。具体而言,不要使用:

    • Switch 表达式(x switch { ... })
    • 可空引用类型(string?、#nullable enable、object?)
    • 默认接口实现
    • 范围和索引(^1、1..^1)
    • ??= 空合并赋值运算符 请使用 if/else 或传统的 switch 语句,而不是 switch 表达式。请使用常规空值检查(if (x != null)),而不是可空引用类型语法。

代码参考

所有模板和操作代码片段都位于 references/*.md 中。每个文件都包含一个专门的代码片段或模板,Agent 会在生成示例时组合使用。

文件用途
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将 PDF 页面或页码范围导出为图像(JPG、PNG、TIFF、BMP),并控制尺寸、DPI、纵横比和透明度。
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。

先决条件
  1. 开发环境:Visual Studio 2022 或 Visual Studio Insider 2026(推荐用于 .NET 10)。
  2. NET Framework 4.5+ 或支持 WPF 的 .NET Core/.NET 8+。
  3. Syncfusion WPF NuGet 包:Syncfusion.PdfViewer.WPF
主题 NuGet 包

若要使用 SfSkinManager 为 WPF PdfViewerControl 应用内置主题,请安装与所需主题对应的 NuGet 包:

主题名称所需 NuGet 包
FluentLightSyncfusion.Themes.FluentLight.WPF
FluentDarkSyncfusion.Themes.FluentDark.WPF
MaterialLightSyncfusion.Themes.MaterialLight.WPF
MaterialDarkSyncfusion.Themes.MaterialDark.WPF
MaterialLight3Syncfusion.Themes.MaterialLight3.WPF
MaterialDark3Syncfusion.Themes.MaterialDark3.WPF
Office2019ColorfulSyncfusion.Themes.Office2019Colorful.WPF
Office2019BlackSyncfusion.Themes.Office2019Black.WPF
Office2019WhiteSyncfusion.Themes.Office2019White.WPF
Office2019DarkGraySyncfusion.Themes.Office2019DarkGray.WPF
Windows11LightSyncfusion.Themes.Windows11Light.WPF
Windows11DarkSyncfusion.Themes.Windows11Dark.WPF

注意: 只需安装与用户想要应用的主题对应的 NuGet 包。主题支持需要 Syncfusion.SfSkinManager.WPF,它作为主题包的依赖项一并包含。

参阅:使用 SfSkinManager 应用主题 | WPF PdfViewer 主题

文档

WPF PdfViewer 概述

评论

支持 Markdown