Skip to content

v1.0.0

Choose a tag to compare

@SudoStar SudoStar released this 26 Aug 20:17
· 195 commits to main since this release
4e5b06a

gopdfrab 1.0.0 is the first release with a stable API. PDF/A-1b verification and
conversion are complete.

Highlights

  • PDF/A-1b verification and conversion, with a verify/fix loop and a raster
    fallback that reports what it could not draw rather than dropping it.
  • Generic ISO 32000 object-model checks off the Arlington model, in both
    verification and conversion: the PDF profile, ObjectModel level, and
    VerifyObjectModel/ConvertObjectModel.
  • Encryption: Standard security handler (RC4 40/128, AES-128, AES-256) with
    user, owner and empty passwords.
  • Damage recovery: a missing startxref rebuilds the table by full-file
    scan; an object that fails at its recorded offset is re-located or degraded to
    null, and reported either way.
  • Context and batch APIs: ...Context counterparts of every entry point,
    ConvertEach/ConvertEachContext, and Options.Workers.
  • Large files: output over 8 MB spills to a temp file, content streams
    tokenize past the resident budget, and Limits/SetLimits plus
    --max-decoded-mb/--max-resident-mb make the caps settable.
  • Fidelity reporting: Options.CheckFidelity fills ConvertResult.Fidelity
    with per-page similarity and ink coverage; BlankedPages, OverpaintedPages,
    RasterizedPages, RasterDrops and LostObjects each report their own fact.
  • A CLI under cmd/gopdfrab: verify/convert, --json, recursive input,
    exit codes 0/1/2, SIGINT cancellation.
  • A WebAssembly build under wasm/, registering gopdfrabVerify and
    gopdfrabConvert as JavaScript globals.
  • 15 to 160 times faster than veraPDF and PDFBox Preflight depending on the metric.

Breaking changes since v0.7.0

  • ConvertResult.Output is now the method Output() ([]byte, error), and
    ConvertResult.Close() releases a spilled output.
  • Renamed for Go convention: A_1B to A1B, PDFA_1B to PDFA1B, Legacy_1B to
    Legacy1B, and GetPageCount/GetVersion/GetMetadata to
    PageCount/Version/Metadata.
  • The default decode budget drops from 256 MB to 64 MB. Raise it with
    SetLimits or --max-decoded-mb.
  • The declared minimum Go version is 1.24.

Install

go get github.com/voidrab/gopdfrab@v1.0.0
go install github.com/voidrab/gopdfrab/cmd/gopdfrab@v1.0.0

Or download a CLI binary below. They are static, built with CGO_ENABLED=0;
verify with sha256sum -c checksums.txt.

The full list of additions, changes and fixes is in
CHANGELOG.md.