
如何用 pdf-viewer 插件交互式填写可填写的 PDF 表单并处理无字段名的表单【免费下载链接】knowledge-work-pluginsOpen source repository of plugins primarily intended for knowledge workers to use in Claude Cowork项目地址: https://gitcode.com/GitHub_Trending/kn/knowledge-work-plugins在 Claude Cowork 中处理一份可填写的 PDF 表单时纯程序化填表工具通常只返回一条成功消息你无法确认每个值是否落进了正确的框里遇到字段名是Text1、Field_7这种机器命名或字段元数据里根本没有可读名字的表单时问题更明显。knowledge-work-plugins 仓库中的 pdf-viewer 插件提供了一个本地交互式 PDF 查看器填表时每个字段都有实时视觉反馈填错可以直接在查看器里改。这篇文章覆盖两条路径字段名清晰的表单用一次参数设置让用户在查看器打开前直接填写字段名晦涩或无字段名的表单通过截图对照页面上印刷的标签来识别字段再按字段名回填。完成本文需要Node.js 18插件使用的本地 MCP 服务器modelcontextprotocol/server-pdf会通过npx在本地自动启动无需 API key只有从 arXiv 等远程地址加载 PDF 时才需要网络一份可填写的 PDF来源可以是本地文件、arXiv 的/abs/URL自动转换为 PDF、或任意直接指向 PDF 的 HTTPS 链接用 PDF 链接而不是文章落地页。入口命令是/pdf-viewer:fill-form [path-or-url]见 fill-form 命令文档。打开表单display_pdf 与 viewUUID无论走哪条填表路径第一步都是用display_pdf工具把 PDF 打开进交互查看器url本地文件路径或 HTTPS URLpage初始页码可选默认 1elicit_form_inputs设为true时服务器先检测表单字段并提示用户填值之后才显示查看器。两个返回值贯穿整个填表流程viewUUID——后续每次interact调用都必须携带它。注意display_pdf对同一文档只应调用一次重复调用会创建另一个独立的查看器实例用新 UUID 发的interact指令不会到达用户正在看的那个窗口。formFields——如果 PDF 有可填写字段返回每个字段的 name、type、page 和 bounding box。这是后面识别字段和定位坐标的依据。如果手头没有路径或 URL先调用list_pdfs无参数列出可用的本地 PDF 和允许的本地目录见 open 命令文档。路径 A字段名清晰的表单对于字段名本身可读、结构简单的表单不需要截图对照直接用用户驱动的方式{ url: W9.pdf, elicit_form_inputs: true }即调用display_pdf并带上elicit_form_inputs: true。服务器检测到表单字段后会在查看器打开之前提示用户逐字段输入值随后展示已填充的 PDF。这条路径最短适合字段名就是业务含义如name、ssn的表单。路径 B字段名晦涩或无字段名的表单很多真实世界的 PDF 表单字段元数据里是Text1、Field_7这类机器命名或者根本没有名字真正的标签Date of Birth、SSN是印在渲染页面字段旁边的不在字段元数据里。这种情况按以下顺序操作摘自 fill-form 命令文档 与 view-pdf 技能说明调用display_pdf不带elicit_form_inputs检查返回的formFields拿到每个字段的名称、类型、所在页和 bounding box。对含字段的每一页调用interact→get_screenshot在截图上把每个 bounding box 和它旁边的印刷标签对应起来弄清每个字段实际是什么。对每个字段取值的两种来源从对话上下文中已有的信息推断姓名、日期、邮箱等或向用户提问——提问时用视觉标签描述字段例如第 1 页 Date of Birth 旁边的框而不是用f1_2这种机器名。调用interact→fill_form用字段名批量回填{ action: fill_form, fields: [ { name: f1_1, value: 用户提供的值如姓名 }, { name: c1_1, value: true } ] }上面示例中的f1_1、c1_1沿用文档 W-9 示例的字段名f1_1对应 Name 字段c1_1是 Individual 复选框实际使用时把name替换为当前 PDFformFields返回的真实字段名value替换为用户提供的值。复选框/单选按钮的取值是true/false或选项字符串。再次interact→get_screenshot截取每个已填写的页面。把截图给用户确认用户可以直接在查看器中编辑或清空任意字段也可以要求你用新的值重新fill_form。文档给出的 W-9 示例对话展示了这条路径的完整形态display_pdf返回f1_1、f1_2、f1_3、c1_1等晦涩字段名 → 截图第 1 页发现f1_1在 Name 旁、f1_2是 Business name、c1_1是 Individual 复选框 → 向用户询问 TIN 和 business address →fill_formget_screenshot展示结果。验证填写结果与导出验证方式是视觉的而不是日志每次批量interact指令都以get_screenshot收尾用截图确认值落进了正确的框用户对照截图确认或直接在查看器中拖拽、编辑、清空字段确认后从查看器工具栏下载填好的 PDF。interact支持在一个调用里通过commands数组批量下发多条指令按顺序执行所以回填 逐页截图可以合并成一次调用完成。边界与限制签名栏单独处理签名字段通常与文本字段分离。先用fill_form填完文本再交给/pdf-viewer:sign放置签名图片该命令需要签名图片路径用image类型标注定位它放置的是视觉签名图片不是经过认证或加密的数字签名法律效力的电子签名需使用专门的签名服务。签名命令的完整流程见 sign 命令文档。不做摘要与文本抽取只想让 Claude 总结 PDF 内容或抽取第 5 页文字时不要打开查看器直接用原生 Read 工具读 PDF 路径查看器面向的是交互式、可视化的协作流程。只能操作现有 PDF该插件不创建 PDF也不提供认证数字签名。插件的整体能力、命令清单与要求见 pdf-viewer READMEMCP 服务器配置见 CONNECTORS.md。【免费下载链接】knowledge-work-pluginsOpen source repository of plugins primarily intended for knowledge workers to use in Claude Cowork项目地址: https://gitcode.com/GitHub_Trending/kn/knowledge-work-plugins创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考