实战示例:将英文 PDF 文档转换为 Markdown 并翻译为中文,最后输出为 PDF

本章通过一个完整的自动化流程示例,展示如何利用 n8n 将英文 PDF 文档转换为 Markdown,再调用大语言模型翻译为中文,最终生成中文 PDF 文件。你将系统掌握文件读写、本地命令执行、API 调用、数据处理等节点的组合应用,并了解每一步的衔接与调试方法。

触发与读取原始 PDF

流程起点采用 Manual Trigger 节点,便于测试和调试。随后用 Execute Command 节点调用 pandoc 工具,将 PDF 转为 Markdown 文件。配置命令如:

pandoc /Users/alice/Documents/input.pdf -f pdf -t markdown -o /Users/alice/Documents/output.md

执行后,Markdown 文件会生成在指定路径。接着用 Read Binary File 节点读取该 Markdown 文件内容,设置 Output Data In Field 为 data,以 Base64 编码存入 $binary.data,方便后续处理。

提示:如未安装 pandoc,可用 brew install pandoc 安装。确保 n8n 环境能找到 pandoc 命令。

Markdown 二进制数据转为纯文本

Read File 节点输出的 Markdown 内容为 Base64 编码。用 Code 节点(JavaScript)将其转为字符串:

const buffer = await this.helpers.getBinaryDataBuffer('data');
const mdText = buffer.toString('utf8');
return [{ json: { markdown: mdText } }];

这样输出的 $json.markdown 即为英文 Markdown 文本。

调用 Gemini 翻译 Markdown

HTTP Request 节点调用 Gemini API,将 Markdown 翻译为中文。配置:

  • Method: POST
  • URL: https://api.gemini.com/v1/chat/completions
  • Authentication: Header Auth,添加 Authorization: Bearer YOUR_GEMINI_API_KEYContent-Type: application/json
  • Body:
{
  "model": "gemini-2.5-flash",
  "messages": [
    {"role": "user", "content": "请将以下 Markdown 内容翻译为中文,并保持格式:\n{{$json[\"markdown\"]}}"}
  ]
}

表达式 {{$json["markdown"]}} 注入上一步输出。执行后,响应的 choices[0].message.content 即为中文 Markdown。

更多 API 配置详见 n8n HTTP Request 节点文档

提取翻译后的 Markdown

Set 节点提取 HTTP 节点输出的中文 Markdown:

  • 新增字段 cnMarkdown,值为表达式:{{$node["HTTP Request"].json["choices"][0]["message"]["content"]}}

这样即可获得翻译后的中文 Markdown 字符串。

生成中文 PDF 文件

将中文 Markdown 保存为临时文件,再用 pandoc 转为 PDF:

  1. Write Binary File 节点,将 cnMarkdown 写入 /Users/alice/Documents/output_cn.md
  2. Execute Command 节点运行:
pandoc /Users/alice/Documents/output_cn.md -o /Users/alice/Documents/output_cn.pdf

执行后即可得到中文 PDF 文件。

可用 Read Binary File 节点读取 PDF,再通过 Email 节点发送或 Webhook Respond 返回。

流程扩展与自动化场景

本流程可扩展为 API 服务或定时任务:

  • 用 Webhook Trigger 支持文件上传,实现对外 PDF 翻译 API
  • 用 Schedule Trigger 定期扫描文件夹自动翻译 PDF

n8n 支持多种节点组合,灵活应对实际需求。更多节点用法见 n8n 节点文档

文章导航

独立页面

这是书籍中的独立页面。

书籍首页

评论区