关于 syncfusion-aspnetmvc-pdf-viewer
syncfusion-aspnetmvc-pdf-viewer 是为 ASP.NET MVC 项目生成可直接集成的 PDF Viewer 示例代码的技能。它按需求查找参考文件,并将生成内容限制在已记录的 API 和属性范围内。
主要功能
- 01生成 Razor 与 HTML 示例
- 02按功能路由至参考文件
- 03仅使用文档记录的 API
- 04规定不支持功能的答复
- 05提供设置代码组织指引
适用场景
- 01创建 ASP.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
为用户的项目生成代码 (默认)
触发关键词:“how to”“add pdfviewer”“code sample”“show me”“example”“snippet”“integrate”“component”“create sample”“ASP.NET MVC sample”。
**用途:**生成简洁、可直接复制粘贴的 Razor + HTML 代码(.cshtml),供用户直接集成到 ASP.NET MVC 项目中。
工作流: ⚠️ 严重警告 — 功能支持政策(严格模式):
**基本规则:**只能使用参考文件中明确列出的 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、属性和方法
- **必须:**生成任何代码之前,确认参考文件存在且可以访问
- 阅读与请求功能相关的参考文件:
- 使用
read_file工具读取相关的references/*.md文件 - 确认文件包含方法/属性/事件表
- 确认表格完整且可读
- 使用
- 如果参考文件缺失或无法读取:
- 停止生成代码
- 回复:“此功能的参考文件不可用。请确保
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。每个文件都包含一个专用代码片段或模板,Agent 会在生成示例时将其组合起来。
流程: 始终从 getting-started.md 开始,然后将匹配的功能合并到其中的锚点(PROPS、EVENTS、UI_BUTTONS、HANDLERS)。如果没有匹配的关键词,则仅返回基本示例。
生成代码前的检查清单
- 统计设置属性的数量: 1-3 个?→ 使用内联定义 | 4 个或更多?→ 使用单独的 Razor 代码块
- 组件属性是否足够简单? 是 → 保持内联定义 | 否 → 提取到单独的 Razor 代码块
- 是否已为属性显式设置 Default 值? 是 → 移除 | 否 → 保留
🎯 MVC 设置与配置
| 文件 | 用途 |
|---|---|
| getting-started.md | 最小化 PDF 查看器,包含 documentPath、height 和 width。所有示例的基础模板。 |
| 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,将 PDF 获取为 base64,自定义下载事件,以及设置自定义下载文件名。 |
| printing-and-organizing.md | 打印 PDF(包括页面范围/质量等打印选项和静默打印),处理打印事件,整理页面(概览/调整位置/重新排序/旋转/删除),将页面复制/重复/提取到新文档,并使用页面整理工具栏以编程方式和在移动设备上整理页面。 |
⚙️ 高级功能
| 文件 | 用途 | 用户咨询以下内容时查阅 |
|---|---|---|
| api-methods.md | 以编程方式控制:加载文档、管理表单和批注、提取文本、撤销/重做、导航 API。 | “以编程方式加载 PDF”、“API 方法”、“导出表单数据”、“提取文本”、“撤销/重做”、“以编程方式控制” |
| events.md | PDFViewer 事件完整列表(文档加载、下载、批注、表单、搜索、导航)。 | “事件列表”、“所有事件”、“可用事件”、“事件参考”、“事件处理程序” |