SuperAPI AI 工具集

syncfusion-wpf-pdf-viewer

编程与开发

查看项目

更新于 10-16 01:59

技能介绍

用途

该技能用于引导生成 Syncfusion WPF PdfViewer 控件的示例代码。其目标是在用户现有 WPF 项目或新建项目中,生成干净、可直接使用的 C# 和 XAML 代码片段,用来嵌入、配置和自定义 PDF 查看功能。触发场景包括用户询问如何做、需要代码示例、片段、集成示例,或明确提到 WPF PdfViewer、创建示例等。

主要能力

参考文件覆盖的功能范围较广:

  • 加载与卸载:支持文件路径、流、PdfLoadedDocument(含加密文档),支持异步加载、MVVM 绑定、密码处理、加载指示器定制和主题应用。
  • 导航:基于索引或页码的页面导航、获取页面状态、程序化滚动、缩略图与书签管理、超链接导航事件。
  • 批注:启用、定制和管理各类批注,处理批注事件,程序化选择、隐藏、锁定或删除批注,控制评论面板、作者信息、超链接和选择视觉效果。
  • 打印:静默或对话框打印,配置打印机、页面大小、缩放、方向、页码范围、纸张来源和文档名称,处理打印生命周期事件。
  • 导出图片:将页面或页面范围导出为 JPG、PNG、TIFF、BMP,控制尺寸、DPI、宽高比和透明度。
  • 注释导入导出:使用 FDF 或 XFDF 格式。
  • 文本提取:从页面或整个文档提取文本内容与边界信息。
  • 表单填写:处理 AcroForm 字段,管理表单事件,显示或隐藏图标,导入导出表单数据,程序化添加或编辑字段。
  • PDF 图层:切换可见性、启用或禁用图层、控制图层面板 UI。
  • 密文遮盖:标记区域、自定义外观、处理事件。
  • 坐标:坐标系转换、获取滚动偏移、缩放至指定页面区域。
  • 页面组织:旋转、重排和删除页面。
  • 手写签名:捕获手写签名、自定义外观、处理事件、保存时压平签名。
  • 交互模式:切换文本选择、平移和框选缩放等模式,配置光标设置。
  • 页面外观与交互:定制页面外观、处理页面交互事件、像素坐标转 PDF 点。
  • 保存 PDF:保存已编辑 PDF、检测未保存更改、取消保存、处理保存事件、关闭前提示未保存修改。
  • 缩放:控制缩放级别、适配模式、限制、缩放至矩形、工具栏可见性和缩放变更事件。
  • 文本搜索:搜索并高亮文本、导航结果、获取匹配边界与文本详情、多行搜索、控制搜索 UI 与可用性。
  • 文本选择:检测选择完成、获取选中文本与边界、自定义高亮颜色、启用或禁用选择、程序化清除选择。
  • 本地化:使用 .resx 资源和区域性设置本地化 UI。
  • 右键菜单:添加、移除、隐藏菜单项并处理菜单点击事件。
  • 命令:使用和绑定内置 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(或所选版本)。
  4. 根据选择生成带有正确 <TargetFramework> 的 .csproj,并适配框架相关代码(命名空间导入、NuGet 包版本、启动代码等)。
  5. 只添加满足用户所需功能所必需的 API,不包含可选的额外 API。

XAML 生成规则为强制要求:

  • 在写任何 XAML 前,先打开并阅读相关 references/*.md 文件。
  • 判断参考文件中是否包含该功能的 XAML 标记。
  • 有 XAML:只包含片段中出现的那些确切 XAML 元素。
  • 无 XAML(仅 C#):MainWindow.xaml 必须只包含 <Grid> 内的 syncfusion:PdfViewerControl,不得添加其他内容。
  • 禁止在参考无 XAML 时生成 <Button>、<ComboBox>、<Slider>、<StackPanel>、<TextBlock>、<Grid.RowDefinitions> 或任何未逐字出现在参考片段中的 UI 元素。

已知仅 C# 的功能(不得生成 XAML):墨迹/形状/图章/文本/高亮批注、放大与缩放级别、交互模式、文本选择、PDF 图层、密文遮盖、打印、导出图片、保存 PDF。

已知需要 XAML 的功能:命令(导航/缩放/批注/撤销/重做/打印/卸载按钮使用 Command="{Binding ElementName=..., Path=...}");工具栏项(经典样式需要在 syncfusion:PdfViewerControl 上设置 Style="{StaticResource SyncfusionPdfViewerCustomControlStyle}")。所有 XAML 新增内容必须放在承载 syncfusion:PdfViewerControl 的同一 <Grid> 内,仅当参考片段暗示时才使用 <StackPanel> 或 <Grid> 子布局。

C# 语言版本兼容性:目标框架为 .NET Framework(如 4.6、4.7、4.8)时,默认 C# 语言版本为 7.3,生成的代码不得使用 C# 8.0+ 特性,具体不得使用 switch 表达式、可空引用类型(string?、#nullable enable、object?)、默认接口实现、范围与索引(^1、1..^1)、??= 空合并赋值。应改用 if/else 或传统 switch,使用常规空值检查(if (x != null))。

前提条件

  • 开发环境: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 应用内置主题,需安装对应主题的包,例如 FluentLight 对应 Syncfusion.Themes.FluentLight.WPF,FluentDark 对应 Syncfusion.Themes.FluentDark.WPF,MaterialLight、MaterialDark、MaterialLight3、MaterialDark3、Office2019Colorful、Office2019Black、Office2019White、Office2019DarkGray、Windows11Light、Windows11Dark 同理。仅安装用户所需主题对应的包。主题支持依赖 Syncfusion.SfSkinManager.WPF,该组件作为主题包的依赖项包含在内。

适用场景

适合需要在 WPF 桌面应用中集成 PDF 查看、批注、表单、打印、导出和文档编辑等功能的开发者,尤其适合希望获得符合版本约束、可直接落地的 C#/XAML 示例代码的场景。

限制

资料未提供该技能的收费、价格、平台支持细节或实际使用效果说明,相关事实暂未提供。