Listo en segundos.
Una instalación. Tres líneas 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)?;Una sola biblioteca.
Crear|Editar|Extraer
Todas las operaciones PDF en una sola dependencia.
Sin wrappers, sin llamadas a subprocesos, sin runtimes C/C++/Java.
Crear
Genera PDFs desde cualquier formato de origen.
- MarkdownConvierte Markdown a PDFs pixel-perfect con títulos, listas, tablas y bloques de código.
- HTMLTransforma markup HTML en documentos PDF estructurados con soporte completo de layout CSS.
- ImágenesPDFs de una o múltiples páginas desde PNG, JPEG y TIFF con dimensionamiento automático.
- QR & BarcodesCode128, EAN-13, UPC-A y códigos QR con corrección de errores configurable.
- Builder APICadena fluida PdfBuilder para tamaño de página, márgenes, fuentes, metadatos y encabezados.
- FormulariosCampos de texto, checkboxes, botones de radio, dropdowns, sellos y marcas de agua.
Editar
Modifica cualquier parte de un PDF existente.
- Edición DOMBusca texto, reemplaza contenido y cambia estilos — navega el PDF como una página web.
- PáginasRota, recorta, fusiona documentos, extrae rangos de páginas y reordena.
- FormulariosObtiene y establece valores de campos, agrega o elimina campos, aplana a contenido estático.
- AnotacionesAgrega resaltados, notas y enlaces. Modifica o aplana selectivamente.
- ImágenesReposiciona, redimensiona y reemplaza imágenes incrustadas con límites exactos.
- SeguridadCifrado AES-256, contraseñas y flags de permisos detallados.
Extraer
Extrae todo de cualquier PDF.
- TextoTexto de página completa, spans con estilo y metadatos de fuente, o posiciones por carácter.
- ImágenesStreams de contenido, Form XObjects anidados e imágenes inline con espacios de color.
- MarkdownMarkdown o HTML limpio con detección de títulos y preservación de tablas.
- FormulariosTodos los valores y tipos de campos. Exporta a FDF o XFDF. Análisis XFA.
- MetadatosXMP, Dublin Core, etiquetas de página, catálogo y diccionarios trailer.
- BúsquedaBúsqueda de texto completo con regex, sin distinción de mayúsculas y modos de palabra completa.
5× más rápida que cualquier alternativa.
Benchmark en 3,830 PDFs reales de 3 suites de prueba públicas.
Node.js, Go, and C# share the same Rust core — expect matching numbers.
| Biblioteca | Lenguaje | Promedio | p99 | Tasa de éxito | Licencia |
|---|---|---|---|---|---|
| PDF Oxide | 7 lenguajes | 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 en 3,830 PDFs (veraPDF, Mozilla pdf.js, DARPA SafeDocs).
Un solo hilo, sin calentamiento, timeout de 60s.
100% confiable. Cero sorpresas.
Probado en 3,830 PDFs de tres suites de prueba públicas independientes.
Sin panics, sin timeouts, sin crashes.
sin una sola falla
vs PyMuPDF y pypdfium2
rechazados correctamente
El corpus cubre todas las versiones de PDF (1.0–2.0), archivos cifrados, documentos malformados, codificaciones CJK y casos extremos de seguridad DARPA SafeDocs diseñados para hacer fallar parsers vulnerables.