Skip to content

v1.0.0-rc.5 — self-contained package + image/graphics improvements

Pre-release
Pre-release

Choose a tag to compare

@lxman lxman released this 12 Jun 01:30

Packaging

Lxman.PdfLibrary is now a fully self-contained package. All internal codec libraries — JPEG, JBIG2, JPEG 2000, CCITT, LZW, fonts (FontParser), ICC (ICCSharp), and logging — are bundled into the package's lib/ folder. It now restores cleanly with only third-party dependencies (Serilog, System.Text.Json, Wacton.Unicolour; SkiaSharp via the rendering package). Lxman.PdfLibrary.Rendering.SkiaSharp depends only on the self-contained core + SkiaSharp.

Image & graphics improvements

  • JBIG2 — byte-aligned compositing (14–22× faster region/glyph compose) and AT-folded generic template-0 decoding (~2.25× faster full-page decode). Validated byte-exact against jbig2dec.
  • JPEG — fixed grayscale H2V2 (4:2:0) decoding that squished single-component images.
  • JPEG 2000 — hardened against malformed/fuzzer input; corrupt codestreams now reject cleanly with InvalidDataException.
  • Rendering — synthetic bold, CropBox canvas sizing, and character spacing on long lines.

Validated against a 735-PDF / 684-image corpus compared with PDFium and SkiaSharp.