pdf-oxide CLI — 终端里最快的 PDF 工具箱
pdf-oxide 是用于本地高速 PDF 处理的命令行工具。它和库共用同一个 Rust 内核——零云端,零系统依赖。共 23 个命令,从 text、markdown 到 compress、encrypt、watermark。
快速安装(推荐)
一条命令自动识别你的操作系统和架构:
Linux / macOS
curl -fsSL oxide.fyi/install.sh | sh
Windows (PowerShell)
irm oxide.fyi/install.ps1 | iex
其他安装方式
Homebrew (macOS / Linux)
brew install yfedoseev/tap/pdf-oxide
Cargo
cargo install pdf_oxide_cli
cargo-binstall(预编译二进制)
cargo binstall pdf_oxide_cli
预编译二进制
在 GitHub Releases 下载对应平台的包,把可执行文件放进 PATH 指向的目录即可。
快速开始
# 提取文本
pdf-oxide text document.pdf
# 转换为 Markdown
pdf-oxide markdown document.pdf -o output.md
# 转换为 HTML
pdf-oxide html document.pdf -o output.html
# 显示 PDF 信息(页数、元数据、加密状态)
pdf-oxide info document.pdf
# 搜索文本(支持正则表达式)
pdf-oxide search document.pdf "pattern"
命令列表
| 命令 | 描述 | 常用参数 |
|---|---|---|
text |
提取纯文本 | --format plain|words|lines、--area x,y,w,h |
paths |
提取矢量路径 | --format json|rects|lines、--area x,y,w,h |
markdown |
转为 Markdown | — |
html |
转为 HTML | — |
info |
显示元数据和页数 | — |
search |
搜索文本(正则) | -i(忽略大小写)、--pages |
images |
提取图片 | --area x,y,w,h、--pages |
render |
把页面渲染成 PNG/JPEG | --dpi N、--format png|jpeg、--quality N |
merge |
合并多个 PDF | (至少两个文件) |
split |
拆分为单页 | — |
create |
由 Markdown、HTML 或纯文本生成 PDF | --from markdown|html|text |
compress |
压缩并优化 | — |
encrypt |
用密码加密(v0.4.0 中提供,目前为占位) | — |
decrypt |
解密受保护的 PDF | --password PW |
rotate |
旋转页面 | --degrees 90|180|270|-90 |
delete |
删除页面 | --pages |
reorder |
重新排列页面 | --order "3,1,2,5,4" |
metadata |
读取、修改或清除元数据 | --title、--author、--subject、--keywords、--strip |
watermark |
添加文字水印 | --opacity 0.3、--rotation 45、--font-size 48、--color R,G,B |
bookmarks |
列出文档大纲 | — |
flatten |
扁平化注释或表单 | --forms、--annotations |
crop |
裁剪页面边距 | --margins L,R,T,B |
forms |
列出、填写或导出表单字段 | --fill "k=v,…"、--export fdf|xfdf、--area x,y,w,h |
一共 23 个命令。pdf-oxide <命令> --help 可以看到某个命令的全部参数说明。
全局选项
-o, --output <PATH> 输出文件(文本输出默认写到 stdout)
-p, --pages <RANGE> 页面范围:"1-5"、"1,3,7"、"1-3,7,10-12"
--password <PW> 加密 PDF 的密码
-v, --verbose 打印耗时信息
-q, --quiet 屏蔽非必要输出
-j, --json 以 JSON 输出
--no-banner 跳过 REPL 启动横幅
使用示例
把第 1–5 页提取为 Markdown:
pdf-oxide markdown report.pdf --pages 1-5 -o report.md
合并三个 PDF:
pdf-oxide merge cover.pdf body.pdf appendix.pdf -o combined.pdf
添加水印:
pdf-oxide watermark contract.pdf "DRAFT" --opacity 0.2 --font-size 72
填写表单字段:
pdf-oxide forms application.pdf --fill "name=Jane Doe,date=2026-02-28" -o filled.pdf
忽略大小写的正则搜索:
pdf-oxide search paper.pdf "neural.?network" -i
把第一页渲染成 300 DPI 的 PNG:
pdf-oxide render report.pdf --dpi 300 --format png --pages 1 -o page1.png
把原理图的矢量路径图层导出为 JSON:
pdf-oxide paths schematic.pdf --format json -o paths.json
交互式 REPL
不带参数运行 pdf-oxide 会进入交互模式:
$ pdf-oxide
pdf-oxide> text /path/to/doc.pdf
(打印出提取的文本)
pdf-oxide> info /path/to/doc.pdf
(打印出元数据)