关于 syncfusion-flutter-pdf
面向 Flutter 开发者的技能,指导使用 Syncfusion Flutter PDF 库生成 Dart 代码,以创建、编辑和保存 PDF。它仅依据参考文件中的 API,并按移动端、Web 和桌面平台采用相应的保存方式。
主要功能
- 01创建、加载、编辑和保存 PDF
- 02依据参考资料生成 Dart 代码片段
- 03支持文本、图像、表格和表单
- 04添加链接、批注和数字签名
- 05提取文本并管理加密
适用场景
- 01为 Flutter 应用生成 PDF 代码
- 02向 PDF 添加表格、表单或签名
- 03从现有 PDF 提取文本
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ syncfusion/ document-sdk-skills --skill syncfusion-flutter-pdf安装后在 Claude Code 中输入/syncfusion-flutter-pdf确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdreferences/annotations.mdattachments.mdbookmarks.mddigital-signature.mddocument-structure.mdencryption.mdflow-layout.mdforms.mdheader-footer.mdhyperlinks.mdimages.mdlayers.mdlists.mdpages.mdpdf-conformance.mdpdf-templates.mdshapes.mdtables.mdtext-extraction.mdtext.mdwatermarks.md详细介绍
使用 Syncfusion Flutter PDF 库处理 PDF 文档
使用 Syncfusion Flutter PDF 库创建、编辑和保存 PDF 文档(.pdf)。 此技能支持为面向移动端、Web 和桌面平台的 Flutter 项目生成 Dart 代码片段。
为用户的 Flutter 项目生成 Dart 代码 (默认)
触发关键词:“告诉我如何”“如何”“我该如何”“怎么做”“提供代码”“提供示例”“举个例子”“演示”“代码片段”“示例代码”“示例”“样例”“给我”“展示”“main.dart”“示例代码”“为……生成代码”“代码片段”。
工作流:
第 1 步 — 检测平台并建议正确的软件包
- 检查工作区中的项目文件(
pubspec.yaml、main.dart等),以确定 Flutter 的目标平台(移动端、Web、桌面)。 - 在生成任何代码之前,告知用户将
syncfusion_flutter_pdf添加到pubspec.yaml。
第 2 步 — 仅根据参考文件生成代码
请勿臆造、猜测或建议参考文件中未明确列出的任何 API、类、方法或属性。
- 阅读与所请求功能相关的
references/*.md文件 - 严格依据这些文件中的 API 和代码片段编写 Dart 代码
- 针对目标平台使用正确的保存/启动方式:
- 移动端 →
getApplicationSupportDirectory()+OpenFile.open() - 桌面端 →
getApplicationSupportDirectory()+OpenFile.open() - Web → base64 + JavaScript 下载或
web软件包方式
- 移动端 →
- 请勿创建或运行任何独立的 Dart 脚本
代码参考
所有代码片段都在 references/ 文件夹中:
| 文件 | 内容 |
|---|---|
| document-structure.md | 创建/加载文档、页面设置、方向、边距、分节、保存到文件/流、增量更新、压缩、打开加密 PDF、释放资源 |
| pages.md | 添加/插入/移除/旋转页面、获取页数、设置边距、使用不同页面设置的分节、获取客户端尺寸 |
| flow-layout.md | 使用 PdfLayoutResult 链接元素、跨页分页文本、PdfLayoutFormat 选项 |
| text.md | 绘制文本(drawString、PdfTextElement)、标准/TrueType/CJK 字体、RTL 文本、多列文本、画笔和画刷 |
| images.md | 插入 JPEG/PNG 图像(PdfBitmap)、应用透明度和旋转、从网络 URL 插入 |
| shapes.md | 绘制多边形、直线、曲线、路径、矩形、扇形、弧线、贝塞尔曲线、椭圆 |
| tables.md | 创建 PdfGrid、添加列/表头/行、自定义单元格/行/列、内置样式、分页、多个表格 |
| lists.md | 有序列表(PdfOrderedList)、无序列表(PdfUnorderedList)、子列表 |
| header-footer.md | 添加页眉和页脚(PdfPageTemplateElement)、自动字段(页码、页数、日期/时间)、复合字段 |
| bookmarks.md | 添加/插入/移除/修改书签(PdfBookmark)、子书签、目标位置、颜色、文本样式 |
| annotations.md | 矩形、椭圆、直线、多边形、URI、文档链接、文本网页链接、文本标记、弹出式注释;扁平化、修改、移除注释;导入/导出 FDF/XFDF/JSON |
| hyperlinks.md | 网页导航链接(PdfTextWebLink)、URI 注释、文档内部导航(PdfDocumentLinkAnnotation)、目标位置模式 |
| watermarks.md | 设置带透明度和旋转效果的文本及图像水印,通过 PdfPageTemplateElement 印章应用于所有页面 |
| pdf-templates.md | 创建 PdfTemplate、在页面上绘制模板、使用 createTemplate 将页面提取为模板、使用 PdfPageTemplateElement 印章叠加层 |
| digital-signature.md | PdfSignatureField、PdfCertificate、签署新建/现有 PDF、签名外观、外部签名者、多个签名、时间戳、LTV |
| text-extraction.md | 提取文本(全文/页面/范围)、提取带边界和字体信息的文本行/单词/字符、使用 MatchedItem 查找文本 |
| pdf-conformance.md | PDF/A-1b、PDF/A-2b、PDF/A-3b 一致性级别、嵌入字体要求、PDF/A-3b 的附件关系 |
| attachments.md | 添加/移除文件附件(PdfAttachment)、从 base64 附加、提取并保存到磁盘、PDF/A-3b 附件元数据 |
| layers.md | 添加/切换/移除图层(PdfPageLayer)、嵌套图层(PdfLayer)、可见性控制、扁平化图层 |
| forms.md | AcroForm 字段:文本框、组合框、单选按钮、列表框、复选框、签名、按钮;填写/修改/扁平化/移除字段;导入/导出 FDF/XFDF/JSON/XML |
| encryption.md | RC4 和 AES 加密、用户/所有者密码、权限(打印、复制、编辑)、保护现有 PDF、更改/移除密码 |
规则
- 输出文件放在
./output/目录中 - 临时
.dart脚本必须在{skill-root}/flutter/pdf/scripts/中创建——绝不能放在工作区根目录或客户的scripts/文件夹中 - 执行后绝不能留下临时
.dart文件 - 保存后始终调用
document.dispose() - PDF 中的所有单位均为点(而非像素)
- 使用
PdfLayoutResult链接元素,避免内容重叠
前置条件
- 已安装 Flutter SDK
- 添加到
pubspec.yaml中:dependencies: syncfusion_flutter_pdf: ^33.1.44 - 使用 pub.dev 或 Syncfusion 文档中的最新兼容软件包版本。
- 运行:
flutter pub get - 在 Dart 代码中导入:
import 'package:syncfusion_flutter_pdf/pdf.dart';
评论
支持 Markdown