关于 syncfusion-javascript-pdf
使用 Syncfusion JavaScript PDF 库创建、读取和修改 PDF 的技能,面向 JavaScript 及相关应用框架的开发者。除文档生成与编辑外,还涵盖交互功能、内容提取和安全处理。
主要功能
- 01用文本、图像和表格创建 PDF
- 02编辑并提取 PDF 内容
- 03添加表单、批注和链接
- 04合并、拆分和添加水印
- 05加密并数字签署 PDF
适用场景
- 01生成发票或报告
- 02填写并扁平化 PDF 表单
- 03从 PDF 提取文本或图像
- 04合并多个 PDF 文件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ syncfusion/ document-sdk-skills --skill syncfusion-javascript-pdf安装后在 Claude Code 中输入/syncfusion-javascript-pdf确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdreferences/annotations.mdbookmarks.mdcontent-redaction.mddigital-signatures.mddocument-settings.mdencryption.mdform-fields.mdgetting-started.mdhyperlinks.mdimage-extraction.mdimages.mdlayers.mdlists.mdmerge-documents.mdpdf-pages.mdshapes.mdsplit-documents.mdtables.mdtemplates.mdtext-extraction.mdtext-rendering.mdwatermarks.md详细介绍
处理 PDF 文档
一项全面的技能,可使用 Syncfusion JavaScript PDF 库以编程方式创建、读取和操作 PDF 文档。该库可与 TypeScript、JavaScript、Angular、React、Vue、ASP.NET Core 和 ASP.NET MVC 应用无缝集成。
何时使用此技能
当用户需要以下操作时,请使用此技能:
- 创建 PDF 文档:从头开始创建,包含文本、图像、形状、表格、列表和其他图形元素
- 操作现有 PDF:添加内容、修改属性或提取数据
- 添加交互功能:例如表单、批注、书签和超链接
- 保护 PDF:使用密码保护、RC4/AES 加密、权限和数字签名
- 合并或拆分 PDF 文档,以适用于文档管理工作流
- 提取内容:包括从现有 PDF 中提取文本(支持搜索和边界信息)和图像
- 添加水印:添加文本或图像水印,用于品牌标识或安全防护
- 管理文档信息:包括标题、作者、主题、关键字和日期
- 使用 PDF 图层:处理复杂的文档结构
- 实现模板:确保文档生成格式一致
平台支持: TypeScript、JavaScript、Angular、React、Vue、ASP.NET Core、ASP.NET MVC
库概览
Syncfusion JavaScript PDF 库(@syncfusion/ej2-pdf)是一个功能强大、性能出色的类库,可用于:
- 无需 Adobe Acrobat 即可从头创建 PDF 文档
- 加载、编辑和保存现有 PDF 文件
- 打开受密码保护的 PDF 文档
- 添加文本、图像、形状和图形元素
- 交互组件(书签、批注、表单字段)
- 文档操作(合并、拆分、扁平化)
- 内容提取(文本、图像)
- 安全功能(数字签名、LTV、验证、加密、涂黑)
主要类:
PdfDocument- 主文档对象PdfPage- 单个页面PdfGraphics- 内容绘制表面PdfGrid- 表格生成和布局PdfFont、PdfBitmap、PdfBrush- 内容元素
文档与导航指南
入门
📄 阅读: references/getting-started.md
当用户需要以下操作时,请参考此文档:
- 安装
@syncfusion/ej2-pdf软件包 - 为 TypeScript、JavaScript、Angular、React、Vue 或 ASP.NET 配置库
- 了解依赖项和要求
- 创建第一个 PDF 文档
- 了解基本的保存和导出操作
文档创建与设置
📄 阅读: references/document-settings.md
以下情况请参考此文档:
- 创建
PdfDocument实例 - 配置页面设置(大小、方向、边距、旋转)
- 设置文档属性(标题、作者、主题、关键字、创建日期/修改日期)
- 启用增量更新
- 扁平化批注和表单字段
📄 阅读: references/pdf-pages.md
以下情况请参考此文档:
- 向文档添加页面
- 页面操作和导航
- 使用不同设置的页面分节
- 管理页面集合
内容元素
📄 阅读: references/text-rendering.md
添加文本时请参阅此参考:
- 使用
drawString()方法绘制文本 - 字体类型(Standard、TrueType、CJK 字体)
- 字体样式、大小和格式
- 文本布局和换行
- 图形状态管理(保存/恢复)
- 文本定位和边界
📄 阅读: references/images.md
进行图像操作时请参阅此参考:
- 添加 JPEG 和 PNG 图像
- 使用
PdfBitmap类 - 图像定位和尺寸调整
- 在现有文档中插入图像
- Base64 和 Uint8Array 图像格式
- 裁剪和图形变换
📄 阅读: references/shapes.md
绘制形状时请参阅此参考:
- 矩形、圆形、椭圆和线条
- 复杂路径和曲线
- 用于样式设置的画笔和填充刷
- 填充和描边操作
- 图形变换(平移、旋转、缩放)
📄 阅读: references/tables.md
创建和设置表格格式时请参阅此参考:
- 使用
PdfGrid从数据源创建表格,或手动定义行和列 - 表格和单元格样式、自定义边框、内边距和内置主题(
PdfGridBuiltinStyle) - 行和列自定义、文本对齐和格式设置
- 分页、重复表头行(
repeatHeader)和防止行拆分(fitElement) - 使用
PdfGridLayoutResult动态定位多个表格 - 合并单元格(
rowSpan、columnSpan)、单元格图像、背景图像和超链接 - 嵌套网格、无边框表格、更新数据源和水平溢出模式
📄 阅读: references/lists.md
创建列表时请参阅此参考:
- 有序和无序列表
- 嵌套列表结构
- 自定义列表标记和图像标记(
PdfImageMarker) - 列表格式选项和分页
📄 阅读: references/templates.md
创建可复用内容时请参阅此参考:
- 创建页面模板
- 动态内容盖印
- 模板定位和布局
- 在多个页面中复用内容
交互功能
📄 阅读: references/annotations.md
添加注释时请参阅此参考:
- 注释类型(弹出、自由文本、线条、形状、墨迹、文本标记)
- 云状边框样式自定义(
borderEffect、PdfBorderEffectStyle) - 添加、配置和修改注释
- 注释属性和外观
- 将注释扁平化为静态内容
📄 阅读: references/bookmarks.md
设置导航时请参阅此参考:
- 创建文档书签
- 嵌套书签层级
- 书签导航和链接
- 修改现有书签
📄 阅读: references/form-fields.md
创建交互式表单时请参阅此参考:
- 表单字段类型(文本、复选框、单选按钮、下拉列表、按钮)
- 添加和配置表单字段
- 字段验证和属性
- 以编程方式填写表单数据
- 导入/导出表单数据
- 扁平化表单以移除交互功能
📄 阅读: references/hyperlinks.md
添加链接时请参阅此参考:
- 添加网页超链接
- 文档内部导航链接
- 链接注释和外观
- 导航操作
文档操作
📄 阅读: references/merge-documents.md
合并时请参考此文档:
- 合并多个 PDF 文件
- 从其他文档导入页面
- 合并时保留书签
- 合并工作流
📄 阅读: references/split-documents.md
拆分时请参考此文档:
- 按页码范围拆分 PDF
- 提取特定页面
- 根据页面创建单独的文档
📄 阅读: references/watermarks.md
添加水印时请参考此文档:
- 文本水印
- 图像水印
- 水印位置和布局
- 不透明度和旋转设置
📄 阅读: references/layers.md
管理图层时请参考此文档:
- 创建 PDF 图层(可选内容组)
- 控制图层可见性
- 向图层添加内容
- 移除或扁平化图层
数据提取
📄 阅读: references/text-extraction.md
提取文本时请参考此文档:
- 同步和异步文本提取(
extractTextSync、extractText) - 按页码范围提取文本
- 基于布局和边界的提取(
extractTextLinesSync、extractTextLines) - 查找文本和边界矩形(
findTextSync、findText) - 跨页面搜索多个文本值,并获取匹配项的坐标
📄 阅读: references/image-extraction.md
提取图像时请参考此文档:
- 从 PDF 文档中提取图像
- 图像数据格式
- 保存提取的图像
- 所需软件包:
@syncfusion/ej2-pdf-data-extract
安全与保护
📄 阅读: references/digital-signatures.md
添加数字签名时请参考此文档:
- 添加数字签名(标准签名和外部签名)
- 基于证书的签名
- 自定义签名外观
- 使用嵌入式 OCSP/CRL 撤销信息进行长期验证(LTV)
- 验证数字签名(单个字段和整个文档)
- 时间戳服务器和证书信任链
📄 阅读: references/encryption.md
加密和保护文档时请参考此文档:
- 使用 RC4(40 位、128 位)和 AES(128 位、256 位 Rev 5 和 Rev 6)加密文档
- 用户密码(用于打开文档)和所有者密码(用于设置权限)
- 文档权限限制(
PdfPermissionFlag)和按位权限检查 - 解密受保护的文档并更改密码
- 检测密码保护并识别密码类型
📄 阅读: references/content-redaction.md
移除内容时请参考此文档:
- 涂黑敏感文本
- 形状涂黑
- 涂黑批注
- 永久移除内容
快速入门示例
import { PdfDocument, PdfPage, PdfGraphics, PdfFont, PdfFontFamily, PdfFontStyle, PdfBrush } from '@syncfusion/ej2-pdf';
// Create a new PDF document
let document: PdfDocument = new PdfDocument();
// Add a page
let page: PdfPage = document.addPage();
// Get graphics from the page
let graphics: PdfGraphics = page.graphics;
// Set font
let font: PdfFont = document.embedFont(PdfFontFamily.helvetica, 20, PdfFontStyle.regular);
// Create a brush
let brush = new PdfBrush({r: 0, g: 0, b: 0});
// Draw text
graphics.drawString('Hello World!', font, {x: 20, y: 20, width: 200, height: 50}, brush);
// Save the document
document.save('output.pdf');
// Clean up
document.destroy();
常见工作流
创建发票或报告
- 使用自定义页面设置创建文档
- 添加公司徽标(图像)
- 添加带格式的页眉文本
- 创建带边框的表格(形状 + 文本)
- 添加总计和页脚
- 保存并下载
从此处开始: references/getting-started.md,然后阅读 references/text-rendering.md 和 references/images.md
填写并扁平化 PDF 表单
- 加载带有表单字段的现有 PDF 文档
- 以编程方式填写表单字段
- 扁平化表单,使其不可编辑
- 保存修改后的文档
从此处开始: references/form-fields.md
从 PDF 中提取数据
- 加载现有 PDF 文档
- 从特定页面提取文本
- 按需提取图像
- 解析并处理提取的数据
从此处开始: references/text-extraction.md 和 references/image-extraction.md
合并多个 PDF
- 创建主文档
- 从源文档导入页面
- 可选:为各个部分添加书签
- 保存合并后的文档
从这里开始: references/merge-documents.md
添加数字签名
- 加载文档或创建新文档
- 使用证书配置数字签名
- 设置签名的外观和位置
- 保存已签名的文档
从这里开始: references/digital-signatures.md
特定平台的注意事项
TypeScript/JavaScript
- 从
@syncfusion/ej2-pdf直接导入 - 适用于浏览器或 Node.js 环境
- 通过浏览器下载或 Node.js fs 保存文件
Angular/React/Vue
- 基于组件进行集成
- 在组件生命周期中处理文件下载
- 管理文档生成的状态
- 在框架服务、钩子或组件方法中执行 Syncfusion PDF 操作,然后将生成的输出绑定到框架的下载或上传流程。
ASP.NET Core/MVC
- 在服务端生成 PDF
- 将 PDF 作为文件结果返回
- 处理内存流
有关 TypeScript、JavaScript、Angular、React、Vue、ASP.NET Core 和 ASP.NET MVC 的特定平台设置详情及软件包示例,请参阅 references/getting-started.md。
关键属性和方法
PdfDocument
addPage(settings?)- 添加新页面getPage(index)- 访问现有页面save(filename)- 保存文档destroy()- 清理资源embedFont()- 加载字体以供使用
PdfGraphics
drawString(text, font, bounds, brush)- 绘制文本drawImage(image, bounds)- 绘制图像drawRectangle(pen, bounds)- 绘制矩形save()- 保存图形状态restore(state)- 恢复图形状态
PdfPage
graphics- 获取绘图区域size- 获取页面尺寸rotation- 获取或设置旋转角度
完整的 API 详情请参阅相应的参考文件。
常见用例
- 自动生成报告 - 创建带有表格(
PdfGrid)、列表、图表和格式化文本的品牌报告 - 创建发票 - 使用包含明细项、合计金额和公司徽标的
PdfGrid生成专业发票 - 生成证书 - 使用模板和自定义文本创建证书
- 填写表单 - 以编程方式填写 PDF 表单,以便批量处理
- 文档组装 - 将多个 PDF 合并为整合后的文档
- 数据提取和搜索 - 提取或查找文本及其边界,并从 PDF 中提取图像以供处理
- 数字签名和验证 - 使用 LTV 应用数字签名,并验证签名信任链
- 文档加密和访问控制 - 使用 AES 256 位加密、密码和权限保护文档
- 添加水印 - 为文档添加品牌或安全水印
- 涂黑 - 在分享前永久移除敏感信息
- 创建归档 - 转换文档,以满足长期存储和合规工作流的需求
故障排除提示
- 缺少字体:确保在使用前通过
document.embedFont()嵌入字体 - 图像未显示:检查图像格式(JPEG/PNG)及数据(base64/Uint8Array)
- 文件过大:使用增量更新或拆分操作
- 内存问题:保存后调用
document.destroy() - 提取功能无法使用:安装
@syncfusion/ej2-pdf-data-extract软件包
相关资源
- 软件包:
@syncfusion/ej2-pdf - 附加组件:
@syncfusion/ej2-pdf-data-extract(用于提取功能) - 依赖项:
@syncfusion/ej2-compression、@syncfusion/ej2-base