Skip to content

Releases: CochranResearchGroup/pdf-mutation

pdf-mutation v0.1.7

Choose a tag to compare

@github-actions github-actions released this 21 May 16:09
e22895b

What's Changed

Full Changelog: v0.1.6...v0.1.7

pdf-mutation v0.1.6

Choose a tag to compare

@github-actions github-actions released this 21 May 02:13
4b036a2

What's Changed

Full Changelog: v0.1.5...v0.1.6

pdf-mutation v0.1.5

Choose a tag to compare

@github-actions github-actions released this 21 May 01:23
9771313

What's Changed

Full Changelog: v0.1.4...v0.1.5

pdf-mutation v0.1.4

Choose a tag to compare

@github-actions github-actions released this 21 May 01:03
1df8824

What's Changed

Full Changelog: v0.1.3...v0.1.4

pdf-mutation v0.1.3

Choose a tag to compare

@github-actions github-actions released this 20 May 01:23
7c985de

What's Changed

Full Changelog: v0.1.2...v0.1.3

pdf-mutation v0.1.2

Choose a tag to compare

@github-actions github-actions released this 19 May 01:35
a8776cd

What's Changed

New Contributors

Full Changelog: v0.1.1...v0.1.2

pdf-mutation v0.1.1

Choose a tag to compare

@github-actions github-actions released this 18 May 14:17

Full Changelog: v0.1.0...v0.1.1

pdf-mutation v0.1.0

Choose a tag to compare

@ecochran76 ecochran76 released this 18 May 13:55

v0.1.0 | Initial Release

Initial release of pdf-mutation, a deterministic glyph-preserving PDF text
replacement CLI.

Added

  • pdf-glyph-replace console command and direct pdf_glyph_replace.py script.
  • Exact replacement for same decoded glyph counts.
  • Support for hexadecimal <...> Tj text and simple [...] TJ arrays.
  • Support for multiple CIDs inside a single hexadecimal string operand.
  • --align right for simple right-aligned, one-glyph-per-line amount edits.
  • --align left for simple length-changing edits that preserve the original
    text matrix.
  • --dry-run and --dry-run --json feasibility reports.
  • --report non-sensitive JSON mutation reports.
  • Synthetic QDF unit tests that do not depend on private PDF fixtures.
  • Repo-local policy, roadmap, release metadata, and validation docs.

Known Limits

  • Replacement characters must already exist in the active PDF font CMap.
  • Matches must fit inside one BT ... ET text object.
  • Length-changing alignment modes require one-glyph-per-line hexadecimal Tj
    text with deterministic Td advances.
  • The tool does not synthesize fonts, OCR text, redraw pages, edit encrypted
    PDFs, or reflow arbitrary paragraphs.