Funciona em segundos.
Uma instalação. Três linhas de código.
$ 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)?;Uma única biblioteca.
Criar|Editar|Extrair
Todas as operações PDF em uma única dependência.
Sem wrappers, sem chamadas de subprocesso, sem runtimes C/C++/Java.
Criar
Gere PDFs a partir de qualquer formato de origem.
- MarkdownConverta Markdown para PDFs pixel-perfect com títulos, listas, tabelas e blocos de código.
- HTMLTransforme markup HTML em documentos PDF estruturados com suporte completo a layout CSS.
- ImagensPDFs de uma ou várias páginas a partir de PNG, JPEG e TIFF com dimensionamento automático.
- QR & BarcodesCode128, EAN-13, UPC-A e QR codes com correção de erros configurável.
- Builder APICadeia fluente PdfBuilder para tamanho de página, margens, fontes, metadados e cabeçalhos.
- FormuláriosCampos de texto, checkboxes, radio buttons, dropdowns, carimbos e marcas d'água.
Editar
Modifique qualquer parte de um PDF existente.
- Edição DOMEncontre texto, substitua conteúdo e reestilize — navegue o PDF como uma página web.
- PáginasRotacione, corte, mescle documentos, extraia intervalos de páginas e reordene.
- FormuláriosObtenha e defina valores de campos, adicione ou remova campos, achate para conteúdo estático.
- AnotaçõesAdicione destaques, notas e links. Modifique ou achate seletivamente.
- ImagensReposicione, redimensione e substitua imagens embutidas com limites exatos.
- SegurançaCriptografia AES-256, senhas e flags de permissão detalhados.
Extrair
Extraia tudo de qualquer PDF.
- TextoTexto da página inteira, spans estilizados com metadados de fonte ou posições por caractere.
- ImagensStreams de conteúdo, Form XObjects aninhados e imagens inline com espaços de cor.
- MarkdownMarkdown ou HTML limpos com detecção de títulos e preservação de tabelas.
- FormuláriosTodos os valores e tipos de campos. Exporte para FDF ou XFDF. Análise XFA.
- MetadadosXMP, Dublin Core, rótulos de página, catálogo e dicionários trailer.
- BuscaBusca de texto completo com regex, case-insensitive e modos de palavra inteira.
5× mais rápida que qualquer alternativa.
Benchmarks em 3.830 PDFs reais de 3 suítes de teste públicas.
Node.js, Go, and C# share the same Rust core — expect matching numbers.
| Biblioteca | Linguagem | Média | p99 | Aprovação | Licença |
|---|---|---|---|---|---|
| PDF Oxide | 7 linguagens | 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 |
Medido em 3.830 PDFs (veraPDF, Mozilla pdf.js, DARPA SafeDocs).
Thread única, sem warm-up, timeout de 60s.
100% confiável. Sem surpresas.
Testado em 3.830 PDFs de três suítes de teste públicas independentes.
Sem panics, sem timeouts, sem falhas.
sem uma única falha
vs PyMuPDF e pypdfium2
rejeitados corretamente
O corpus abrange todas as versões de PDF (1.0–2.0), arquivos criptografados, documentos malformados, codificações CJK e casos extremos de segurança DARPA SafeDocs projetados para travar parsers vulneráveis.