pdf2md-script-for-feishu-table:基于飞书表格的PDF转Markdown脚本项目

用于飞书多维表格的指定列数据转换(读PDF列转换并转写Markdown列,附全文和含附件的压缩包)

分支1Tags0
文件最后提交记录最后更新时间
9 个月前
9 个月前
9 个月前
9 个月前
9 个月前
9 个月前
9 个月前
9 个月前
9 个月前
9 个月前
9 个月前

pdf2md-script-for-feishu-table

用于飞书多维表格记录中PDF的读取与转换,将其转为Markdown格式的脚本。

功能特性

  • 从飞书多维表格记录中下载PDF文件
  • 使用pdfdeal服务将PDF转换为Markdown格式
  • 从Markdown文件中提取文本内容
  • 将转换后的ZIP文件和内容上传回飞书多维表格
  • 多线程处理,支持并行记录处理
  • 批量操作的实时进度流式传输

API接口

/translate/all - 处理所有符合条件的记录

查询参数:

  • stream(可选):设为'true'可通过服务器发送事件(SSE)启用实时进度流式传输。默认值为'false'

示例:

  • 常规模式:GET /translate/all
  • 流式模式:GET /translate/all?stream=true

响应(非流式):

{
  "status": "success",
  "message": "Processed 5 out of 10 records",
  "total": 10,
  "processed": 5,
  "failed": 5,
  "failed_records": ["rec123", "rec456"]
}

响应(流式): 返回包含实时进度更新的服务器发送事件(SSE)流:

  • type: "start" - 包含总记录数的初始状态
  • type: "progress" - 每条记录处理完成的进度更新
  • type: "complete" - 最终汇总结果

/translate/record - 处理单条记录

查询参数:

  • record_id(必填):待处理的记录ID

示例: GET /translate/record?record_id=rec123

/health - 健康检查

示例: GET /health

实时进度

如需查看实时进度,可通过以下方式:

  1. 使用提供的HTML客户端:

    • 在浏览器中打开example_client.html
    • 点击“开始转换(流式)”查看实时更新
  2. 使用JavaScript EventSource API:

    const eventSource = new EventSource('/translate/all?stream=true');
    
    eventSource.onmessage = function(event) {
        const data = JSON.parse(event.data);
        console.log(data);
        // 处理进度更新
    };
    
  3. 使用curl进行流式传输:

    curl -N "http://localhost:5000/translate/all?stream=true"
    

安装步骤

  1. 安装依赖:

    pip install -r requirements.txt
    
  2. /.env.sample复制为/.env并填写配置信息:

    cp .env.sample .env
    
  3. /.env中配置环境变量:

    • APP_TOKEN - 飞书应用token
    • PERSONAL_BASE_TOKEN - 飞书个人基础token
    • TABLE_ID - 飞书表格ID
    • PDFDEAL_TOKEN - PDF转换服务token
    • ORIGIN_COLUMN - 包含PDF文件的列名
    • TARGET_FILE_COLUMN - 用于存储ZIP文件的列名
    • TARGET_CONTEXT_COLUMN - 用于存储文本内容的列名
    • NAME_COLUMN - 记录名称列名(用于文件命名)

使用方法

运行Flask应用:

python app.py

服务将在http://localhost:5000可用。

项目介绍

用于飞书多维表格的指定列数据转换(读PDF列转换并转写Markdown列,附全文和含附件的压缩包)

定制我的领域