C#批量清除Word页眉页脚:OpenXML与自动化方案详解
如果你维护过一批从各种渠道收集上来的 Word 标书、方案文档一定能理解页眉页脚带来的痛。有的是旧页眉里带着过期的项目名有的是页脚自动带出上一家单位的电话还有的首页页眉和正文页页眉根本不是一套东西。手工打开几十个文件CtrlA 删掉页眉再检查页脚有没有隐藏的页码域这种事干过一次就不想干第二次。用 C# 写个小工具批量清理是我能想到的最省力的解法。这篇文章不空谈概念直接给你能落地的方案。我会先用 OpenXML 的方式拆开 docx 看页眉页脚的真实结构再给出完整代码删除全文档的页眉页脚接着讲复杂情况下怎么只删某一节、怎么断掉节与节之间的继承关系最后补充一份常见坑排查清单。如果你只是临时处理几个文件我也准备了 Word 自动化的简化方案。无论你是刚接触文档处理的开发者还是已经在写批量文档工具的老手应该都能在里面找到自己需要的那块拼图。1. 先搞清楚页眉页脚在 docx 里到底存在哪1.1 你看到的页眉页脚其实是一堆零件很多人第一次接触 Word 自动化时会习惯性地去找类似“清除页眉”的高级接口。结果翻了一圈发现不管是哪种方案最后都绕不开 Word 文档本身的结构。docx 文件本质上是一个 zip 压缩包。你用解压工具打开任意一个.docx会看到word目录下面有document.xml、header1.xml、footer1.xml、[Content_Types].xml等等文件。真正控制一页顶部和底部内容的不是 document.xml 里的普通段落而是独立的页眉/页脚部件。正文和页眉页脚通过“节”里的引用关系关联起来。每节末尾都有一个sectPr节点里面放着一堆设置页面大小、页边距、页眉距边界距离等以及若干个headerReference/footerReference节点。这些引用节点会指明当前节用哪个header*.xml或footer*.xml部件。所以页眉页脚的删除并不是简单删一段文本那么容易。你至少要处理两层信息页面布局层sectPr里是否还引用某个headerPart或footerPart。内容层被引用的header*.xml/footer*.xml里是否还残留内容。只改了引用不删部件内容还留在包内文件体积不会减小。只删部件不改引用Word 打开时大概率提示文件损坏。两件事必须同步考虑。1.2 删除之前先想清楚是“清空内容”还是“整块移除”这里有一个很容易被忽略的诉求差异。有人要的效果是“页眉区域里什么都不显示”有人要的效果是“把页眉这些部件干脆从文档包里丢出去”。前者操作起来相对温和可以用 Word 自动化打开文件把每个 section 的 Header Range 里的内容 Delete 掉。此时 header 引用还在页眉区域保留为一个空区域底部可能留一条空白线但不会显示旧内容。后者更彻底需要把sectPr里的headerReference/footerReference全部移除再把对应的HeaderPart/FooterPart从包里删除。这个方案无界面、无弹窗、速度快尤其适合服务器批量跑。严格来说“清空内容”和“整块移除”是两种做法。我处理批量文档时默认选择后者因为文件更干净也不容易残留旧内容。后面我会先讲 OpenXML 的整块移除方式再讲 Word 自动化的清空方式。2. 方案对比改 XML、Word 自动化、第三方库2.1 如果只是偶尔处理一两个文件如果一年也碰不上几次这种需求那直接用 Word 自动化最顺手。启动 Word 进程依次打开文档遍历Sections把每个 section 的Headers和Footers里的内容清掉保存关闭即可。这个方案最大的优势是学习成本低不用理解 docx 内部结构。最明显的缺点是必须装 Word 程序而且 COM 对象释放不干净时后台会堆一堆 WINWORD.EXE 进程。在个人电脑上跑一次没问题放到生产服务器上用稳定性会让人头疼。2.2 批量处理时我更推荐直接改包直接在 zip 包层面改 XML 听起来很底层但 OpenXML SDK 把大部分复杂性封装好了打开文档包、定位部件、修改sectPr、删除关系都有现成接口。不需要安装任何 Office 软件也不会有弹窗和进程残留适合做成 Web 服务或定时任务。第三方商业文档库也提供了类似能力但有的需要授权费用。如果你的项目预算有限或者不希望引入额外依赖OpenXML 是性价比最高的路线。下面用一张表简单对比方案依赖速度适合场景风险点Word 自动化COM本机安装 Office慢少量文件、需要完整排版能力COM 对象泄漏、版本兼容性OpenXML SDK无 Office 依赖快批量、服务器、无头环境需要理解文档结构第三方文档库NuGet 包快需要更多复杂功能许可证、商业费用我个人的经验是只要规模超过 20 个文件或者有自动化部署需求就不要犹豫直接上 OpenXML。它能给你最大的可控制性。3. 用 OpenXML 直接改包全文档页眉页脚一键清除3.1 创建项目并安装 SDK先建一个标准的 .NET 控制台项目或类库。在项目文件所在目录执行dotnet add package DocumentFormat.OpenXml如果你用的是旧式packages.config项目也可以直接在 NuGet 包管理器里搜索DocumentFormat.OpenXml安装。版本建议用 2.20 以上接口比较稳定。新建一个HeaderFooterRemover.cs文件先引入必要的命名空间using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Wordprocessing;3.2 删除所有节里的引用第一步是去掉文档中所有sectPr里的HeaderReference和FooterReference。一个文档里可能有多个节每个节对应一个w:sectPr。它可能出现在w:body末尾也可能出现在某个段落的w:pPr中。用DescendantsSectionProperties()可以把这两类都捞出来。public static void RemoveAllHeaderFooterReferences(WordprocessingDocument doc) { var body doc.MainDocumentPart?.Document.Body; if (body null) { return; } var sections body.DescendantsSectionProperties().ToList(); foreach (var section in sections) { section.RemoveAllChildrenHeaderReference(); section.RemoveAllChildrenFooterReference(); } }注意DescendantsT()是深度遍历会返回文档里所有嵌套层级的sectPr包括节中的节。ToList 是为了避免在遍历过程中修改集合导致异常。3.3 清理物理页眉页脚部件只去掉引用还不够MainDocumentPart里可能还挂着多个HeaderPart和FooterPart。这些部件仍然占着包内的空间而且如果之前在别的位置有关系引用清理不干净容易出问题。public static void RemoveAllHeaderFooterParts(WordprocessingDocument doc) { var mainPart doc.MainDocumentPart; if (mainPart null) { return; } foreach (var headerPart in mainPart.HeaderParts.ToList()) { mainPart.DeletePart(headerPart); } foreach (var footerPart in mainPart.FooterParts.ToList()) { mainPart.DeletePart(footerPart); } }这里必须先把引用删干净再删 part。否则删除 part 时关系还残留在 document.xml 里Word 打开时就会报“文件已损坏”的错误。3.4 完整工具方法把上面两步合并成一个完整的入口方法最好再加上备份逻辑。using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Wordprocessing; public static class HeaderFooterRemover { public static void RemoveAllHeadersAndFooters(string filePath) { // 先备份防止误操作改坏源文件 File.Copy(filePath, filePath .bak, true); using (var doc WordprocessingDocument.Open(filePath, true)) { RemoveAllHeaderFooterReferences(doc); RemoveAllHeaderFooterParts(doc); doc.MainDocumentPart?.Document.Save(); } } private static void RemoveAllHeaderFooterReferences(WordprocessingDocument doc) { var body doc.MainDocumentPart?.Document.Body; if (body null) { return; } var sections body.DescendantsSectionProperties().ToList(); foreach (var section in sections) { section.RemoveAllChildrenHeaderReference(); section.RemoveAllChildrenFooterReference(); } } private static void RemoveAllHeaderFooterParts(WordprocessingDocument doc) { var mainPart doc.MainDocumentPart; if (mainPart null) { return; } foreach (var headerPart in mainPart.HeaderParts.ToList()) { mainPart.DeletePart(headerPart); } foreach (var footerPart in mainPart.FooterParts.ToList()) { mainPart.DeletePart(footerPart); } } }调用方式很简单HeaderFooterRemover.RemoveAllHeadersAndFooters(C:\temp\input.docx);跑完这段代码整个文档所有页眉页脚会被彻底移除。处理完后Word 打开应该看不到任何页眉页脚内容文件体积也会小一些。4. 只删除某一节的页眉页脚关键在“断开继承”4.1 节与节之间的继承关系实际需求往往比“全删”更细。比如标书正文页要保留页眉但附录部分的页眉必须清掉。这种时候直接全局删除引用就不合适了。Word 的节默认继承规则是如果当前节的sectPr里没有headerReference那么它会沿用前一节的页眉设置。也就是说一个节没有页眉引用不代表它没有页眉。这个继承机制坑过不少人。很多人以为删掉目标节的headerReference就完事了下一页眉却还在。原因就是目标节本来就没定义自己的页眉它是从上一节“继承”过来的。你要断掉这段继承就必须给目标节显式加一个空的headerReference。4.2 定位目标节先通过DescendantsSectionProperties()找到所有节。如果你能确定目标节是第几个可以用索引访问。比如处理第三个节var sections body.DescendantsSectionProperties().ToList(); var targetSection sections[2]; // 第三个节这里有个细节需要留意sectPr的顺序不等于页面上的绝对顺序。分节符里的sectPr代表它之前那一节的设置而body末尾的sectPr代表文档最后一节的设置。所以按顺序处理时需要先弄清文档结构。更稳妥的方式是直接遍历拿你自己定义的判断条件去匹配。例如某节开头的段落包含特定文字或者该节用了特定的页面方向就在循环里判断。4.3 给目标节创建空页眉并断开继承假设你要把目标节的页眉设置成“无”正确做法是给目标节添加一个空的 HeaderPart然后让该节引用这个空 part。这样后续节不会再继承前一节的内容同时新 part 本身也没有任何文本。public static void ClearHeaderForSection(MainDocumentPart mainPart, SectionProperties targetSection) { var headerPart mainPart.AddNewPartHeaderPart(); headerPart.Header new Header(new Paragraph()); var headerReference new HeaderReference { Type HeaderFooterValues.Default, Id mainPart.GetIdOfPart(headerPart) }; // 先移除旧引用再挂上新的空引用 targetSection.RemoveAllChildrenHeaderReference(); targetSection.Append(headerReference); }需要说明的是.AddNewPartHeaderPart()会自动为主文档部件创建一条新关系GetIdOfPart会拿到这个关系的 id。HeaderReference里的Id必须是合法的关系 id否则 Word 会认为引用指向不存在的内容。如果你只是想让某一节恢复“没有页眉”同时前面节还需要正常显示用上面的空引用方案最安全。修改完成后保存文档目标节的页眉区域就断开了和前文的继承。4.4 首页与奇偶页的特殊情况Word 的页眉页脚不止一种。普通节里的页眉页脚可能同时存在“首页页眉页脚”“奇数页页眉页脚”“默认页眉页脚”三类。它们由sectPr里的titlePg和evenAndOddHeaders属性控制。当这两个属性存在时同一个节里会分别出现不同type的引用Default对应普通页First对应首页Even对应偶数页删除时需要把这些引用都处理到。一个技巧是直接删除该节下所有HeaderReference和FooterReference再根据需求决定是否添加空引用。如果只是全文档清除用之前第 3 章的方法即可如果按节处理不要漏掉First和Even类型。targetSection.RemoveAllChildrenHeaderReference(); targetSection.RemoveAllChildrenFooterReference();这句会把该节下所有类型的引用都移除。若你要保留某个类型就得先判断节里是否有EqualsAny的筛选不要粗暴地全删。5. 当你想省事Word 自动化的简化方案5.1 通过 ProgID 启动 Word如果不想深入 OpenXML或者你处理的文档是.doc老格式而不是.docx直接用 Word 自动化也许更快。虽然 Word 对象模型在处理页眉页脚时只能清内容不能真正删除引用部件但对多数业务场景已经足够了。在 C# 里可以不用显式引用互操作程序集用动态类型加 ProgID 启动 Worddynamic wordApp Activator.CreateInstance(Type.GetTypeFromProgID(Word.Application)); wordApp.Visible false;这样做的好处是不需要在项目里配置 COM 引用缺点是代码里不能获得编译期智能提示属性名拼错了要等运行时报错才能发现。5.2 遍历节清空页眉页脚下面是一段清空所有 section 页眉页脚的简化代码dynamic wordApp Activator.CreateInstance(Type.GetTypeFromProgID(Word.Application)); wordApp.Visible false; dynamic doc wordApp.Documents.Open(C:\temp\input.doc); foreach (dynamic section in doc.Sections) { // 1 对应主页眉2 对应首页3 对应偶数页 section.Headers[1].Range.Delete(); section.Headers[2].Range.Delete(); section.Headers[3].Range.Delete(); section.Footers[1].Range.Delete(); section.Footers[2].Range.Delete(); section.Footers[3].Range.Delete(); } doc.Save(); doc.Close(); wordApp.Quit();这里把 1、2、3 当成了WdHeaderFooterIndex的枚举值。由于不同版本 Office 对枚举类型定义一致一般情况下可以这么用。但为了稳妥生产代码里最好定义枚举常量不要写魔法数字。注意一点Range.Delete()只清空内容不会让页眉区域彻底消失。如果页眉里设置了下边框线清空后边框线可能还留在页面上需要额外处理边框属性。5.3 COM 对象释放和进程残留用 Word 自动化最大的隐患是进程残留。明明代码跑完了任务管理器里却躺着几个WINWORD.EXE删不掉。原因是wordApp、doc这些 COM 包装对象没有及时释放。简化处理的写法看起来方便但每次循环里的section实际上都是临时 COM 对象。如果循环很多一定要及时Marshal.ReleaseComObject。最简单的做法是尽量把所有操作放在同一个方法里最后统一释放System.Runtime.InteropServices.Marshal.FinalReleaseComObject(doc); System.Runtime.InteropServices.Marshal.FinalReleaseComObject(wordApp);还要保证即使代码中途报错也能进入回收流程。用 try/finally 包住整个操作在 finally 里释放对象并调用Quit。如果你处理的是上千个文档我不建议用这个方案。Word 进程每打开一次文件都会带来不可控的内存占用长时间运行后崩溃率明显上升。6. 常见问题与排查实录6.1 删了 part 之后 Word 提示文档损坏这个问题几乎都出在“删除引用”和“删除部件”的顺序上。你必须先删除所有HeaderReference和FooterReference再删除HeaderPart和FooterPart。如果反着来document.xml里还保留着指向不存在 part 的关系Word 打开时就会报错。还有一个小坑如果同一个HeaderPart被多个节引用其中一个节的引用还没删干净最终也会报错。保险起见先执行一次RemoveAllHeaderFooterReferences再执行RemoveAllHeaderFooterParts。6.2 页眉内容已经不在 XML 里但页面还显示旧内容常见原因是浏览器或缓存。Word 打开文档后有时会使用“最近打开的版本”或者读取了未刷新的页眉缓存。排除这个问题可以先确认文档是否真的只有一份副本。很多时候你修改的input.docx是一个快捷方式或者 Windows 资源管理器里还有同名副本。另一个原因是节继承。你删除了目标节的引用却没有删除它继承来源节的引用。前面已经说过没有headerReference的节默认沿用前一节。如果前一节还有页眉目标节自然还会显示。这时候要给目标节显式加一个空引用才能真正断开。6.3 页脚里残留页码域页脚里最常见的“隐藏内容”是页码域。页脚文字可能被删掉了但PAGE域还在换页后页码照样会显示。在 OpenXML 里检查一下 footer 的 XML看有没有w:fldSimple或w:instrText包含PAGE字段。删引用时把整个 footer 部件删掉是最省事的。6.4 .doc 老格式怎么处理OpenXML 方案只对.docx以及不包含宏的dotx有效。老的.doc格式是二进制存储必须通过 Word 自动化或者商业转换库先转成.docx再执行后续删除逻辑。有些项目里会混入.docm也就是带宏的 Word 文档。用 OpenXML 打开也支持但保存时要注意保留宏部件否则另存后宏会丢失。最简单的做法是在操作前判断扩展名把.docm单独走另一套逻辑。6.5 加密与只读文档处理加密文档时WordprocessingDocument.Open会直接抛异常。需要先用密码打开副本或者让用户手动解除保护。只读文件也要先去掉只读属性。建议在工具入口处统一处理File.SetAttributes(filePath, FileAttributes.Normal);另外批量处理前务必备份。我的习惯是把源文件复制到一个backup目录而不是在同目录生成.bak。因为如果源文件本身被其他程序锁定File.Copy可能失败但失败时你至少能及时发现不会破坏原始文件。最后说一点个人实际操作中的体会页眉页脚删除看起来是个再简单不过的小功能真做起来却有不少隐藏细节。尤其是“节继承”和“首页/奇偶页单独设置”这两个概念不拆开文档亲眼看一遍 XML很难理解为什么同样的代码有时生效有时不生效。如果让我给一个最稳妥的组合建议批量处理.docx用 OpenXML涉及.doc老格式或复杂排版需求用 Word 自动化权限和备份放在最前面。不要试图用一套代码覆盖所有文件类型先判断文件格式再走对应分支这样维护起来最省心。我还在工具里加了一个小功能处理完文件后顺手输出每个文件里被删除的页眉页脚数量。因为很多业务场景需要确认“到底删掉了几组内容”有个计数结果你后续做数据核对会方便很多。这个实现很简单在遍历HeaderParts和FooterParts时统计数量即可但这个小细节能节省不少排查时间。

相关新闻

UE场景点位编码全解析:命名规则、表格驱动与运行时查询

UE场景点位编码全解析:命名规则、表格驱动与运行时查询

1. 点位编码到底在编什么做关卡、做BOSS战、做寻路测试,只要场景里要摆点位(PlayerStart、敌人刷新点、巡逻路径点、检查点、传送点),迟早要面对一个问题:这些点怎么命名、怎么找、怎么在代码里引用。我见过太多项目&a…

2026/10/13 18:36:39 阅读更多 →
银河麒麟V10离线部署DeepSeek大模型:ollama+chatbox完整指南

银河麒麟V10离线部署DeepSeek大模型:ollama+chatbox完整指南

简介:在银河麒麟V10(arm64)离线环境中部署DeepSeek模型,常卡在依赖、服务配置等环节。这份指南面向系统运维、AI部署等技术人员,给出从ollama安装、系统服务与环境变量配置,到离线导入deepseek-r1模型、再配…

2026/10/13 18:36:39 阅读更多 →
UML建模题备考指南:从用例图到类图顺序图的得分要点

UML建模题备考指南:从用例图到类图顺序图的得分要点

简介:这份复习资料面向《UML系统分析与设计》课程学习者,系统梳理关联多重度、类关系判定、交互图对比、高内聚概念、UML图功能区分、四种基本关系以及概念类识别等高频考点,适用于期末备考、考研复试或考前自测查漏。资料以1份doc文档打包&a…

2026/10/13 18:36:39 阅读更多 →

最新新闻

Go监听MySQL binlog实战:轻量级数据变更捕获与生产避坑指南

Go监听MySQL binlog实战:轻量级数据变更捕获与生产避坑指南

1. 这不是“监听MySQL”,而是重建一套轻量级数据变更管道很多人第一次看到“用Go监听binlog”这个说法,第一反应是:“MySQL自己不就有mysqlbinlog命令吗?再不济写个Python脚本调用一下不就完了?”——我试过&#xff0…

2026/10/13 19:13:29 阅读更多 →
生成高质量技术博客:标题、关键词与摘要素材准备指南

生成高质量技术博客:标题、关键词与摘要素材准备指南

我注意到您提供的输入内容中,【项目标题】、【项目正文】、【关键词】和【摘要描述】均为空,暂时无法开始创作。 请按以下格式补齐输入信息,我会立即为您生成一篇独立、完整、可直接发布的博客文章: 项目标题: (例如…

2026/10/13 19:13:29 阅读更多 →
STM32 3D打印机固件:从寄存器级运动控制到S曲线实时规划

STM32 3D打印机固件:从寄存器级运动控制到S曲线实时规划

简介:这是一份面向嵌入式开发者与3D打印技术爱好者的STM32平台开源固件资源,聚焦于解决3D打印机底层运动控制、G代码实时解析与脱机打印等核心问题,适用于希望深入理解固件架构、定制打印逻辑或开展硬件协同开发的学习者与工程师。压缩包共19…

2026/10/13 19:13:29 阅读更多 →
单片机硬件电路设计实战:从最小系统到PCB布局的避坑指南

单片机硬件电路设计实战:从最小系统到PCB布局的避坑指南

1. 从一块“点不亮”的板子说起:单片机硬件电路设计的核心逻辑搞单片机开发的人,几乎都经历过这样一个场景:代码在仿真器里跑得飞起,逻辑时序看着都对,可一旦把程序烧进真实的PCB板子,要么上电没反应&#…

2026/10/13 19:13:29 阅读更多 →
Windows下MinGW-w64稳态配置:零依赖静态编译实战指南

Windows下MinGW-w64稳态配置:零依赖静态编译实战指南

1. 为什么在 Windows 上还要折腾 MinGW-w64?这真不是“复古怀旧”你可能刚接触 C/C 开发,或者从 Visual Studio 转过来,看到“MinGW-w64”这个词第一反应是:这不就是老古董吗?VS 2022 不香吗?WSL2 不快吗&a…

2026/10/13 19:13:29 阅读更多 →
Java+SSM+Flask众惠商城系统:课设毕设全流程交付解析

Java+SSM+Flask众惠商城系统:课设毕设全流程交付解析

先坦白讲,这类“商城系统”的交付包在市面上多如牛毛,但真正能让人从头跑到尾、还能弄明白底层逻辑的其实不多。标题里这个“JavaSSMFlask众惠商城系统”,既包含经典的企业级开发框架SSM,又混搭了Python系的Flask,第一…

2026/10/13 19:12:28 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →