在 Power Automate 中将 SharePoint 列表转换为已填写和签名的 PDF!

填写PDF表格 是一个 动力自动化 该操作接受一个可填写的 PDF 模板和一个 JSON 有效负载,并返回一个所有字段都已预先填充的 PDF 文件。添加 PDF签名 和 SharePoint 创建项目时 触发后,整个发票生成流程将实现无人值守:同事添加一行,Power Automate 生成签名 PDF,Dropbox 将其存储在带有时间戳的文件名下。
发票式工作流程中最令人头疼的部分不是PDF文件,而是…… 中间的手动步骤有人打开模板,从电子表格的一行中重新输入八个字段,打印、签名、扫描并上传。每个字段都可能导致客户姓名拼写错误或金额少一个零。本教程用七个 Power Automate 操作取代了这些繁琐的步骤:SharePoint 触发,Dropbox 提供模板和签名图片,PDF4me 填写表单并添加签名,Dropbox 存储最终文件。提供真实屏幕截图、精确的“撰写”表达式、SharePoint 架构和已签名发票示例供下载。
SharePoint 列表触发器会在每条新发票行出现时触发。Dropbox 提供可填写的 PDF 模板以及 PNG 签名。Compose 会根据该行构建 JSON 有效负载。PDF4me 的“填写 PDF 表单”功能会将数据合并到模板中。PDF4me 的“PDF - 签名”功能会添加签名戳。Dropbox 会将签名文件保存为带有时间戳和发票编号的文件名。
为什么这个流程的每个部分都是精心设计的?
您将获得
一个 Power Automate 流,监视 SharePoint 列表,并针对每一行新内容生成一份已填写并签名的 PDF 发票,名称为 Signed_INV-YYYY-NNN_<ticks>.pdf 文件保存在您的 Dropbox 输出文件夹中。签名图章位于第一页的右下角。模板的其余部分将完全保留,与您的设计师最初设计一致。
你需要什么
- SharePoint 网站 有一个名为
New Customer Invoices(或重命名以匹配您的名称)包含以下列:Title,CustomerName,Email,Phone(均为单行文本)InvoiceNumber(单行文本,例如:INV-2026-207)InvoiceDate(日期),Address(单行文字)Amount(数字)
- PDF模板 使用与 JSON 键匹配的命名表单字段(
customerName,email,phone,invoiceNumber,invoiceDate,address,amount)。 - PNG 签名 背景透明。
- PDF4me 连接 在 Power Automate 中。 获取您的 API 密钥 如果这是你的第一个流程。
- Dropbox 连接 在 Power Automate 中(SharePoint / OneDrive / 任何其他存储都可以完美替代)。
流程概览
七个 Power Automate 操作,顺序执行。没有并行分支,没有“应用到每个对象”,也没有变量。每个步骤的输出直接传递给下一个步骤。

SharePoint 列表本身就是一份合同。添加到此列表中的每一行都会变成一份已签署的 PDF 文件。

当 SharePoint 添加行时,如何触发该流程?
目前为止的流程: 仅触发。
- 添加新的自动化云流程。搜索 SharePoint 并挑选 创建物品时。
- 放 网站地址 到您的 SharePoint 站点(如图所示):
PDF4me Support在https://ynoox1.sharepoint.com/sites/PDF4meSupport)。 - 放 列表名称 到
New Customer Invoices。 - 离开 高级参数 均采用默认设置。触发器会在添加行时立即触发,无需调整轮询计划。

提示。 将 SharePoint 中的列表列重命名为与 PDF 字段名称匹配(
customerName,
如何将 PDF 模板和签名传递到流程中?
目前为止的流程: 触发 → 获取文件内容 → 获取文件内容 1。
Dropbox 里有两个读取文件,一个是 PDF 模板,一个是签名 PNG 文件。它们都放在同一个文件夹里,这样流程创建者以后就不用到处找了。
- 添加 Dropbox - 使用路径获取文件内容。 文件:
/blog data/fill a pdf/sample_fill_form.pdf。 - 在下面 高级参数, 放 推断内容类型 到 是的如果没有这个措施,PDF二进制文件在传输过程中可能会损坏。

- 再加一个 Dropbox - 使用路径获取文件内容. 这就是 Power Automate 会自动将其重命名的地方。
Get file content 1。 - 文件:
/blog data/fill a pdf/signature.png。 - 相同的 推断内容类型 是 切换。

如何从 SharePoint 行构建 JSON 有效负载?
目前为止的流程: 触发器 → 获取模板 → 获取签名 → 撰写。
“构建”步骤是“组装 JSON”。它将触发字段(动态内容)放入一个 PDF4me 填写 PDF 表单工具可以识别的 JSON 对象中。
- 添加 撰写。
- 点击 输入粘贴下面的 JSON 框架,然后将右侧的每个值替换为动态内容选择器中对应的 SharePoint 列(以便每个字段都位于……)。 引号之间):
{
"customerName": "CustomerName",
"email": "Email",
"phone": "Phone",
"invoiceNumber": "InvoiceNumber",
"invoiceDate": "InvoiceDate",
"address": "Address",
"amount": "Amount"
}

有效载荷参考表:
| JSON 密钥 | 来源(SharePoint 列) | 类型 | 笔记 |
|---|---|---|---|
customerName | CustomerName | 文本 | 直接映射。 |
email | Email | 文本 | 任何字符串均可,此步骤不进行格式检查。 |
phone | Phone | 文本 | 请以文本形式保留。请勿强制输入号码,电话分机号和连字符都很重要。 |
invoiceNumber | InvoiceNumber | 文本 | 输出文件名中也重复使用了该名称。 |
invoiceDate | InvoiceDate | 日期 | Pill 位于引号内,因此 Compose 将其作为文本发出,而不是 ISO Date 对象。 |
address | Address | 文本 | 单行。 |
amount | Amount | 数字 | 药丸位于引号内,因此 JSON 接收到的是一个带引号的值。 |
提示。 永远不要服用动态内容药丸 两段引文之间 每个 JSON 值。放在引号外的参数会输出原始数字或日期,而未加引号的数字后跟一个
,字符串中间悄无声息地中断了有效载荷。
如何将 JSON 数据填充到 PDF 表单中?
目前为止的流程: 触发 → 获取模板 → 获取签名 → 撰写 → 填写PDF表格。
这是 PDF4me 的第一个操作。它接收模板 PDF 和 JSON 有效负载,并将每个 JSON 值按名称写入匹配的表单字段。
- 添加 PDF4me PDF 连接器,动作 填写PDF表格。
- 模板文件数据动态内容 获取文件内容 → 文件内容 (模板 PDF 二进制文件)。
- 模板文件名:
sample_fill_form.pdf(或者无论文件名是什么)。 - JSON 数据动态内容 输出 从“编写”步骤开始。
- 保持 PDF 模板可编辑: 不 (这样会在填写完成后将表单展平,因此收件人无法取消填写字段)。

提示。 如果您希望收件人稍后能够编辑特定字段(例如,添加备注),请翻转 保持 PDF 模板可编辑 到 是的已填写的值仍然存在,只有字段锁定状态发生了变化。
如何使用 PDF-Sign 添加签名图章?
目前为止的流程: 触发 → 获取模板 → 获取签名 → 撰写 → 填写 PDF 表单 → PDF签名。
PDF - 签名功能会将您的签名 PNG 图像以您选择的任何不透明度叠加到已填写的 PDF 文件中,位置固定。
- 添加 PDF4me PDF 连接器,动作 PDF签名。
- PDF 文件内容动态内容 填写PDF表格 → 身体 (已填充的 PDF 二进制文件)。
- PDF 文件名: 表达
concat(triggerBody()?['InvoiceNumber'], '.pdf'),它命名了该文件INV-2026-207.pdf因此,下游日志会显示发票号码。 - 签名文件内容动态内容 获取文件内容 1 → 身体 (签名PNG)。
- 标志图像文件名:
signature.png。 - 水平对齐: 正确的。 垂直对齐: 底部。
- 页:
1(仅限第 1 页,设置为1,3第 1 页和第 3 页填写,或者每页留空)。 - 高度:
20。 宽度:50。 水平边距:15。 垂直边距:15。 不透明度:100。

职位参考:
| 场地 | 它控制着什么 | 例子 |
|---|---|---|
| 水平对齐 | 页面的哪一边 | left, center, right |
| 垂直对齐 | 上/中/下腰带 | top, center, bottom |
| 页 | 哪些页码会被盖章 | 1 (仅限第一个) 1,3 (第一页和第三页),空白(每页) |
| 高度/宽度 | PDF 单位的签名框尺寸 | 请匹配您的 signature.png 的宽高比,否则会拉伸。 |
| 水平/垂直边距 | 与对齐边缘的间隙 | 15 = 距右边缘 15 个单位(给定右对齐) |
| 不透明度 | 0到100 | 100 完全不透明; 70 营造一种类似水印的感觉 |
如何将签名后的PDF文件保存回Dropbox?
目前为止的流程: 触发 → 获取模板 → 获取签名 → 撰写 → 填写 PDF 表单 → PDF 签名 → 创建文件。
最后一步。生成的 PDF 文件会保存到一个专门的输出文件夹中,文件名会确保两次运行不会产生冲突。
- 添加 Dropbox - 创建文件。
- 文件夹路径:
/blog data/fill a pdf/output。 - 文件名: 表达
concat('Signed_', string(triggerBody()?['InvoiceNumber']), '_', string(ticks(utcNow())), '.pdf')产生诸如此类的名称Signed_INV-2026-207_639235162128009339.pdf。 - 文件内容动态内容 PDF签名 → 身体 (已签名的 PDF 二进制文件)。

提示。 用 Dropbox 替换 SharePoint - 创建文件 或者 OneDrive - 创建文件 无需修改任何其他步骤。PDF 二进制文件保持不变;只有存储适配器发生变化。
运行流程并验证结果
/博客数据/填写PDF/输出 获得 Signed_INV-2026-207_639235162128009339.pdf打开它:八个字段都已填写完毕,签名位于第一页右下角。这就是本文顶部链接的示例。无需重新构建即可添加的常见变体
常见问题
如何使用 Power Automate 填写 PDF 表单?
添加 PDF4me 填写 PDF 表格 在读取 PDF 模板(Dropbox/SharePoint/OneDrive 获取文件内容)和使用触发字段构建 JSON 有效负载的“撰写”步骤之后,执行以下操作:将模板文件数据映射到 PDF 二进制文件,将 JSON 数据映射到“撰写”输出。JSON 键必须与模板中的表单字段名称完全匹配。
Power Automate 可以自动填写 PDF 表单吗?
是的,安装 PDF 连接器后,只需一次连接器操作即可完成。Power Automate 本身无法直接写入可填写的 PDF 文件,但是…… PDF4me 填写 PDF 表格 该操作通过您使用 Compose 构建的 JSON 有效负载或来自 SharePoint / Excel 行,一步完成整个填充和展平过程。
如何自动填充PDF表单字段?
触发数据源(SharePoint 列表、Excel 行、表单提交),构建一个 JSON 对象,其键与 PDF 字段名称匹配,然后将该 JSON 对象和模板 PDF 一起传递给 PDF4me 填写 PDF 表格该操作返回相同的 PDF 文件,其中所有命名字段均已填充。 保持 PDF 模板可编辑 到 不 锁定这些值,防止收件人取消填写。
如何使用 Power Automate 从 SharePoint 列表项创建 PDF?
使用 创建物品时 作为触发器,然后执行“获取文件内容”步骤加载 PDF 模板,再执行“撰写”步骤将该行转换为 JSON 格式。 PDF4me 填写 PDF 表格 将它们合并。输出结果是一个已填写的 PDF 文件,您可以将其通过电子邮件发送、上传到 SharePoint/OneDrive/Dropbox,或将其路由到审批流程。这篇博客正是基于此模式构建的,并在其上添加了签名印章。
如何在 Power Automate 中自动签署 PDF 文件?
添加 PDF4me PDF - 签名 在任何生成 PDF 二进制文件的步骤之后,将 PDF 文件内容映射到已填充的 PDF,将签名文件内容映射到 PNG 签名,并设置对齐方式(右对齐/下对齐)、大小(高度/宽度)、边距和不透明度。“PDF - Sign”会将图像印章添加到您列出的页面上。将“页面”留空即可在所有页面上签名。
故障排除
下一步
上面的模式是从 SharePoint 行到已签名、已存储的 PDF 的最短免手动路径,而中间的两个 PDF4me 操作是您无法直接从 Microsoft 购买的唯一组件。
参考
- SharePoint 创建项目时触发引用 在 Microsoft Learn 上
- Power Automate 组合操作和表达式功能 在 Microsoft Learn 上
- PDF 表单字段命名指南 Adobe Acrobat 帮助
- Dropbox 创建文件连接器 在 Microsoft Learn 上