数秒即上手。
一次安装,三行代码。
$ cargo add pdf_oxideuse pdf_oxide::PdfDocument;
let mut doc = PdfDocument::open("paper.pdf")?;
let text = doc.extract_text(0)?;
let images = doc.extract_images(0)?;一个库,全搞定。
创建|编辑|提取
单一依赖,覆盖所有 PDF 操作。
无封装层,无子进程调用,无 C/C++/Java 运行时。
01
创建
从任意来源格式生成 PDF。
- Markdown将 Markdown 转换为像素级精确的 PDF,支持标题、列表、表格和代码块。
- HTML将 HTML 标记转换为结构化 PDF 文档,完整支持 CSS 布局。
- 图片从 PNG、JPEG、TIFF 生成单页或多页 PDF,自动调整尺寸。
- QR & BarcodesCode128、EAN-13、UPC-A 和 QR 码,可配置纠错级别。
- Builder API链式 PdfBuilder API,配置页面大小、边距、字体、元数据和页眉。
- 表单文本框、复选框、单选按钮、下拉菜单、印章和水印。
02
编辑
修改现有 PDF 的任意部分。
- DOM Editing查找文本、替换内容、更改样式 — 像操作网页一样操作 PDF。
- 页面旋转、裁剪、合并文档、提取页面范围和重新排序。
- 表单获取和设置字段值,添加或删除字段,扁平化为静态内容。
- 注释添加高亮、注释和链接。选择性修改或扁平化。
- 图片重新定位、调整大小,按精确坐标替换嵌入图片。
- 安全AES-256 加密、密码和细粒度权限标志。
03
提取
从任意 PDF 提取一切。
- 文本全页文本、带字体元数据的样式 span,或逐字符位置信息。
- 图片内容流、嵌套 Form XObject 和带色彩空间的内联图像。
- Markdown干净的 Markdown 或 HTML,支持标题检测和表格保留。
- 表单所有字段值和类型。导出为 FDF 或 XFDF。XFA 分析。
- 元数据XMP、Dublin Core、页标签、目录和尾部字典。
- 搜索正则表达式、不区分大小写和全词匹配的全文搜索。
比所有替代方案快 5 倍。
基于 3 个公开测试集的 3,830 个真实 PDF 进行基准测试。
Node.js, Go, and C# share the same Rust core — expect matching numbers.
| 库 | 语言 | 平均 | p99 | 通过率 | 许可证 |
|---|---|---|---|---|---|
| PDF Oxide | 7 种语言 | 0.8ms | 9ms | 100% | MIT |
| PyMuPDF | Python | 4.6ms | 28ms | 99.3% | AGPL-3.0 |
| oxidize_pdf | Rust | 13.5ms | 11ms | 99.1% | MIT |
| pypdfium2 | Python | 4.1ms | 42ms | 99.2% | Apache-2.0 |
| pdfminer | Python | 16.8ms | 124ms | 98.8% | MIT |
| pdfplumber | Python | 23.2ms | 189ms | 98.8% | MIT |
| pypdf | Python | 12.1ms | 97ms | 98.4% | BSD-3 |
| unpdf | Rust | 2.8ms | 10ms | 95.1% | MIT |
| pdf_extract | Rust | 4.08ms | 37ms | 91.5% | Apache-2.0 |
| lopdf | Rust | 0.3ms | 2ms | 80.2% | MIT |
在 3,830 个 PDF(veraPDF、Mozilla pdf.js、DARPA SafeDocs)上测量。
单线程,无预热,60 秒超时。
100% 可靠,零意外。
在三个独立公开测试集的 3,830 个 PDF 上完成测试。
无恐慌、无超时、无崩溃。
3,823
有效 PDF 解析成功
零失败
零失败
99.5%
文本质量持平
对比 PyMuPDF 和 pypdfium2
对比 PyMuPDF 和 pypdfium2
7
故意损坏的 PDF
正确拒绝
正确拒绝
语料库涵盖所有 PDF 版本(1.0–2.0)、加密文件、格式错误的文档、CJK 编码,以及 DARPA SafeDocs 专为测试解析器漏洞设计的安全边界用例。