PDF 色彩保真工程实践【7】需求交给 GPT,实现交给 Copilot
本文是系列文章的最后一篇。前六篇讲清了做什么和怎么做这一篇跳出代码回答一个问题让这个功能快而准落地的其实是一条双 AI 流水线——我用一句意图加一条关键事实让 GPT 把它扩写成规格书myprompt.md再让 Copilot 按它逐阶段把工程实现出来。先还原真相一条双 AI流水线很多人以为 AI 写出这么一个保留 ICC 的 CMYK 无损插入工程靠的是跟它反复调教对话。真相是三方接力而我只在最前面做了两件小事。第 1 步人——写一句意图外加一条关键事实。我最初的话很短但补了一条自己已经踩出来的领域结论我想用福昕 SDK 向 PDF 插入 CMYK 的 TIFF并保持图像对象仍是 CMYK。我已经确定福昕 SDK 的高级图像导入接口不能保留 ICC Profile。目录下foxitpdfsdk_11_1_win是完整SDK 包……希望在cmykimage下放一个 vs2022 能直接编译运行的完整工程。这条高级接口保不住 ICC的事实就是整份规格书的锚点——后面所有约束都是围着它长出来的。第 2 步GPT——让它把我的意图续写成规格书。我没有自己手写那份长长的myprompt.md而是把上面这段话丢给 GPT只加了一句元指令我想在本地用 GitHub Copilot 实现完整功能已写的要求和提示词如下[上面那段意图]。请续写我后续需要给 AI 的提示词让我能顺序通过 Copilot 完成这样一个代码工程。GPT 就把它扩写成了那份带已确认前提 / 固定技术路线 / 目标对象结构 / API 纪律 /13 个执行阶段 / 22 条完成标准的规格书myprompt.md。第 3 步Copilot——执行规格书。最后我发给 Copilot 的聊天消息几乎只有一句真实原文AIASK.txt再加一句挂载……我希望用 vs2022 打开直接编译运行。请按照myprompt.md中的要求完成任务。聊天负责启动myprompt.md负责定义正确Copilot 负责逐阶段落地。 一句话结论真正的杠杆不在聊天框里反复措辞而是——先用一个 AI 把需求扩写成可执行、可验收的规格书再用另一个 AI 去执行它。你只需守住两个人类环节给出锚定正确性的关键事实以及审阅这份规格。一份好规格书长什么样拆解myprompt.mdmyprompt.md不长但它把容易翻车的地方全部前置说清了。它的骨架可以归纳成六块每一块都直接对应一类返工风险。① 已确认的前提——不让 AI 重新发现你已知的坑规格书开头就钉死了事实省掉 AI 试错福昕高级图像导入接口能插入 CMYK TIFF但不能保留内嵌 ICC插入后只会是/ColorSpace /DeviceCMYK。因此本工程不得使用foxit::common::Image/ImageObject::SetImage()/PDFPage::AddImage()也不需要再测试高级路径。把此路不通写死AI 就不会花半天证明一条你早知道走不通的路。② 固定的技术路线——给出唯一正式管线规格书直接画出从 TIFF 到已验证 PDF 的流水线不留你看着办的空间CMYK TIFF → libtiff 解析标签 → 提取 ICC → 解码 C/M/Y/K 四通道 → 用 PDF Object API 造 ICC Profile Stream → 造 [/ICCBased ref] → 造 Image XObject → 挂到页面 Resources/XObject → 更新 Contents → 保存 → 重新打开验证对象结构技术路线一旦固定后面每个阶段都只是填空而不是选路。③ 目标产物结构——把验收标准画成靶子这是整份规格书最值钱的部分。它不描述我要 CMYK而是直接贴出期望的 PDF 对象长相% ICC Profile Stream间接对象 /N 4 /Alternate /DeviceCMYK /Filter /FlateDecode /Length ... % ColorSpace [/ICCBased 10 0 R] % Image XObject /Type /XObject /Subtype /Image /Width 1253 /Height 865 /ColorSpace [/ICCBased 10 0 R] /BitsPerComponent 8 /Filter /FlateDecode ... % 像素排列 C M Y K | C M Y K | C M Y K ...有了这个靶子做对了没有从主观感觉变成逐字段比对。AI 知道往哪打你也知道怎么验。④ API 使用纪律——根治 SDK 幻觉对付大模型编造不存在的 SDK 接口规格书立了一条硬规矩以foxitpdfsdk_11_1_win为唯一依据用任何 API 前必须在 头文件 / API Reference /Sample 中确认禁止凭经验虚构每个用到的 API 记录命名空间、类名、函数签名、参数、返回值、所在头文件、在哪个 Sample 验证过。找不到就明说缺失不许编近似名字。这条规矩的直接产物就是仓库里那份FOXIT_OBJECT_API.md清单——既堵住幻觉又成了后续维护的活文档。⑤ 分阶段执行计划——把大任务切成可审的闸门规格书把工程拆成 13 个阶段分析 API → 设计方案 → 建工程 → 集成依赖 → TIFF 解码 →ICC 流 → ICCBased → Image XObject → 页面资源 → 内容流 → 控制台 → 验证器 → 编译实测并规定每完成一个阶段先汇报实际检查结果、修改文件、编译状态和未解决问题再进入下一阶段。这就是阶段闸门AI 每次只推进一小步你每一步都能 reviewbug 也永远只藏在最近一个阶段里第 6 篇那三个坑都能精确归位。⑥ 可判定的完成标准——一张能打勾的清单规格书结尾列了 22 条完成标准条条可判定例如ICC Stream/N 4/Alternate /DeviceCMYKImage XObject 使用/ICCBasedTIFF ICC 与 PDF ICC字节一致TIFF CMYK 像素与 PDF 解码数据一致验证器全部 PASS不使用高级图像导入接口不经过 RGB/RGBA/Bitmap。完成不再是感觉而是这张清单是否全部打勾。为什么规格书 短指令比反复对话更好可复现换个人、换台机器把同一份规格书喂给 AI结果趋同聊天记录做不到。可 review规格书是静态文档能像代码一样被评审、被 diff、被沉淀进仓库。成本低规格书由 GPT 续写人只需给出锚定事实并逐条审阅前提与完成标准——同样把哪里会翻车过了一遍却不必从零手写。自带文档任务做完规格书 FOXIT_OBJECT_API.mdTEST_RESULTS.md就是这份工程的说明书。一句话聊天是易失的规格书是可积累的资产。AI 与人的分工一张表说清环节AI 更擅长人必须把关写规格GPT 把一句意图续写成完整规格书给出锚定事实、审阅前提与完成标准方案列候选、比利弊技术取舍与拍板分解提出阶段划分确认粒度与闸门顺序编码Copilot 快速实现、按阶段推进逐阶段 review、合规验证写校验、跑测试、贴证据定义什么算对规律很清晰AI 负责把事做出来GPT 写规格、Copilot 写代码人负责定义什么算做对——给出那条锚定正确性的关键事实并守住验收标准。收尾即用先让 AI 生成规格再让 AI 执行规格第一步用一句元提示词让 GPT或任意强模型把你的需求续写成规格书你只需提供意图和你已知的关键事实我想在本地用 GitHub Copilot 实现一个完整功能。我的意图和已知前提如下 - 目标[一句话要做什么] - 我已确定的关键事实[能锚定正确性的领域结论例如某捷径接口不满足要求] - 环境与产物[SDK/版本、目录、能直接编译运行的工程等]。 请续写我后续需要发给 Copilot 的提示词整理成一份规格书包含已确认前提与禁止事项、 固定的技术路线、目标产物结构验收靶子、API 使用纪律禁止虚构记录出处、 分阶段执行计划每阶段先汇报再推进、逐条可判定的完成标准。第二步把生成的规格书另存为SPEC.md并通读审阅重点核对关键事实和完成标准它的骨架大致如下# 一、已确认的前提不必重新验证 - [已知结论例如某捷径接口无法满足要求]因此禁止使用 [接口名]也不必再测试。 # 二、固定的技术路线 [输入] → [步骤1] → [步骤2] → … → [产物] → [重新打开/复核] # 三、目标产物结构验收靶子 [贴出期望的对象结构 / schema / 输出样例越具体越好] # 四、API 使用纪律 - 以 [SDK 目录/版本] 为唯一依据用任何 API 前在 头文件/手册/Sample 确认 - 禁止虚构每个 API 记录 命名空间/类名/签名/参数/返回值/头文件/验证出处找不到就明说。 # 五、分阶段执行计划 1. [阶段1] 2. [阶段2] … N. [编译实测] - 每阶段完成后先汇报检查结果 改动文件 编译状态 未解决问题再进入下一阶段。 # 六、完成标准逐条可判定 - [ ] [结构性断言如 /N4] - [ ] [字节/数值一致如 SHA-256 相等] - [ ] [自动验收命令全部 PASS]第三步在 Copilot 里只说一句请按照SPEC.md完成任务然后逐阶段验收。四个支柱前提钉死、靶子明确、API 有出处、阶段可审。把它们写进规格书你就能只发一句话然后放心让 AI 逐阶段跑完——每一步都可审、每一条都可验。结语回头看这个 CMYK 无损插入功能真正的源代码其实有两份一份是仓库里的 C另一份是myprompt.md这样的规格书。前者是 Copilot 写的结果后者是 GPT 帮我写的、让结果快而准的原因。而我这个人类只做了两件事给出那条锚定正确性的关键事实以及审阅这份规格。当你学会用一个 AI 把需求扩写成可执行、可验收、可积累的规格再用另一个 AI 去执行它AI 辅助编程就不再是碰运气的对话而是一条可复现的工程流水线。福昕 PDF SDK 的底层对象能力提供了精确控制的地基这条双 AI 流水线提供了高效可靠的过程——这就是本系列想留给你的最后一条经验。完整源码已开源https://github.com/AmyLin2013/pdf-cmyk-image 也欢迎你把这套一个 AI 写规格、另一个 AI 写代码的模式套到自己的下一功能上看看它能不能同样帮你把 AI 用得又快又准。关于本系列 完整源码https://github.com/AmyLin2013/pdf-cmyk-image本系列文章专栏PDF 色彩保真工程实践 关于福昕 PDF SDK可以看开发者站点 版式文档基础软件与智能文档处理能力提供方试用免费。 免费试用申请https://developers.fuxinsoft.cn/free-trial/

相关新闻

PSoC™6开发实战:从双核低功耗到无线安全,全面解析物联网MCU开发

PSoC™6开发实战:从双核低功耗到无线安全,全面解析物联网MCU开发

1. 项目概述:为什么PSoC™6值得你投入时间? 如果你正在寻找一款既能处理复杂应用逻辑,又能高效管理模拟信号和低功耗需求的微控制器,那么Cypress(现为Infineon旗下)的PSoC™6系列绝对是一个绕不开的选项。我…

2026/8/7 11:02:13 阅读更多 →
【CTF-CRYPTO-教学-RSA】第二节:共模攻击(gcd(e1, e2)=1且使用相同模数n时,无需私钥即可恢复明文m)

【CTF-CRYPTO-教学-RSA】第二节:共模攻击(gcd(e1, e2)=1且使用相同模数n时,无需私钥即可恢复明文m)

什么是共模攻击? 当同一个明文 m 被用相同的模数 n、不同的公钥指数 e1 和 e2 加密两次,得到两个密文 c1 和 c2 时,攻击者可以在不知道私钥的情况下恢复出明文 m。 加密原理 假设我们有: 模数 n 15(p3, q5&#x…

2026/8/7 11:01:12 阅读更多 →
MCX N236微控制器开发实战:从时钟配置到低功耗调试全解析

MCX N236微控制器开发实战:从时钟配置到低功耗调试全解析

1. 从MCU选型到MCX N236:为什么是它? 如果你最近在关注微控制器领域,尤其是那些面向工业和消费电子边缘应用的场景,大概率会听到“恩智浦MCX”这个名字。它不是某个单一型号,而是一个全新的、模块化的MCU产品组合系列。…

2026/8/7 11:01:12 阅读更多 →

最新新闻

物理 AI 产业破局:人形机器人路径反思与仿真训练基建化趋势

物理 AI 产业破局:人形机器人路径反思与仿真训练基建化趋势

【摘要】基于 A16Z 对李飞飞及 SanaX 联合创始人李芸竹的访谈核心判断,拆解人形机器人路线的技术本质与阶段错配问题,对比物理 AI 与虚拟 AI 的底层训练逻辑差异,论证仿真训练与数字评测体系的核心价值,梳理机器人产业三阶落地路径…

2026/8/7 11:42:31 阅读更多 →
WorkshopDL完全指南:无需Steam账号,轻松下载千款游戏模组的终极解决方案

WorkshopDL完全指南:无需Steam账号,轻松下载千款游戏模组的终极解决方案

WorkshopDL完全指南:无需Steam账号,轻松下载千款游戏模组的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store…

2026/8/7 11:42:31 阅读更多 →
MarkDownload:一键将网页转换为Markdown的终极免费解决方案

MarkDownload:一键将网页转换为Markdown的终极免费解决方案

MarkDownload:一键将网页转换为Markdown的终极免费解决方案 【免费下载链接】markdownload A Firefox and Google Chrome extension to clip websites and download them into a readable markdown file. 项目地址: https://gitcode.com/gh_mirrors/ma/markdownlo…

2026/8/7 11:42:31 阅读更多 →
抖音无水印下载器终极指南:3分钟上手,小白也能批量下载抖音视频

抖音无水印下载器终极指南:3分钟上手,小白也能批量下载抖音视频

抖音无水印下载器终极指南:3分钟上手,小白也能批量下载抖音视频 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and br…

2026/8/7 11:42:31 阅读更多 →
3个数据库管理场景的救星:探索Navicat密码解密工具的实用价值

3个数据库管理场景的救星:探索Navicat密码解密工具的实用价值

3个数据库管理场景的救星:探索Navicat密码解密工具的实用价值 【免费下载链接】navicat_password_decrypt 忘记navicat密码时,此工具可以帮您查看密码 项目地址: https://gitcode.com/gh_mirrors/na/navicat_password_decrypt 你是否曾因为忘记Navicat中保存…

2026/8/7 11:42:31 阅读更多 →
Chrome插件跨域请求完整解决方案:从原理到实战

Chrome插件跨域请求完整解决方案:从原理到实战

1. 项目概述:从“跨域”这个拦路虎说起 如果你正在或者打算开发谷歌浏览器插件,那么“跨域”这个词,大概率已经让你头疼过了。它就像一个无处不在的关卡守卫,当你试图在自己的插件里,从一个网站(比如 http…

2026/8/7 11:41:30 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →