Skip to content

v0.3.55 | Ruby + PHP language bindings + multi-line heading reading-order fix

Choose a tag to compare

@github-actions github-actions released this 25 May 08:20
· 167 commits to main since this release

Added

  • Ruby binding (9th language) — full PDF toolkit for Ruby. Install
    with gem install pdf_oxide. Prebuilt native gems for linux-x86_64,
    linux-aarch64, darwin-x86_64, darwin-arm64, windows-x64 plus a
    source gem. API mirrors the Java binding's 9-class shape
    (PdfDocument, Pdf, PdfPage, PdfPolicy, PdfSigner,
    PdfValidator, DocumentEditor, AutoExtractor,
    MarkdownConverter) so docs and examples are uniform across
    languages. Full feature parity with Python / Java including
    auto-extraction, PAdES B/T/LT signing, destructive redaction,
    office round-trip, and split-by-bookmarks. (#545)
  • PHP binding (10th language) — full PDF toolkit for PHP. Install
    with composer require oxide/pdf-oxide. PHP 8.2 / 8.3 / 8.4 / 8.5
    on Linux / macOS / Windows. Same 9-class API shape as Ruby and
    Java. Composer post-install hook fetches the matching prebuilt
    libpdf_oxide per platform with SHA-256 verification. Full feature
    parity with Python / Java. Requires ext-ffi. (#546)

Fixed

  • #543 — Long subsection titles in multi-column academic papers
    no longer split when they wrap across column boundaries.
    Discovered while regression-testing v0.3.54 on a 75-PDF corpus.
  • #537 (follow-up) — Markdown output now emits Unicode
    bidi-isolation markers around RTL runs detected by the v0.3.54
    Hebrew / RTL detector, so extracted Hebrew / Arabic text renders
    correctly inside mixed-direction paragraphs. Original report by
    alexagr; this completes the markdown emission half deferred
    from v0.3.54.
  • #535 (follow-up) — Type 1 built-in encodings, CFF charset,
    and /Differences-array glyph lookups now go through the same
    Adobe Glyph List fallback chain as v0.3.54's main extractor, with
    variant-suffix stripping (A.scA, bullet.alt,
    fi.001). Resolves replacement-character () leakage on
    PDFs using simple-font encodings without a ToUnicode CMap.

Installation

Rust (crates.io)

cargo add pdf_oxide

Python (PyPI)

pip install pdf_oxide

JavaScript/WASM (npm)

npm install pdf-oxide-wasm

CLI (Homebrew)

brew install yfedoseev/tap/pdf-oxide

CLI (Scoop — Windows)

scoop bucket add pdf-oxide https://github.com/yfedoseev/scoop-pdf-oxide
scoop install pdf-oxide

CLI (Shell installer)

curl -fsSL https://raw.githubusercontent.com/yfedoseev/pdf_oxide/main/install.sh | sh

CLI (cargo-binstall)

cargo binstall pdf_oxide_cli

MCP Server (for AI assistants)

cargo install pdf_oxide_mcp

Pre-built Binaries
Download archives for Linux, macOS, and Windows from the assets below. Each archive includes both pdf-oxide (CLI) and pdf-oxide-mcp (MCP server).

Platform Support

Platform Architecture Archive
Linux x86_64 (glibc) pdf_oxide-linux-x86_64-*.tar.gz
Linux x86_64 (musl) pdf_oxide-linux-x86_64-musl-*.tar.gz
Linux ARM64 pdf_oxide-linux-aarch64-*.tar.gz
macOS x86_64 (Intel) pdf_oxide-macos-x86_64-*.tar.gz
macOS ARM64 (Apple Silicon) pdf_oxide-macos-aarch64-*.tar.gz
Windows x86_64 pdf_oxide-windows-x86_64-*.zip

Changelog

See CHANGELOG.md for full details.