github yfedoseev/pdf_oxide v0.3.1
v0.3.1 | Form Fields, Multimedia & Python 3.8-3.14

latest releases: v0.3.77, go/v0.3.77, v0.3.76...
7 months ago

v0.3.1 Release

This release delivers 95% form field coverage across Read/Create/Modify operations, comprehensive multimedia annotation support, and Python 3.8-3.14 compatibility via ABI3.

🎯 Form Field Coverage (95%)

  • Hierarchical Fields: Parent/child field structures (address.street, address.city)
    • add_parent_field(), add_child_field(), add_form_field_hierarchical()
    • Property inheritance between parent and child fields (FT, V, DV, Ff, DA, Q)
  • Property Modification: Edit all field properties beyond just values
    • set_form_field_readonly(), set_form_field_required() - Flag manipulation
    • set_form_field_rect() - Reposition/resize fields
    • set_form_field_tooltip(), set_form_field_alignment(), set_form_field_max_length()
  • FDF/XFDF Export: Forms Data Format export (ISO 32000-1:2008 Section 12.7.7)
    • FdfWriter for binary FDF, XfdfWriter for XML XFDF
    • Hierarchical field representation in exports
  • Critical Bug Fix: Modified existing fields now persist on save (was only saving new fields)

🎬 Multimedia Annotations (New)

  • MovieAnnotation - Embedded video content with playback controls
  • SoundAnnotation - Audio content with configurable playback
  • ScreenAnnotation - Media renditions (video/audio players)
  • RichMediaAnnotation - Flash/video rich media content
  • ThreeDAnnotation - 3D model embedding (U3D/PRC format)
    • Camera angles, lighting schemes, render modes
    • Multiple views support

📦 New Features

  • Path Extraction: Extract vector graphics and shapes from PDFs
    • Lines, curves, rectangles, complex paths
    • Path transformation and bounding box calculation
  • TextChar Transformations: Per-character positioning metadata (Issue #27)
    • origin - Font baseline coordinates (x, y)
    • rotation_degrees - Character rotation angle
    • matrix - Full transformation matrix
  • XFA Conversion: Convert legacy XFA forms to standard AcroForms
    • XfaExtractor, XfaParser, XfaConverter
  • Image Metadata: DPI calculation and resolution helpers
    • horizontal_dpi, vertical_dpi fields on ImageContent
    • is_high_resolution(), is_medium_resolution() helpers
  • Bounded Text Extraction: Spatial filtering with rect filters
    • RectFilterMode::Intersects, FullyContained, MinOverlap

🐍 Python Support (3.8-3.14)

  • ABI3 Compatibility: Single wheel works across Python 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14
  • abi3-py38 Feature: Proper PyO3 ABI3 configuration for maximum compatibility
  • Modern Tooling: uv, pdm, ruff integration for Python development

🔧 Infrastructure & Developer Experience

  • uv Migration: 10-100x faster Python dependency resolution
    • CI/CD workflows now use uv venv + uv pip
    • Pre-commit hooks use uv for Python linting (ruff)
  • Pre-commit Optimization: Exclude Python feature locally (avoids libpython linking issues)
    • Separate clippy checks for Python feature
    • Integration/doctests skipped (run in CI with proper environment)
  • Dependency Updates: x509-parser 0.18, zip 7.0

✅ Verification

  • All 1,751 library tests pass
  • Clippy clean (including Python feature)
  • cargo-deny dependency check passes
  • Tests pass on Ubuntu, macOS, Windows
  • Python bindings verified on Python 3.9, 3.10, 3.11, 3.12, 3.13, 3.14
  • Pre-commit hooks pass with optimized configuration

🏆 Community Contributors

🥇 @monchin - Python bindings revolution (ABI3, abi3-py38) 💪🐍 (Issue #28, PR #29)

  • Fixed critical compatibility issue where PDFOxide only worked on Python 3.11
  • Introduced modern tooling (uv, pdm, ruff) for 2026 standards
  • Enabled thousands more Python developers to use PDFOxide

🥇 @bikallem - TextChar transformation feature request 🎯 (Issue #27)

  • Detailed analysis comparing PDFOxide to pdfium-render
  • Led to TextChar transformation feature for pdfium-render migration

📥 Installation

Rust (crates.io)

cargo add pdf_oxide

Python (PyPI)

pip install pdf_oxide

macOS with Homebrew

brew install pdf_oxide

Pre-built Binaries
Download archives for Linux, macOS, and Windows from the assets below.


Release Date: January 14, 2026
Branch: main
Tag: v0.3.1
Closes: #27, #28

Don't miss a new pdf_oxide release

NewReleases is sending notifications on new releases.