“Change the hotel ceiling in this travel policy PDF” 是人们每天向 AI 代理提出的请求,而 PDF 本身是为不可更改而构建的:它是页面描述,而不是文档。可行的答案是转换。使用本地运行的 GroupDocs.Editor MCP 服务器,Claude、Cursor 或 Copilot 将 PDF 转换为可编辑的 HTML,保存为 Word 文档,然后在 Word 副本中进行更改,文本、段落和编号章节保持完整,且没有任何内容被上传:
将 travel-policy.pdf 转换为可编辑的 Word 文档,然后将酒店上限从 160 EUR 改为 175 EUR。
步骤详解请参见文档: 如何使用 AI 代理将 PDF 转换为可编辑的 Word 文档.
“编辑 PDF” 对代理应意味着什么
当被要求编辑 PDF 时,代理可以做三件事,而其中只有一种是诚实的。
它可以假装:读取文本,从自己的副本写出新文档,并称之为“已编辑的 PDF”。布局、字体以及模型未仔细读取的任何内容都会消失,且回复中并未说明这一点。
它可以修补页面:在旧页面上绘制新文本。这对表单中的拼写错误有效,但对任何需要重新排版的内容(如更长的句子或新增的行)则会失败。
或者它可以转换:将 PDF 转换为适合编辑的格式,在该格式中进行更改,然后返回一个可以继续编辑的文档,如果需要,还可以再生成 PDF。这正是该服务器的工作方式,它也会在响应中说明。
调用
以下是使用 GroupDocs.Editor.Mcp 26.10.0 对一个合成的三页旅行政策进行捕获的示例:
-> get_document_info {"file":{"filePath":"travel-policy.pdf"}}
<- { "family": "FixedLayout", "pageCount": 3, "canEdit": true,
"canSaveTo": [ "docx", "doc", "rtf", "odt", "pdf", "md", ... ] }
-> extract_html {"file":{"filePath":"travel-policy.pdf"},"pages":"1-2"}
<- Extracted 'travel-policy.pdf' as editable HTML
Saved to: …/travel-policy_pages1-2.html
Preview (plain text): Travel Policy - Northwind Traders Version 4,
effective 1 March 2026 Scope This policy applies to every employee ...
-> save_from_html {"htmlFile":{"filePath":"travel-policy_pages1-2.html"},
"format":"docx","outputName":"travel-policy.docx"}
<- Saved 'travel-policy_pages1-2.html' as DOCX
Saved to: …/travel-policy.docx
-> replace_text {"file":{"filePath":"travel-policy.docx"},
"find":"160 EUR","replace":"175 EUR"}
<- Replaced 1 occurrence(s) of '160 EUR' in 'travel-policy.docx'
Saved to: …/travel-policy_edited.docx
四次调用:检查、提取、保存为 Word、编辑。最后一步使用的 replace_text 与代理在任何 Word 文件上使用的相同,这正是先进行转换的意义所在。一旦内容成为文档,所有编辑工具都可适用。
此捕获在评估模式下运行,因此只提取了第 1–2 页,Word 副本仅包含这两页。正式授权后,去掉 pages 参数,Word 副本将包含完整的政策。
travel-policy.pdf (3 页,FixedLayout)
|-- extract_html {"pages":"1-2"} ---> travel-policy_pages1-2.html
|-- save_from_html {"format":"docx"} ---> travel-policy.docx
'-- replace_text {"find":"160 EUR","replace":"175 EUR"}
---> travel-policy_edited.docx (可编辑的 Word,已完成更改)
需要再次生成 PDF 吗? save_from_html / replace_text 并使用 "format":"pdf"
选择目标格式
Word 是自然的目标格式,因为它会重新排版:更长的句子会将下一句向下推,而不是覆盖。get_document_info 列出了 PDF 可以保存的所有格式,包括 DOCX、DOC、RTF、ODT、Markdown、EPUB 以及再次保存为 PDF。当“编辑”实际上是“将此放入我的文档仓库”时,Markdown 是不错的选择;当更改必须以相同格式返回时,则选择 PDF,并且在内容已在 Word 中时,使用 "format":"pdf" 的 replace_text 可以在一次调用中完成编辑和转换。
pages 用于指定范围,这样 40 页的报告就不必全部通过代理,只为修正第 3 页的日期。skipImages 在仅关注文本时会省略图像,pagination: true 在布局对每页重要时保持 HTML 中的页面边界。
保真度:预期效果
PDF 记录每个字形的位置,而不是标题或段落的语义。转换会重建结构,对于政策、报告和合同等原生数字文档,它表现良好。在我们的旅行政策中,标题和版本行被恢复为段落,编号章节(“1. Scope”、“2. Booking”、“3. Allowances”)则恢复为编号列表,全部为可编辑文本。它重建的是结构,而不是你的排版风格:PDF 中使用粗体 14 点字体的章节会被恢复为列表项或段落,而不是模板中的 “Heading 2”,因此面向样式化模板的文档可能需要重新应用标题。多列、图像上覆盖文本框或大量设计的复杂布局转换效果较差,扫描的 PDF 完全没有可转换的文本。发送之前请先查看 Word 副本;提取响应中的 HTML 预览是快速检查方式。
何时不应转换
如果 PDF 是已签署的合同、已归档的表单或任何外观必须保持一致的文档,将其转换为 Word 再转换回去会产生不同的文档,尽管看起来很相似。如果你拥有原始来源,请直接在该来源上进行更改。转换适用于那种 PDF 是唯一可获得的副本且需要更改的是内容而非页面的常见情况。
诚实的限制
- 这是一种转换,而不是就地编辑 PDF。结果是一个新的 Word(或其他)文档;PDF 本身未被修改。
- 没有文本层的扫描 PDF 无法通过此方式编辑;没有 OCR 步骤。
- 评估模式每次调用只能编辑两页 PDF。请求
extract_html的"pages":"1-3"会返回第 1、2 页且不报错,单独提取第 3 页是可行的,而replace_text会拒绝处理超过两页的 PDF。每个响应的评估说明都会写明 “only the first 2 PDF pages”,这比实际情况更宽松。每个输出还会以评估横幅行开头。 - 布局密集的页面在转换为可重新排版的格式时会失去部分设计。
常见问题
AI 代理能直接编辑 PDF 吗?
不能诚实地做到。该服务器将 PDF 转换为可编辑文档,在其中进行更改,并且可以再次保存为 PDF。
PDF 会被上传到任何地方吗?
不会。服务器本地运行,转换和编辑都在你的机器上完成。
编辑后我能得到 PDF 吗?
可以。使用 "format": "pdf" 保存或编辑,结果是一个新的 PDF 与 Word 副本并存。
深入了解
- 文档,标准操作指南: 如何使用 AI 代理将 PDF 转换为可编辑的 Word 文档
- 文档中心: GroupDocs.Editor MCP 服务器
- GroupDocs.Editor MCP 产品页面 — 一键安装 VS Code 和 Cursor,提供针对所有其他客户端的配置
- 从这里开始: 为什么 AI 代理不应重写文档来更改三个词
- 相关: 在不更改格式的情况下为 40 份合同中的当事方重命名
- 相关: 使用 AI 代理本地从电子表格填充 Word 表单
- 相关: 编辑单个工作表,保留工作簿:通过 HTML 循环进行精细编辑
- 本地部署与安全模型: AI 文档处理的 3 种架构,以及保持文件在内部网络中的方案
- 问答: GroupDocs Editor 论坛
- 源码: GroupDocs.Editor.Mcp 在 GitHub 上 · NuGet 包