Office To Md V2

Polar Sponsor
爱发电 赞助
.NET 9.0

将 PDF、DOC、DOCX、PPTX 办公文档转换为 Markdown,支持旧版 .doc 文件的文本提取和基本格式保留。

办公室到 Markdown 转换器技能 (v2).

功能概述

办公室到 Markdown 转换器技能 (v2).是一项面向实际任务的技能,主要用于Description.;Convert 办公文档( PDF, DOC, DOCX, PPTX) 到 Markdown 格式. 此技能使用字词提取库为.doc 支持并提供。

核心要点

  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;

结果检查与注意事项

涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

Office 到 Markdown 转换技能(v2)

描述

将 Office 文档(PDF、DOC、DOCX、PPTX)转换为 Markdown 格式。该技能使用 word-extractor 库支持 .doc 格式,并提供完整的 OpenClaw 集成能力。

适用场景

  • 需要从 Office 文档中提取文本时
  • 希望将文档转换为可读性强的 Markdown 格式时
  • 在 OpenClaw 中分析文档内容时
  • 特别适用于处理遗留的 .doc 格式文件时

支持的格式

  • PDF(.pdf):使用 pdf-parse 进行文本提取
  • Word(.docx):使用 mammoth + turndown 保留格式
  • 旧版 Word(.doc):使用 word-extractor 进行文本提取(支持中文编码)
  • PowerPoint(.pptx):使用 python-pptx 进行基础文本提取

依赖项

  • Node.js 及其 npm 包:pdf-parse、mammoth、turndown、word-extractor
  • Python3 及 python-pptx(用于 PPTX 转换,可选)
  • OpenClaw exec 工具执行权限

安装

1. 将技能复制到你的 workspace:

cp -r /root/.openclaw/workspace/office-to-md-v2/office-to-md /path/to/your/workspace/

2. 安装依赖项:

cd /path/to/your/workspace/office-to-md
npm install

3. 启用 PPTX 支持(可选):

pip3 install python-pptx

在 OpenClaw 中的使用方式

方法 1:直接调用 exec

// 转换任意受支持的文档
const result = await exec(
  'node /path/to/office-to-md/openclaw-skill.js /path/to/document.doc',
  { workdir: '/path/to/workspace', timeout: 60000 }
);

if (result.exitCode === 0) {
  console.log('✅ 文档转换成功');
  // 输出文件路径:/path/to/document.md
} else {
  console.error('❌ 转换失败:', result.stderr);
}

方法 2:使用封装函数

// 导入转换器
const { convertOfficeToMarkdown } = require('/path/to/office-to-md/openclaw-skill.js');

// 转换文档
const conversionResult = await convertOfficeToMarkdown('/path/to/document.pdf');
if (conversionResult.success) {
  console.log(`输出路径:${conversionResult.outputPath}`);
  console.log(`预览内容:${conversionResult.preview}`);
} else {
  console.error(`错误信息:${conversionResult.error}`);
}

方法 3:完整的 OpenClaw 集成函数

async function convertDocumentToMarkdown(filePath) {
  // 验证文件是否存在
  try {
    await read(filePath);
  } catch (error) {
    return { success: false, error: `文件未找到:${filePath}` };
  }
  
  // 检查文件扩展名
  const ext = filePath.toLowerCase().slice(-5);
  const supported = ['.pdf', '.doc', '.docx', '.pptx'];
  if (!supported.some(s => ext.endsWith(s))) {
    return { 
      success: false, 
      error: `不支持的文件类型。支持的格式:${supported.join(', ')}` 
    };
  }
  
  // 使用技能执行转换
  const cmd = `node /path/to/office-to-md/openclaw-skill.js "${filePath}"`;
  const result = await exec(cmd, { 
    workdir: '/path/to/workspace',
    timeout: 120000 // 大型文件最多耗时 2 分钟
  });
  
  if (result.exitCode === 0) {
    const outputPath = filePath.replace(/.[^/.]+$/, '.md');
    return {
      success: true,
      outputPath: outputPath,
      message: `已转换为:${outputPath}`
    };
  } else {
    return {
      success: false,
      error: result.stderr || '转换失败'
    };
  }
}

// 使用示例
const result = await convertDocumentToMarkdown('/path/to/document.doc');
if (result.success) {
  const markdown = await read(result.outputPath);
  console.log(markdown.substring(0, 1000));
}

示例

示例 1:转换并分析文档

// 转换 .doc 文件并分析其内容
const docPath = '/path/to/document.doc';
const convertResult = await exec(
  `node /path/to/office-to-md/openclaw-skill.js "${docPath}"`,
  { workdir: '/path/to/workspace' }
);

if (convertResult.exitCode === 0) {
  const mdPath = docPath.replace('.doc', '.md');
  const content = await read(mdPath);
  
  // 分析内容
  const wordCount = content.split(/s+/).length;
  const lines = content.split('n').length;
  const hasChinese = /[u4e00-u9fff]/.test(content);
  
  console.log(`文档分析结果:`);
  console.log(`- 词数:${wordCount}`);
  console.log(`- 行数:${lines}`);
  console.log(`- 是否含中文:${hasChinese}`);
  console.log(`- 预览(前 200 字符):${content.substring(0, 200)}...`);
}

示例 2:批量转换

// 批量转换多种格式的文档
const documents = [
  '/path/to/report.pdf',
  '/path/to/legacy.doc',
  '/path/to/modern.docx',
  '/path/to/presentation.pptx'
];

const results = [];
for (const doc of documents) {
  console.log(`正在转换 ${doc}...`);
  const result = await exec(
    `node /path/to/office-to-md/openclaw-skill.js "${doc}"`,
    { workdir: '/path/to/workspace', timeout: 90000 }
  );
  
  const success = result.exitCode === 0;
  results.push({
    file: doc,
    success: success,
    error: success ? null : result.stderr
  });
  
  console.log(success ? '✅ 成功' : '❌ 失败');
}

// 汇总统计
const successful = results.filter(r => r.success).length;
console.log(`n转换汇总:${successful}/${results.length} 个成功`);

API 参考

convertOfficeToMarkdown(filePath)

返回一个 Promise,其解析值为:

{
  success: boolean,
  outputPath?: string,
  markdown?: string,
  preview?: string,
  fileType?: string,
  message?: string,
  stats?: {
    lines: number,
    characters: number,
    words: number
  },
  error?: string,
  stack?: string
}

配置

超时设置

  • 小文件(<1MB):30 秒
  • 中等文件(1–10MB):60 秒
  • 大文件(>10MB):120 秒

内存限制

  • 默认 Node.js 内存限制对大多数文档已足够
  • 对于极大文件,可能需提升内存限制:
    node --max-old-space-size=4096 openclaw-skill.js large-file.doc
    

故障排查

常见问题

  1. “文件未找到”

    • 检查文件路径及读取权限
    • 建议使用绝对路径以提高可靠性
  2. “不支持的文件类型”

    • 确认文件扩展名是否正确
    • 验证文件实际格式是否与声明一致
  3. .doc 文件转换出错

    • 文件可能已损坏或采用非标准格式
    • 建议先在 Word 中打开并另存为 .docx 格式再尝试转换
  4. 中文显示为乱码

    • word-extractor 应能自动处理中文编码
    • 若仍存在问题,可能是文件采用了特殊编码
  5. 超时错误

    • 针对大文件适当增加 timeout 值
    • 检查系统资源(CPU、内存)是否充足

调试模式

通过设置环境变量启用调试日志:

DEBUG=office-to-md node openclaw-skill.js document.doc

性能表现

  • PDF:较快,取决于文件大小
  • DOCX:快至中等,格式保留效果良好
  • DOC:中等,需进行二进制解析
  • PPTX:较慢,依赖 Python 及外部库

限制条件

  • 文档中的图片不会被提取
  • 复杂格式可能无法完全保留
  • 表格转为 Markdown 时可能存在失真
  • 极老旧或已损坏的 .doc 文件可能转换失败
  • 不支持密码保护的文件

更新日志

v2.0.0(2026-02-15)

  • 新增基于 word-extractor 的完整 .doc 支持
  • 修复 pptConverter 的 ESM 兼容性问题
  • 增强 OpenClaw 集成能力
  • 优化中文文本提取能力
  • 新增结构化输出,包含统计信息

v1.0.0(初始版本)

  • 基础 PDF、DOCX、PPTX 支持
  • 简易转换功能,不支持 .doc

许可证

本技能按“原样”提供。所依赖的底层库各自拥有独立许可证:

  • pdf-parse:MIT
  • mammoth:BSD-2-Clause
  • turndown:MIT
  • word-extractor:MIT
  • python-pptx:MIT

相关专题

更多
Office和Wps的区别
Office和Wps的区别

microsoft office提供更广泛的功能和市场领先的兼容性,但成本较高。wps针对基本办公任务提供了免费或低成本的替代方案,并具有更广泛的平台支持。想了解更多Office和Wps的相关内容,可以阅读本专题下面的文章。

2024.07.10

1881

9

office软件有哪些
office软件有哪些

office软件有:1、Microsoft Word;2、Microsoft Excel;3、Microsoft PowerPoint;4、Microsoft Outlook;5、Microsoft OneNote;6、Microsoft Access;7、Microsoft Publisher。本专题提供office软件相关的文章、下载和课程。

2023.06.29

1897

7

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

2026.09.20

0

13

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

2026.09.20

0

15

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

0

9

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

2026.09.16

0

10

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

2026.09.16

0

23

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

2026.09.16

0

25

Pandas数据读取导入与文件导出处理
Pandas数据读取导入与文件导出处理

本专题整理Pandas读取CSV、Excel、JSON、SQL、Parquet等文件的方法,以及to_csv、to_excel、to_sql和to_parquet等常用数据导出流程。

2026.09.16

0

27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133万人学习